From 4cf62b2fbd4723f4dd6c2e2cfef349cd92faa1e6 Mon Sep 17 00:00:00 2001 From: Dobromir Popov Date: Fri, 19 Apr 2024 17:01:51 +0300 Subject: [PATCH] tidy email settings --- .env | 17 ++----- .env.development | 7 +++ .env.production | 13 ++++-- _doc/ToDo.md | 2 +- src/helpers/email.js | 108 +++++++++++-------------------------------- 5 files changed, 48 insertions(+), 99 deletions(-) diff --git a/.env b/.env index 61f85aa..c3383e9 100644 --- a/.env +++ b/.env @@ -48,25 +48,18 @@ GITHUB_SECRET= TWITTER_ID= TWITTER_SECRET= -EMAIL_BYPASS_TO=mwitnessing@gmail.com -EMAIL_SENDER='"Специално Свидетелстване София " ' +# EMAIL_BYPASS_TO=mwitnessing@gmail.com +EMAIL_SENDER='"ССС" ' # EMAIL_SERVER=smtp://8ec69527ff2104:c7bc05f171c96c@smtp.mailtrap.io:2525 EMAIL_FROM=noreply@mwitnessing.com -MAILTRAP_HOST_BULK=bulk.smtp.mailtrap.io +EMAIL_SERVICE=mailtrap +# MAILTRAP_HOST_BULK=bulk.smtp.mailtrap.io MAILTRAP_HOST=sandbox.smtp.mailtrap.io +MAILTRAP_PORT=2525 MAILTRAP_USER=8ec69527ff2104 MAILTRAP_PASS=c7bc05f171c96c -MAILERSEND_TOKEN=mlsn.27d1a8120e120e147e1bb9c6345739faf3a03688bd9bf1b34f797d08b0f9fc26 -MAILERSEND_SERVER=smtp.mailersend.net -MAILERSEND_PORT=587 -MAILERSEND_USER=MS_bL93ka@mwitnessing.com -MAILERSEND_PASS=v23Z2XrDSNjHJxgo - -EMAIL_GMAIL_USERNAME=mwitnessing -EMAIL_GMAIL_APP_PASS="acys uzsp eere qzyh" - TELEGRAM_BOT=false TELEGRAM_BOT_TOKEN=7050075088:AAH6VRpNCyQd9x9sW6CLm6q0q4ibUgYBfnM diff --git a/.env.development b/.env.development index 40806ac..9202801 100644 --- a/.env.development +++ b/.env.development @@ -7,5 +7,12 @@ NEXT_PUBLIC_PUBLIC_URL=https://localhost:3003 # DATABASE=mysql://cart:cartpw@192.168.0.10:3306/cart_dev DATABASE=mysql://cart:cartpw@localhost:3306/cart + +EMAIL_SENDER='"ССС [ТЕСТ] " ' +# MAILTRAP_HOST_BULK=bulk.smtp.mailtrap.io +# MAILTRAP_HOST=sandbox.smtp.mailtrap.io +# MAILTRAP_USER=8ec69527ff2104 +# MAILTRAP_PASS=c7bc05f171c96c + SSL_KEY=./certificates/localhost-key.pem SSL_CERT=./certificates/localhost.pem diff --git a/.env.production b/.env.production index 8e9e8f4..5431048 100644 --- a/.env.production +++ b/.env.production @@ -9,8 +9,13 @@ NEXTAUTH_SECRET=1dd8a5457970d1dda50600be28e935ecc4513ff27c49c431849e6746f158d638 DATABASE=mysql://jwpwsofia:dwxhns9p9vp248V39xJyRthUsZ2gR9@mariadb:3306/jwpwsofia # DATABASE=mysql://cart:cartpw@localhost:3306/cart + EMAIL_BYPASS_TO= -MAILTRAP_HOST_BULK=bulk.smtp.mailtrap.io -MAILTRAP_HOST=live.smtp.mailtrap.io -MAILTRAP_USER=api -MAILTRAP_PASS=1cfe82e747b8dc3390ed08bb16e0f48d \ No newline at end of file +EMAIL_SENDER='"Специално Свидетелстване София" ' +EMAIL_SERVICE=gmail +EMAIL_GMAIL_USERNAME=mwitnessing +EMAIL_GMAIL_APP_PASS="acys uzsp eere qzyh" +# MAILTRAP_HOST_BULK=bulk.smtp.mailtrap.io +# MAILTRAP_HOST=live.smtp.mailtrap.io +# MAILTRAP_USER=api +# MAILTRAP_PASS=1cfe82e747b8dc3390ed08bb16e0f48d \ No newline at end of file diff --git a/_doc/ToDo.md b/_doc/ToDo.md index e615914..9c1c7b1 100644 --- a/_doc/ToDo.md +++ b/_doc/ToDo.md @@ -207,4 +207,4 @@ push notifications store replacement test email - + problem with my repeating availability3 diff --git a/src/helpers/email.js b/src/helpers/email.js index cc6b39b..80eef96 100644 --- a/src/helpers/email.js +++ b/src/helpers/email.js @@ -13,75 +13,30 @@ const Handlebars = require('handlebars'); const { Shift, Publisher, PrismaClient } = require("@prisma/client"); const { env } = require("../../next.config"); +const SMTPTransport = require("nodemailer/lib/smtp-transport"); -// const TOKEN = process.env.TOKEN || "a7d7147a530235029d74a4c2f228e6ad"; -// const SENDER_EMAIL = "sofia@mwitnessing.com"; -// const sender = { name: "Специално Свидетелстване София", email: SENDER_EMAIL }; -// const client = new MailtrapClient({ token: TOKEN }); - -let mailtrapTestClient = null; -// const mailtrapTestClient = new MailtrapClient({ -// username: '8ec69527ff2104',//not working now -// password: 'c7bc05f171c96c' -// }); - -//MAILTRAP -var transporterMT = nodemailer.createTransport({ - host: process.env.MAILTRAP_HOST || "sandbox.smtp.mailtrap.io", - port: 2525, - auth: { - user: process.env.MAILTRAP_USER, - pass: process.env.MAILTRAP_PASS - } -}); - -//PROD GMAIL -// const oauth2Client = new OAuth2( -// process.env.CLIENT_ID, -// process.env.CLIENT_SECRET, -// "https://developers.google.com/oauthplayground" -// ); -// var transporterGmail = nodemailer.createTransport({ -// service: "gmail", -// auth: { -// type: "OAuth2", -// user: process.env.GMAIL_USER, -// clientId: process.env.CLIENT_ID, -// clientSecret: process.env.CLIENT_SECRET, -// refreshToken: process.env.REFRESH_TOKEN, -// accessToken: process.env.ACCESS_TOKEN -// } -// }); -//-------------- -var transporter = nodemailer.createTransport({ - service: "gmail", - auth: { - user: process.env.EMAIL_GMAIL_USERNAME, - pass: process.env.EMAIL_GMAIL_APP_PASS - } -}); - - -//PROD MAILERSEND -// var transporter = nodemailer.createTransport({ -// host: process.env.MAILERSEND_SERVER, -// port: process.env.MAILERSEND_PORT, -// auth: { -// user: process.env.MAILERSEND_USER, -// pass: process.env.MAILERSEND_PASS -// } -// }); - -var transporterBulk = nodemailer.createTransport({ - host: "bulk.smtp.mailtrap.io", - port: 587, - auth: { - user: "api", - pass: "1cfe82e747b8dc3390ed08bb16e0f48d" - } -}); +var transporter; +if (process.env.EMAIL_SERVICE.toLowerCase() === "mailtrap") { + transporter = nodemailer.createTransport({ + host: process.env.MAILTRAP_HOST || "sandbox.smtp.mailtrap.io", + port: process.env.MAILTRAP_PORT || 2525, + auth: { + user: process.env.MAILTRAP_USER, + pass: process.env.MAILTRAP_PASS + } + }); +} +if (process.env.EMAIL_SERVICE.toLowerCase() === "gmail") { + transporter = nodemailer.createTransport({ + service: "gmail", + auth: { + user: process.env.EMAIL_GMAIL_USERNAME, + pass: process.env.EMAIL_GMAIL_APP_PASS + } + }); +} // ------------------ Email sending ------------------ @@ -137,22 +92,11 @@ exports.SendEmail = async function (to, subject, text, html, attachments = []) { attachments }; - if (mailtrapTestClient !== null) { - // Assuming mailtrapTestClient is correctly set up to send emails - await mailtrapTestClient - .send(message) - .then(console.log) - .catch(console.error); - - } else { - - let result = await transporter - .sendMail(message) - .then(console.log) - .catch(console.error); - return result; - } - + let result = await transporter + .sendMail(message) + .then(console.log) + .catch(console.error); + return result; }; exports.SendEmailHandlebars = async function (to, templateName, model, attachments = []) {