← Cloudflare Email Service / email-service / get-started
Отправка писем
Отправляйте письма из своих приложений с помощью Cloudflare Email Service. Вы можете использовать привязка Workers для приложений, созданных на Cloudflare Workers, REST API с любой платформы, или SMTP из любого приложения или почтового клиента с поддержкой SMTP.
Настройте свой домен
Перед использованием Email Sending настройте домен.
-
В панели управления Cloudflare перейдите в Вычисления > Служба электронной почты > Email Sending.
Перейдите в Email Sending ↗ -
Выберите Подключить домен.
-
Выберите домен в своей учетной записи Cloudflare. При необходимости ознакомьтесь с DNS записями, которые Cloudflare добавит в
cf-bounceподдомен вашего домена:- MX-записи для маршрутизации писем о недоставке в Cloudflare.
- TXT-запись для SPF разрешает отправку писем.
- TXT-запись для DKIM обеспечивает аутентификацию писем, отправляемых с вашего домена.
- TXT-запись для DMARC на
_dmarc.yourdomain.com.
-
Выберите Готово.
После подключения домена вы можете начать отправку писем.
Отправьте первое письмо
Отправить первое письмо можно с помощью привязки Workers, REST API или SMTP.
Если вы разрабатываете на Cloudflare Workers, для нативной отправки писем можно использовать Workers binding. Начните с создания нового проекта Worker.
-
Создайте новый проект Worker:
npm create cloudflare@latest -- email-service-tutorialКогда появится запрос, выберите Worker «Hello World» в качестве шаблона.
-
Добавьте привязку email в файл конфигурации Wrangler:
{ "send_email": [ { "name": "EMAIL", "remote": true, }, ], }[[send_email]] name = "EMAIL" remote = true -
Создайте код Worker в
src/index.ts:// Configuration - Update these values const YOUR_DOMAIN = "yourdomain.com"; // Replace with your verified domain const RECIPIENT_EMAIL = "[email protected]"; // Replace with your email to receive test emails export default { async fetch(request: Request, env: Env): Promise<Response> { // Send a welcome email const response = await env.EMAIL.send({ to: RECIPIENT_EMAIL, from: `welcome@${YOUR_DOMAIN}`, subject: "Welcome to our service!", html: "<h1>Welcome!</h1><p>Thanks for signing up.</p>", text: "Welcome! Thanks for signing up.", }); return new Response(`Email sent: ${response.messageId}`); }, } satisfies ExportedHandler<Env>; -
Используйте
npx wrangler devдля разработки проекта Worker и отправки писем. Это позволяет запускать код локально, подключаясь к Cloudflare Email Service (с использованием удаленные привязки).npx wrangler dev # ⎔ Starting remote preview... # Total Upload: 24.96 KiB / gzip: 6.17 KiB # [wrangler:info] Ready on http://localhost:8787 -
Разверните ваш Worker:
npm run deploy
После развертывания проверьте, что Worker может отправлять письма:
- Откройте URL-адрес Worker в браузере (он указан в выводе развертывания, например:
https://email-service-tutorial.<your-subdomain>.workers.dev). - Вы должны увидеть ответ вроде
Email sent: <message-id>. - Проверьте почтовый ящик для email-адреса, указанного в
RECIPIENT_EMAIL. Если письмо не пришло, проверьте папку со спамом.
Отправьте письмо с одним curl команду. Замените {account_id} с вашим Cloudflare account ID и <API_TOKEN> с API-токен.
curl "https://api.cloudflare.com/client/v4/accounts/{account_id}/email/sending/send" \
--header "Authorization: Bearer <API_TOKEN>" \
--header "Content-Type: application/json" \
--data '{
"to": "[email protected]",
"from": "[email protected]",
"subject": "Welcome to our service!",
"html": "<h1>Welcome!</h1><p>Thanks for signing up.</p>",
"text": "Welcome! Thanks for signing up."
}'Успешный ответ включает статус доставки для каждого получателя:
{
"success": true,
"errors": [],
"messages": [],
"result": {
"delivered": ["[email protected]"],
"permanent_bounces": [],
"queued": []
}
}Подробнее см. в Справочник по REST API.
Отправьте письмо с одним curl команду. Замените <API_TOKEN> с API-токен Cloudflare у которого есть Email Sending: Edit разрешение, и замените --mail-from и --mail-rcpt адреса на собственные.
cat > mail.txt <<EOF
From: [email protected]
To: [email protected]
Subject: Welcome to our service!
Thanks for signing up.
EOF
curl --ssl-reqd \
--url "smtps://smtp.mx.cloudflare.net:465" \
--user "api_token:<API_TOKEN>" \
--mail-from "[email protected]" \
--mail-rcpt "[email protected]" \
--upload-file mail.txtДомен отправителя ([email protected]) должен быть подключён для Email Sending в аккаунте, которому принадлежит API-токен.
Сведения о подключении, аутентификации, кодах ответов и примеры для конкретных языков см. в Справочник по SMTP.
Следующие шаги
Теперь, когда вы можете отправлять письма, ознакомьтесь с дополнительными возможностями:
- Маршрутизация входящих писем - Обработка писем, отправленных на ваш домен
- Справочник по API - Полная документация по API
- Примеры - Практические шаблоны реализации