import { EmailMessage } from 'cloudflare:email';
import { createMimeMessage } from 'mimetext';
async function webhook(message) {
await fetch('https://discord.com/api/webhooks/xxx', {
method: 'post',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
username: 'webhook',
content: `${message}`,
}),
});
}
export default {
async email(message, env, ctx) {
const messageID = message.headers.get('Message-ID');
const messageText = `Hello
This is an automated reply to your email.`;
await webhook(`ID: ${messageID} Received email from ${message.from} to ${message.to}`);
try {
await message.forward('admin@mail.xxx.ch');
await webhook(`ID: ${messageID} Forwarded email from ${message.from}`);
} catch (e) {
await webhook(`ID: ${messageID} Failed to forward email from ${message.from} with error ${e}`);
}
const msg = createMimeMessage();
msg.setHeader('In-Reply-To', message.headers.get('Message-ID'));
msg.setSender({ name: 'no-reply', addr: 'noreply@xxx.ch' });
msg.setRecipient(message.from);
msg.setSubject('Probable typo in email address');
msg.addMessage({
contentType: 'text/plain',
data: `${messageText}`,
});
var replyMessage = new EmailMessage('noreply@xxx.ch', message.from, msg.asRaw());
try {
await message.reply(replyMessage);
await webhook(`ID: ${messageID} Replied to email from ${message.from} to ${message.to}`);
} catch (e) {
await webhook(`ID: ${messageID} Failed to reply to email from ${message.from} with error ${e}`);
}
},
};
import { EmailMessage } from 'cloudflare:email';
import { createMimeMessage } from 'mimetext';
async function webhook(message) {
await fetch('https://discord.com/api/webhooks/xxx', {
method: 'post',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
username: 'webhook',
content: `${message}`,
}),
});
}
export default {
async email(message, env, ctx) {
const messageID = message.headers.get('Message-ID');
const messageText = `Hello
This is an automated reply to your email.`;
await webhook(`ID: ${messageID} Received email from ${message.from} to ${message.to}`);
try {
await message.forward('admin@mail.xxx.ch');
await webhook(`ID: ${messageID} Forwarded email from ${message.from}`);
} catch (e) {
await webhook(`ID: ${messageID} Failed to forward email from ${message.from} with error ${e}`);
}
const msg = createMimeMessage();
msg.setHeader('In-Reply-To', message.headers.get('Message-ID'));
msg.setSender({ name: 'no-reply', addr: 'noreply@xxx.ch' });
msg.setRecipient(message.from);
msg.setSubject('Probable typo in email address');
msg.addMessage({
contentType: 'text/plain',
data: `${messageText}`,
});
var replyMessage = new EmailMessage('noreply@xxx.ch', message.from, msg.asRaw());
try {
await message.reply(replyMessage);
await webhook(`ID: ${messageID} Replied to email from ${message.from} to ${message.to}`);
} catch (e) {
await webhook(`ID: ${messageID} Failed to reply to email from ${message.from} with error ${e}`);
}
},
};