mirror of
https://github.com/documenso/documenso.git
synced 2025-11-12 15:53:02 +10:00
This change actually makes the authoring flow work for the most part by tying in emailing and more. We have also done a number of quality of life updates to simplify the codebase overall making it easier to continue work on the refresh.
51 lines
1.6 KiB
TypeScript
51 lines
1.6 KiB
TypeScript
import { createTransport } from 'nodemailer';
|
|
|
|
import { MailChannelsTransport } from './transports/mailchannels';
|
|
|
|
const getTransport = () => {
|
|
const transport = process.env.NEXT_PRIVATE_SMTP_TRANSPORT ?? 'smtp-auth';
|
|
|
|
if (transport === 'mailchannels') {
|
|
return createTransport(
|
|
MailChannelsTransport.makeTransport({
|
|
apiKey: process.env.NEXT_PRIVATE_MAILCHANNELS_API_KEY,
|
|
endpoint: process.env.NEXT_PRIVATE_MAILCHANNELS_ENDPOINT,
|
|
}),
|
|
);
|
|
}
|
|
|
|
if (transport === 'smtp-api') {
|
|
if (!process.env.NEXT_PRIVATE_SMTP_HOST || !process.env.NEXT_PRIVATE_SMTP_APIKEY) {
|
|
throw new Error(
|
|
'SMTP API transport requires NEXT_PRIVATE_SMTP_HOST and NEXT_PRIVATE_SMTP_APIKEY',
|
|
);
|
|
}
|
|
|
|
return createTransport({
|
|
host: process.env.NEXT_PRIVATE_SMTP_HOST,
|
|
port: Number(process.env.NEXT_PRIVATE_SMTP_PORT) || 587,
|
|
secure: process.env.NEXT_PRIVATE_SMTP_SECURE === 'true',
|
|
auth: {
|
|
user: process.env.NEXT_PRIVATE_SMTP_APIKEY_USER ?? 'apikey',
|
|
pass: process.env.NEXT_PRIVATE_SMTP_APIKEY ?? '',
|
|
},
|
|
});
|
|
}
|
|
|
|
if (!process.env.NEXT_PRIVATE_SMTP_HOST) {
|
|
throw new Error('SMTP transport requires NEXT_PRIVATE_SMTP_HOST');
|
|
}
|
|
|
|
return createTransport({
|
|
host: process.env.NEXT_PRIVATE_SMTP_HOST,
|
|
port: Number(process.env.NEXT_PRIVATE_SMTP_PORT) || 587,
|
|
secure: process.env.NEXT_PRIVATE_SMTP_SECURE === 'true',
|
|
auth: {
|
|
user: process.env.NEXT_PRIVATE_SMTP_USERNAME ?? '',
|
|
pass: process.env.NEXT_PRIVATE_SMTP_PASSWORD ?? '',
|
|
},
|
|
});
|
|
};
|
|
|
|
export const mailer = getTransport();
|