Как "отправить" email через Cloudflare Email Routing: пошаговая инструкция¶
Cloudflare Email Routing предназначен для переадресации входящих писем, но не поддерживает прямую отправку исходящих сообщений . Для отправки писем через ваш доменный email (например, [email protected]
) потребуются сторонние инструменты. Ниже приведены рабочие методы с учетом актуальных данных на 2025 год.
1. Использование Gmail SMTP¶
Этот метод позволяет отправлять письма через Gmail, но отображать доменный email как отправителя.
Шаги:
1. Настройка SMTP в Gmail:
- В Gmail: «Настройки» → «Аккаунты и импорт» → «Отправлять письма как» → «Добавить другой email».
- Введите доменный адрес (например, [email protected]
).
- Укажите SMTP-сервер smtp.gmail.com
, порт 587
(TLS) или 465
(SSL).
- Логин: ваш Gmail-адрес, пароль — специальный пароль приложения (создается в настройках безопасности Google) .
- Проверка домена:
- Cloudflare автоматически создаст MX-записи для переадресации.
-
Для избежания пометки писем как «непроверенных» добавьте SPF-запись в DNS:
.
-
Особенности:
- Письма могут помечаться как «отправленные через Gmail» в некоторых почтовых клиентах (например, QQ, 163) .
- Для корпоративных решений лучше использовать специализированные сервисы вроде Resend или AWS SES.
2. Интеграция с Resend/SendGrid¶
Сервисы вроде Resend предоставляют SMTP и API для отправки писем от вашего домена.
Шаги:
1. Регистрация в Resend:
- Создайте API-ключ в Resend и привяжите домен через DNS-записи (DKIM, SPF).
2. Настройка SMTP:
- Используйте параметры:
- Хост: smtp.resend.com
- Порт: 587
- Логин: resend
, пароль: ваш API-ключ .
3. Проверка DKIM:
- Сгенерируйте DKIM-ключи через OpenSSL и добавьте TXT-запись в DNS Cloudflare:
openssl genrsa 2048 | tee private_key.pem | openssl rsa -outform der | openssl base64 -A > private_key.txt
3. Cloudflare Workers + MailChannels¶
Для программируемой отправки писем через API:
1. Создание Worker:
- Разверните код Worker (пример: GitHub Gist), который обрабатывает POST-запросы.
2. Настройка DNS:
- Добавьте записи для MailChannels:
- _mailchannels
→ v=mc1 cfid=your-worker-subdomain.workers.dev
- mailchannels._domainkey
→ публичный DKIM-ключ .
3. Отправка через API:
curl -X POST https://your-worker.workers.dev/submit \
-H "Content-Type: application/json" \
-d '{"from": "[email protected]", "to": "[email protected]", "subject": "Test", "content": "Hello"}'
4. Проблемы и решения¶
- Письма не доставляются:
- Проверьте DKIM/SPF-записи через dkim-record-checker.
- Обновите API-ключи, если сервис (например, Resend) блокирует отправку.
- Высокая задержка:
- Избегайте использования Gmail для массовой рассылки — ограничьтесь 100 письмами/день.
Рекомендации¶
- Для личных проектов подойдет Gmail SMTP.
- Для бизнеса используйте Resend или SendGrid с настройкой DKIM/SPF .
- Cloudflare Workers + MailChannels — гибкое решение для разработчиков .
Как добавить SPF-запись для домена¶
SPF (Sender Policy Framework) — это DNS-запись, которая указывает, какие серверы могут отправлять письма от имени вашего домена. Это защищает от спама и подделки email.
Шаг 1: Создание SPF-записи¶
Формат записи зависит от используемых сервисов. Пример для Cloudflare Email Routing + Gmail/SendGrid:
include:_spf.mx.cloudflare.net
— разрешает сервера Cloudflare отправлять письма.-
include:relay.mailchannels.net
— добавляет поддержку MailChannels (если используете Workers).-
~all
— письма с других серверов будут помечаться как подозрительные, но не блокироваться. Шаг 2: Добавление записи в DNS (на примере Cloudflare)¶
- Перейдите в панель Cloudflare → раздел DNS → нажмите Add Record.
- Заполните поля:
- Type:
TXT
- Name:
@
(для корневого домена) или поддомен (например,mail
). - Content: Вставьте вашу SPF-запись (см. пример выше).
- TTL:
Auto
(или выберите значение). - Сохраните запись.
Шаг 3: Проверка SPF¶
- Используйте инструменты вроде MXToolbox или Kitterman SPF Checker.
- Введите ваш домен и убедитесь, что запись отображается корректно.
Важные нюансы¶
-
Только одна SPF-запись
В DNS может быть только одна SPF-запись для домена. Если уже есть SPF, объедините правила черезinclude
илиip4
. -
Время обновления DNS
Изменения вступают в силу через 5–60 минут. -
Комбинация с DKIM/DMARC
Для максимальной защиты настройте также: - DKIM — цифровая подпись писем.
- DMARC — политика обработки писем, не прошедших проверки.
Пример для Gmail + Cloudflare¶
Если отправляете письма через Gmail SMTP, добавьте в SPF:
Письма приходят в "Спам":¶
Чтобы настроить DMARC для вашего домена через Cloudflare, выполните следующие шаги:
Шаги по настройке DMARC в Cloudflare¶
- Войдите в Cloudflare:
-
Перейдите на сайт Cloudflare и войдите в свой аккаунт.
-
Выберите домен:
-
Выберите домен, для которого вы хотите настроить DMARC.
-
Перейдите в DNS-настройки:
-
В панели управления Cloudflare выберите вкладку "DNS".
-
Добавьте запись DMARC:
- Нажмите кнопку "Добавить запись" и выберите тип записи "TXT".
- В поле "Имя" введите
_dmarc
. -
В поле "Значение" введите вашу DMARC-политику. Пример записи:
v=DMARC1; p=none; rua=mailto:[email protected]; ruf=mailto:[email protected]; pct=100
v=DMARC1
: Версия DMARC.p=none
: Политика обработки писем, не прошедших проверку (можно изменить наquarantine
илиreject
).rua=mailto:[email protected]
: Адрес для получения агрегированных отчетов.ruf=mailto:[email protected]
: Адрес для получения отчетов о сбоях.pct=100
: Процент писем, к которым применяется политика (100%).
-
Сохраните изменения:
-
Нажмите "Сохранить" или "Добавить запись", чтобы сохранить новую запись DMARC.
-
Проверьте запись:
- Используйте инструменты проверки DNS (например, MXToolbox), чтобы убедиться, что запись DMARC опубликована правильно.
Рекомендации¶
- Начните с политики
none
: Это позволит вам мониторить почтовый трафик без риска потери писем. - Анализируйте отчеты: Используйте отчеты DMARC, чтобы понять, какие письма не проходят проверку.
- Постепенно ужесточайте политику: После анализа отчетов и уверенности в настройках, измените политику на
quarantine
, а затем наreject
.
Ремарка¶
Начать с политики none
в DMARC означает, что вы настраиваете DMARC для мониторинга вашего почтового трафика без применения каких-либо действий к письмам, которые не проходят проверку DMARC. Это позволяет вам анализировать отчеты и понимать, какие письма могут быть затронуты, прежде чем вводить более строгие меры, такие как карантин или отклонение.
Как настроить политику none
¶
- Создайте запись DMARC:
-
В DNS-настройках вашего домена добавьте TXT-запись с именем
_dmarc
. -
Укажите политику
none
: -
В значении записи DMARC укажите
p=none
. Это указывает получающим серверам не предпринимать никаких действий с письмами, которые не проходят проверку DMARC. -
Настройте отчеты:
- Укажите адреса электронной почты для получения агрегированных отчетов (
rua
) и отчетов о сбоях (ruf
). Это позволит вам анализировать данные о письмах, которые не проходят проверку.
Пример записи DMARC с политикой none
:
v=DMARC1; p=none; rua=mailto:[email protected]; ruf=mailto:[email protected]; pct=100
Что делать дальше¶
- Анализируйте отчеты: Используйте получаемые отчеты, чтобы понять, какие письма не проходят проверку и почему.
- Корректируйте настройки: Убедитесь, что все легитимные письма правильно подписываются с помощью SPF и DKIM.
- Постепенно ужесточайте политику: После анализа отчетов и уверенности в настройках, измените политику на
quarantine
, а затем наreject
, чтобы защитить свой домен от несанкционированного использования.
Если у вас есть дополнительные вопросы или нужна помощь с настройкой, дайте знать!