diff --git a/package-lock.json b/package-lock.json index 7a7cd08..6dc8b55 100644 --- a/package-lock.json +++ b/package-lock.json @@ -29,6 +29,7 @@ "leaflet-easyprint": "2.1.9", "leaflet.heat": "0.2.0", "leaflet.markercluster": "1.4.0", + "nodemailer": "6.9.13", "nuxt": "^2.17.0", "odometer": "^0.4.8", "topojson-client": "3.1.0", @@ -16765,6 +16766,14 @@ "vary": "^1.1.2" } }, + "node_modules/nodemailer": { + "version": "6.9.13", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.9.13.tgz", + "integrity": "sha512-7o38Yogx6krdoBf3jCAqnIN4oSQFx+fMa0I7dK1D+me9kBxx12D+/33wSb+fhOCtIxvYJ+4x4IMEhmhCKfAiOA==", + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/nopt": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz", @@ -36542,6 +36551,11 @@ "vary": "^1.1.2" } }, + "nodemailer": { + "version": "6.9.13", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.9.13.tgz", + "integrity": "sha512-7o38Yogx6krdoBf3jCAqnIN4oSQFx+fMa0I7dK1D+me9kBxx12D+/33wSb+fhOCtIxvYJ+4x4IMEhmhCKfAiOA==" + }, "nopt": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz", diff --git a/package.json b/package.json index 896b856..29ba63a 100644 --- a/package.json +++ b/package.json @@ -36,6 +36,7 @@ "leaflet-easyprint": "2.1.9", "leaflet.heat": "0.2.0", "leaflet.markercluster": "1.4.0", + "nodemailer": "6.9.13", "nuxt": "^2.17.0", "odometer": "^0.4.8", "topojson-client": "3.1.0", diff --git a/server-middleware/api.js b/server-middleware/api.js index 2e64961..db27a39 100644 --- a/server-middleware/api.js +++ b/server-middleware/api.js @@ -1,6 +1,7 @@ const axios = require('axios') const bodyParser = require('body-parser') const app = require('express')() +const nodemailer = require('nodemailer') const compression = require('compression') app.use(bodyParser.json()) @@ -51,12 +52,12 @@ app.get('/datahub/*', (req, res) => { app.post('/mail', (req, res) => { if (req.headers['request-source'] === 'application' && req.headers['user-agent'] && !req.headers['user-agent'].toLowerCase().includes('postman')) { - const mercurio = { - url: process.env.MAILER_API_BASE_URL, - key: process.env.MAILER_APP_KEY + const smtp = { + host: process.env.SMTP_HOST, + from: process.env.SMTP_FROM, + to: process.env.SMTP_TO } - const apiUrl = mercurio.url + req.url const contentArgs = req.body.args.split('|') const content = 'Smartlab - Relate um problema' + '\n E-mail contato: ' + contentArgs[0] + @@ -66,33 +67,26 @@ app.post('/mail', (req, res) => { '\n Card: ' + contentArgs[4] + '\n Descrição do problema: ' + contentArgs[5] - const header = { - 'Content-Type': 'application/json', - 'X-Mpt-Api-Key': mercurio.key + // const header = { + // 'Content-Type': 'application/json', + // } + + const transporter = nodemailer.createTransport({ + host: smtp.host, + port: 25 + }) + + const options = { + from: smtp.from, + to: smtp.to, + subject: 'Smartlab - Relate um problema', + text: content } - axios({ - method: 'POST', - url: apiUrl, - data: { - mail: { - sistema: 'smartlab', - recipients: process.env.MAILER_RECIPIENTS.split(','), - subject: 'Smartlab - Relate um problema', - content - } - }, - headers: header - }).then(function (response) { - res.json(response.data) + + transporter.sendMail(options).then(function (info) { + res.status(200).send(info.response) }).catch(function (error) { - // handle error - // console.log(error) - if (error.response) { - res.status(error.response.status).send(error.response.data) - } else { - // Something happened in setting up the request that triggered an Error - res.status(400).send(error) - } + res.status(400).send(error) }) } else { res.status(401).send('Unauthorized')