Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | 4x 4x 4x 4x 4x 2x 2x 4x 1x 1x 1x 1x 4x 1x 1x 1x 1x 4x | const nodemailer = require('nodemailer'); const config = require('../config/config'); const logger = require('../config/logger'); const transport = nodemailer.createTransport(config.email.smtp); /* istanbul ignore next */ if (config.env === 'production') { transport .verify() .then(() => logger.info('Connected to email server')) .catch(() => logger.warn('Unable to connect to email server. Make sure you have configured the SMTP options in .env')); } /** * Send an email * @param {string} to * @param {string} subject * @param {string} text * @returns {Promise} */ const sendEmail = async (to, subject, text) => { const msg = { from: config.email.from, to, subject, text }; await transport.sendMail(msg); }; /** * Send reset password email * @param {string} to * @param {string} token * @returns {Promise} */ const sendResetPasswordEmail = async (to, token) => { const subject = 'Reset password'; // replace this url with the link to the reset password page of your front-end app const resetPasswordUrl = `http://link-to-app/reset-password?token=${token}`; const text = `Dear user, To reset your password, click on this link: ${resetPasswordUrl} If you did not request any password resets, then ignore this email.`; await sendEmail(to, subject, text); }; /** * Send verification email * @param {string} to * @param {string} token * @returns {Promise} */ const sendVerificationEmail = async (to, token) => { const subject = 'Email Verification'; // replace this url with the link to the email verification page of your front-end app const verificationEmailUrl = `http://link-to-app/verify-email?token=${token}`; const text = `Dear user, To verify your email, click on this link: ${verificationEmailUrl} If you did not create an account, then ignore this email.`; await sendEmail(to, subject, text); }; module.exports = { transport, sendEmail, sendResetPasswordEmail, sendVerificationEmail, }; |