Skip to content

Как "отправить" 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) .

  1. Проверка домена:
  2. Cloudflare автоматически создаст MX-записи для переадресации.
  3. Для избежания пометки писем как «непроверенных» добавьте SPF-запись в DNS:

    v=spf1 include:_spf.mx.cloudflare.net include:relay.mailchannels.net ~all
    
    .

  4. Особенности:

  5. Письма могут помечаться как «отправленные через Gmail» в некоторых почтовых клиентах (например, QQ, 163) .
  6. Для корпоративных решений лучше использовать специализированные сервисы вроде 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:
- _mailchannelsv=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:

v=spf1 include:_spf.mx.cloudflare.net include:relay.mailchannels.net ~all
- include:_spf.mx.cloudflare.net — разрешает сервера Cloudflare отправлять письма.
- include:relay.mailchannels.net — добавляет поддержку MailChannels (если используете Workers).
- ~all — письма с других серверов будут помечаться как подозрительные, но не блокироваться.


Шаг 2: Добавление записи в DNS (на примере Cloudflare)

  1. Перейдите в панель Cloudflare → раздел DNS → нажмите Add Record.
  2. Заполните поля:
  3. Type: TXT
  4. Name: @ (для корневого домена) или поддомен (например, mail).
  5. Content: Вставьте вашу SPF-запись (см. пример выше).
  6. TTL: Auto (или выберите значение).
  7. Сохраните запись.

Шаг 3: Проверка SPF

  1. Используйте инструменты вроде MXToolbox или Kitterman SPF Checker.
  2. Введите ваш домен и убедитесь, что запись отображается корректно.

Важные нюансы

  1. Только одна SPF-запись
    В DNS может быть только одна SPF-запись для домена. Если уже есть SPF, объедините правила через include или ip4.

  2. Время обновления DNS
    Изменения вступают в силу через 5–60 минут.

  3. Комбинация с DKIM/DMARC
    Для максимальной защиты настройте также:

  4. DKIM — цифровая подпись писем.
  5. DMARC — политика обработки писем, не прошедших проверки.

Пример для Gmail + Cloudflare

Если отправляете письма через Gmail SMTP, добавьте в SPF:

v=spf1 include:_spf.google.com include:_spf.mx.cloudflare.net ~all

Письма приходят в "Спам":


Чтобы настроить DMARC для вашего домена через Cloudflare, выполните следующие шаги:

Шаги по настройке DMARC в Cloudflare

  1. Войдите в Cloudflare:
  2. Перейдите на сайт Cloudflare и войдите в свой аккаунт.

  3. Выберите домен:

  4. Выберите домен, для которого вы хотите настроить DMARC.

  5. Перейдите в DNS-настройки:

  6. В панели управления Cloudflare выберите вкладку "DNS".

  7. Добавьте запись DMARC:

  8. Нажмите кнопку "Добавить запись" и выберите тип записи "TXT".
  9. В поле "Имя" введите _dmarc.
  10. В поле "Значение" введите вашу 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%).
  11. Сохраните изменения:

  12. Нажмите "Сохранить" или "Добавить запись", чтобы сохранить новую запись DMARC.

  13. Проверьте запись:

  14. Используйте инструменты проверки DNS (например, MXToolbox), чтобы убедиться, что запись DMARC опубликована правильно.

Рекомендации

  • Начните с политики none: Это позволит вам мониторить почтовый трафик без риска потери писем.
  • Анализируйте отчеты: Используйте отчеты DMARC, чтобы понять, какие письма не проходят проверку.
  • Постепенно ужесточайте политику: После анализа отчетов и уверенности в настройках, измените политику на quarantine, а затем на reject.

Ремарка

Начать с политики none в DMARC означает, что вы настраиваете DMARC для мониторинга вашего почтового трафика без применения каких-либо действий к письмам, которые не проходят проверку DMARC. Это позволяет вам анализировать отчеты и понимать, какие письма могут быть затронуты, прежде чем вводить более строгие меры, такие как карантин или отклонение.

Как настроить политику none

  1. Создайте запись DMARC:
  2. В DNS-настройках вашего домена добавьте TXT-запись с именем _dmarc.

  3. Укажите политику none:

  4. В значении записи DMARC укажите p=none. Это указывает получающим серверам не предпринимать никаких действий с письмами, которые не проходят проверку DMARC.

  5. Настройте отчеты:

  6. Укажите адреса электронной почты для получения агрегированных отчетов (rua) и отчетов о сбоях (ruf). Это позволит вам анализировать данные о письмах, которые не проходят проверку.

Пример записи DMARC с политикой none:

v=DMARC1; p=none; rua=mailto:[email protected]; ruf=mailto:[email protected]; pct=100

Что делать дальше

  • Анализируйте отчеты: Используйте получаемые отчеты, чтобы понять, какие письма не проходят проверку и почему.
  • Корректируйте настройки: Убедитесь, что все легитимные письма правильно подписываются с помощью SPF и DKIM.
  • Постепенно ужесточайте политику: После анализа отчетов и уверенности в настройках, измените политику на quarantine, а затем на reject, чтобы защитить свой домен от несанкционированного использования.

Если у вас есть дополнительные вопросы или нужна помощь с настройкой, дайте знать!