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 | 1x 1x 1x 1x 1x 1x 1x 1x | import nodemailer from "nodemailer"; import type JSONTransport from "nodemailer/lib/json-transport"; import type Mail from "nodemailer/lib/mailer"; import { getLogger } from "./log"; const log = getLogger("mail"); const devTransporter = nodemailer.createTransport({ jsonTransport: true, }); /** * This outbox traps sent emails during testing (NODE_ENV=test). * Access the outbox during testing to assert on sent emails. */ export const outbox: JSONTransport.SentMessageInfo[] = []; export function defineMailer(config: { host: string; port: number; secure: boolean; auth: { user: string; pass: string; }; }): nodemailer.Transporter { return nodemailer.createTransport(config); } /** Send an email using the configured mailer. */ export async function sendMail( mailer: nodemailer.Transporter, mailOptions: Mail.Options, ): Promise<void> { if ( process.env.NODE_ENV === "test" || process.env.NODE_ENV === "development" ) { const result = await devTransporter.sendMail(mailOptions); outbox.push(result); log.info("email sent to dev outbox -------------", mailOptions); log.info(result.envelope); log.info(result.message); return; } await mailer.sendMail(mailOptions); } |