1.09.2025 г.
Cloudflare и Email Binding

Не е нужно да имате имейл сървър, за да изпращате писма с Cloudflare Worker. Достатъчно е Cloudflare да валидира ваш имейл адрес, който ползвате и той ще изпрати входящите имейли към него.
Изисквания
Има 3 неща, с които трябва да разполагате във вашия Cloudflare акаунт, за да можете да изпращате имейли:
- Домейн - Трябва да имате активен домейн във вашия Cloudflare акаунт. Това не значи, че трябва да е купен от тях - достатъчно е да настроите DNS записите си, да сочат към Cloudflare.
- Имейл - Трябва да имате активен имейл адрес. Не е нужно да е свързан с домейна от предната точка. Спокойно може да е gmail акаунт, или който и да е друг, до който имате пълен достъп. Това може да е й имейла с който се логвате в Cloudflare. Този имейл трябва да е добавен към 'Destination addresses' в настройките на 'Email Routing' на домейна от предната точка, което ще го направи и активен.
- Routing rules - Трябва да имате добавен имейл адрес в 'Routing rules' на 'Email Routing'. Този адрес е част от домейна от първа точка и ще се ползва, да препраща писмата към имейла от предната точка.
Май го описах малко сложно, но като започнете да добавяте настройките една след друга ще го разберете правилно.
Binding
Към Nuxt проекта ви, който използва Cloudflare Worker, би трябвало да има wrangler.jsonc
или wrangler.toml
файл за конфигурация. Към него трябва да добавите следните настройки:
// wrangler.jsonc
{
"send_email": [
{
"name": "INFO_EMAIL", // свободен текст - добре е да има смисъл
"destination_address": "your@valid.email" // имейла от 2ра точка горе
}
]
}
Това са всички първоначални настройки на средата, за да заработи машината. Не забравяйте да актуализирате типовете на Cloudflare.
npx wrangler types
Използване
Най-лесно е към Nitro средата да добавите един API endpoint. Например /api/send-info-email
. Този endpoint трябва да инициализира Cloudflare binding-а, за да го ползваме директно. Това е най-яката част. Става с един ред:
// Достъп до Email binding
const env = event.context.cloudflare?.env;
И както може би се досещате env
ви дава пълен достъп до Email binding-а и може да пращате на воля писма.
// Изпращане на имейл
await env.INFO_EMAIL.send({
sender,
recipient,
content
});
Екстремно просто и адски елегантно решение. DX на MAX.