TypeScript API / @laikacms/server/oauth2 / EmailProvider
Interface: EmailProvider
Email provider interface. Implement this interface to integrate with any email service.
Works in both Cloudflare Workers and Node.js environments.
Example
typescript
// Cloudflare Workers with MailChannels
const mailChannelsProvider: EmailProvider = {
async send(message) {
const response = await fetch('https://api.mailchannels.net/tx/v1/send', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
personalizations: [{ to: [{ email: message.to }] }],
from: { email: message.from },
subject: message.subject,
content: [
{ type: 'text/plain', value: message.text },
{ type: 'text/html', value: message.html },
],
}),
});
return { success: response.ok };
},
};
// Node.js with Nodemailer
const nodemailerProvider: EmailProvider = {
async send(message) {
const info = await transporter.sendMail({
from: message.from,
to: message.to,
subject: message.subject,
text: message.text,
html: message.html,
});
return { success: true, messageId: info.messageId };
},
};Methods
send()
ts
send(message): Promise<EmailSendResult>;Parameters
| Parameter | Type |
|---|---|
message | EmailMessage |
Returns
Promise<EmailSendResult>