From c3b9a32f57411b78cef80a6acf267041dae109fe Mon Sep 17 00:00:00 2001
From: Gustavo Soviersovski <gustavo.as1997@hotmail.com>
Date: Wed, 30 Aug 2017 09:48:19 -0300
Subject: [PATCH] Add Sending Mail Functionality

---
 package.json                  |  1 +
 src/libs/middlewares/email.js | 22 ++++++++++++++++++++++
 src/libs/routes/message.js    |  9 +++++++++
 3 files changed, 32 insertions(+)
 create mode 100644 src/libs/middlewares/email.js

diff --git a/package.json b/package.json
index 298d38e..7a3f3a6 100644
--- a/package.json
+++ b/package.json
@@ -34,6 +34,7 @@
     "monetdb-pool": "0.0.8",
     "mongoose": "^4.6.0",
     "nconf": "^0.8.x",
+    "nodemailer": "^4.1.0",
     "passport": "^0.3.2",
     "winston": "^2.2.0"
   },
diff --git a/src/libs/middlewares/email.js b/src/libs/middlewares/email.js
new file mode 100644
index 0000000..c8fbfbe
--- /dev/null
+++ b/src/libs/middlewares/email.js
@@ -0,0 +1,22 @@
+const nodemailer = require('nodemailer');
+
+let transporter = nodemailer.createTransport({
+    "port": 25,
+    "host": "mx.c3sl.ufpr.br",
+    "secure": false,
+    "ignoreTLS": true
+});
+
+let mailOptions = {
+    "from": "\"Laboratório de Dados Educacionais\" <lde@c3sl.ufpr.br>",
+    "to": "<dadoseducacionais@ufpr.br>"
+};
+
+module.exports = function send(content, callback) {
+    mailOptions.content = content;
+    transporter.sendMail(mailOptions, (err, info) => {
+        if (err)
+            return callback(err);
+        callback(null, info);
+    });
+}
diff --git a/src/libs/routes/message.js b/src/libs/routes/message.js
index 308cecb..db2058c 100644
--- a/src/libs/routes/message.js
+++ b/src/libs/routes/message.js
@@ -10,6 +10,8 @@ const log = require(`${libs}/log`)(module);
 
 const Message = require(`${libs}/models/message`);
 
+const Email = require(`${libs}/middlewares/email`);
+
 messageApp.get('/', (req, res, next) => {
     Message.find((err, messages) => {
         if(err) {
@@ -56,6 +58,13 @@ messageApp.post('/', (req, res, next) => {
             },
             contents: req.body.contents
         });
+        text = message.author.name + " <" + message.author.email +
+            "> enviou a seguinte mensagem via página de contato do LDE: \"" +
+            message.contents + "\"";
+        Email(text, (err)=> {
+            if (err)
+                log.error(err);
+        });
 
         message.save((err) => {
             if(err) {
-- 
GitLab