Проблемы с отправкой почты через Namecheap Private Email (SMTP) на самостоятельно размещенном Discourse

Всем привет,

Я пытаюсь настроить исходящую почту на самостоятельно размещённом экземпляре Discourse, но пока безрезультатно. Даже с поддержкой Namecheap нам не удалось это сделать. Надеюсь, кто-то здесь подскажет, чего мне не хватает.

Настройка

  • Хостинг: Droplet от DigitalOcean, Discourse установлен официальным методом Docker (/var/discourse).

  • Домен: управляется через Cloudflare (проксируемые A-записи для сайта, DNS-только для MX/почтовых записей).

  • Провайдер почты: Namecheap Private Email.

  • Версия Discourse: последняя ветка tests-passed.

Что работает

  • Я могу получать почту на свой ящик hello@domain.com без проблем.

  • DNS-записи MX, SPF, DKIM и DMARC настроены и проверены.

  • Входящая почта через Gmail → hello@domain.com работает.

Что не работает

  • Исходящая почта (письма активации, тестовые письма из Discourse) никогда не доставляется.

  • Поддержка Namecheap подтвердила, что мои учётные данные и настройки верны, но не смогла объяснить, почему это не работает с сервера.

Текущая конфигурация app.yml

DISCOURSE_SMTP_ADDRESS: mail dot privateemail dot com
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: hello at domain dot com
DISCOURSE_SMTP_PASSWORD: “PASSWORD”
DISCOURSE_SMTP_ENABLE_START_TLS: true
DISCOURSE_SMTP_DOMAIN: domain dot com
DISCOURSE_NOTIFICATION_EMAIL: hello at domain dot com DISCOURSE_SMTP_AUTHENTICATION: login

Я также пробовал порт 465 с настройками:

DISCOURSE_SMTP_PORT: 465
DISCOURSE_SMTP_ENABLE_START_TLS: false
DISCOURSE_SMTP_SSL: true

Выполненные шаги отладки

  • Проверил DNS-записи в Cloudflare (MX, SPF, DKIM, DMARC) — всё верно.

  • Убедился, что порты 587 и 465 не заблокированы локально через UFW/iptables.

  • Попробовал принудительно включить предпочтение IPv4 в /etc/gai.conf.

  • Протестировал с помощью nc и openssl — всё равно таймаут.

  • Даже инструкции самого Namecheap (587 STARTTLS или 465 SSL) приводят к ошибке с сервера.

Вопрос

Удавалось ли кому-то успешно настроить Namecheap Private Email с SMTP в Discourse?

  • Есть ли известная проблема с доступом Droplet от DigitalOcean к mail.privateemail.com по портам 587/465?

  • Стоит ли отказаться от SMTP Namecheap в пользу транзакционного почтового сервиса (Postmark, Mailgun, SendGrid)?

  • Нужен ли для этого провайдера специальный флаг в app.yml?

Заранее спасибо за любые советы. Я зашёл в тупик с этой настройкой.

Для отправки транзакционной почты рекомендуется использовать такие сервисы, как Mailgun, Brevo или Amazon SES. Это оптимальный способ отправки писем с вашего форума.

См. discourse/docs/INSTALL-email.md at main · discourse/discourse · GitHub

Также вам может быть полезно ознакомиться со следующими материалами:

Каково сообщение об ошибке?

Блокирует ли DigitalOcean исходящую почту, о чем сообщали многие другие?

Пробовали ли вы порт 2525?

Спасибо вам, ребята, за ответы, я очень ценю это.

@pfaffman Я не знал, что Digital Ocean блокирует исходящую почту. Нет, я не пробовал порт 2525.

После поиска я наткнулся на статью, где сказано, что они блокируют всю исходящую почту: Why is SMTP blocked? | DigitalOcean Documentation

Я провел небольшой тест с помощью команды:

nc -vz smtp.mailgun.org 2525, и тест прошел успешно. Порты 587 и 465 не сработали.

Я открыл тикет с просьбой открыть эти порты.

Если они не откроют их, мне придется изучить Mailgun, надеюсь, это бесплатно.

Если вы обратитесь в их службу поддержки для активации аккаунта после изменения настроек типа тарифа, то бесплатного тарифа должно быть достаточно.

Я всегда считал, что это очень похоже на BT Mail или Gmail, но для Discourse это не подходит.

Вы можете использовать опрос POP3 для получения почты, но так как у вас есть VPS на архитектуре x86, я рекомендую mail-receiver.

Digital Ocean ответили на ваше письмо:

«Мы с радостью рассмотрим возможность того, чтобы наша команда безопасности более детально изучила вопрос разблокировки SMTP-портов для вас. Чтобы мы могли лучше понять ваши потребности и продвинуться в рассмотрении вашего запроса, пожалуйста, предоставьте следующую информацию о ваших бизнес-требованиях:

  • Какой тип писем вы планируете отправлять (например, транзакционные, рассылки и т. д.)?

  • Планируете ли вы размещать собственную почтовую систему или воспользоваться сторонним сервисом отправки писем?

  • По возможности, пожалуйста, объясните необходимость использования конкретных портов и укажите, почему нельзя использовать нестандартные порты или API.

Как только мы получим от вас ответ, мы передадим ваш запрос соответствующей команде со всеми предоставленными деталями».

В таком случае вам стоит перейти на использование транзакционного почтового сервиса, такого как Mailgun (100 писем бесплатно в день) или Brevo (300 писем бесплатно в день). После этого вы можете изменить порт на 2525 в вашем файле app.yml, так как он не заблокирован.

Приветствие от службы поддержки DigitalOcean!

Мы понимаем, что у вас есть необходимость в приложении или бизнес-потребность в открытии портов 25, 465 и 587. Однако в соответствии с нашей текущей политикой мы не можем удовлетворить запросы на снятие ограничений на эти порты.

Мы рекомендуем использовать альтернативные порты, если ваше приложение это позволяет, например порт 2525. Также вы можете использовать REST API с SendGrid, который позволяет отправлять электронные письма через HTTP-запросы вместо традиционного протокола SMTP, если это подходит для вас, или воспользоваться другим сторонним сервисом отправки.

Пожалуйста, не стесняйтесь обращаться к нам, если у вас возникнут дополнительные вопросы. Мы всегда готовы помочь!

Итак, я попробую Mailgun.

Может, уточнить, что вам не нужен 25?

Редакция: следовательно, вам не нужно, например, демонстрировать обратный DNS, если вы хотите сделать то, что MailGun делает за вас

@Ethsim2 спасибо, я думаю, всё понятно. Как и Linode, они закрыли всё для борьбы со спамом; только Linode открывает порты по запросу, но это нормально.

Я выберу MailGun.

За свою жизнь я никогда не сталкивался с тем, чтобы мой новый аккаунт блокировали, ха-ха.

“Mailgun: Ваш аккаунт временно отключен.”

Есть ли альтернативный SMTP-сервис, который я могу использовать?