import {serverConfig} from "../serverConfig"; import nodemailer from 'nodemailer'; export default function createInvitationEmail(data: any, options: any = {}) { return sendEmail(data, { provider: { transport: serverConfig.transport, from: serverConfig.from, }, ...options }); } const sendEmail = (invitation: any, { provider, }) => new Promise( (resolve, reject) => { const { transport, from } = provider; nodemailer.createTransport(transport).sendMail( { from: `Calendso <${from}>`, to: invitation.toEmail, subject: `${invitation.from} invited you to join ${invitation.teamName}`, html: html(invitation), text: text(invitation), }, (error) => { if (error) { console.error("SEND_INVITATION_NOTIFICATION_ERROR", invitation.toEmail, error); return reject(new Error(error)); } return resolve(); }); }); const html = (invitation: any) => `
Hi,

${invitation.from} invited you to join the team "${invitation.teamName}" in Calendso.


If you prefer not to use "${invitation.toEmail}" as your Calendso email or already have a Calendso account, please request another invitation to that email.
`; // just strip all HTML and convert
to \n const text = (evt: any) => html(evt).replace('
', "\n").replace(/<[^>]+>/g, '');