mirror of
https://github.com/documenso/documenso.git
synced 2025-11-15 17:21:41 +10:00
56 lines
1.4 KiB
TypeScript
56 lines
1.4 KiB
TypeScript
import nodemailer from 'nodemailer';
|
|
import nodemailerSendgrid from 'nodemailer-sendgrid';
|
|
|
|
import { emailHtml, emailText } from '../../mail/template';
|
|
|
|
export const sendMail = async ({ email }: { email: string }) => {
|
|
let transporter;
|
|
|
|
if (process.env.NEXT_PRIVATE_SENDGRID_API_KEY) {
|
|
transporter = nodemailer.createTransport(
|
|
nodemailerSendgrid({
|
|
apiKey: process.env.NEXT_PRIVATE_SENDGRID_API_KEY,
|
|
}),
|
|
);
|
|
}
|
|
|
|
if (process.env.NEXT_PRIVATE_SMTP_MAIL_HOST) {
|
|
transporter = nodemailer.createTransport({
|
|
host: process.env.NEXT_PRIVATE_SMTP_MAIL_HOST,
|
|
port: Number(process.env.NEXT_PRIVATE_SMTP_MAIL_PORT),
|
|
auth: {
|
|
user: process.env.NEXT_PRIVATE_SMTP_MAIL_USER,
|
|
pass: process.env.NEXT_PRIVATE_SMTP_MAIL_PASSWORD,
|
|
},
|
|
});
|
|
}
|
|
|
|
if (!transporter) {
|
|
throw new Error(
|
|
'No mail transport configured. Probably Sendgrid API Key nor SMTP Mail host was set',
|
|
);
|
|
}
|
|
|
|
const html = emailHtml({
|
|
email: 'lucas@documenso.com',
|
|
name: 'Lucas Smith',
|
|
documentName: 'NDA.pdf',
|
|
firstName: 'Lucas',
|
|
type: 'signed',
|
|
});
|
|
|
|
await transporter.sendMail({
|
|
from: 'Documenso <hi@documenso.com>',
|
|
to: email,
|
|
subject: 'Welcome to Documenso!',
|
|
text: emailText({
|
|
email: 'lucas@documenso.com',
|
|
name: 'Lucas Smith',
|
|
documentName: 'NDA.pdf',
|
|
firstName: 'Lucas',
|
|
type: 'completed',
|
|
}),
|
|
html,
|
|
});
|
|
};
|