General
Email
Custom Provider
Learn how to use a custom provider for sending emails.
You can add any email provider by creating a new file in the packages/email/provider/ folder and implementing the EmailProvider type:
packages/email/provider/my-provider/index.ts
import { keys } from '../../../keys';
import { type EmailPayload, type EmailProvider } from '../types';
class MyEmailProvider implements EmailProvider {
private readonly from: string;
constructor() {
const from = keys().EMAIL_FROM;
if (!from) {
throw new Error('Missing EMAIL_FROM in environment configuration');
}
this.from = from;
}
public async sendEmail(payload: EmailPayload) {}
}
export default new MyEmailProvider();Add the new provider in packages/email/provider/index.ts:
packages/email/provider/index.ts
// export { default as EmailProvider } from './nodemailer';
// export { default as EmailProvider } from './postmark';
// export { default as EmailProvider } from './resend';
// export { default as EmailProvider } from './sendgrid';
export { default as EmailProvider } from './my-provider';