Namecheap Private Email (SMTP) からセルフホスト Discourse へのメール送信に問題があります

こんにちは皆さん、

セルフホストのDiscourseで送信メールの設定を試していますが、今のところうまくいっていません。Namecheapのサポートにも協力してもらいましたが、動作させることができませんでした。ここで何か見落としている点があれば、誰か教えていただけないでしょうか。

設定

  • ホスティング:DigitalOceanのドロップレット、公式Dockerメソッド(/var/discourse)でDiscourseをインストール。

  • ドメイン:Cloudflareで管理(サイトのプロキシされたAレコード、MX/メールレコードはDNSのみ)。

  • メールプロバイダー:Namecheap Private Email

  • Discourseのバージョン:最新のtests-passedブランチ。

正常に動作していること

  • hello@domain.com の受信トレイでメールを受信できます。

  • MX、SPF、DKIM、DMARCのDNSレコードが設定され、検証されています。

  • 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

実施したデバッグ手順

  • CloudflareのDNSレコード(MX、SPF、DKIM、DMARC)が正しいことを確認しました。

  • ポート587および465がローカルでUFW/iptablesによってブロックされていないことを確認しました。

  • /etc/gai.conf でIPv4優先を強制しようとしました。

  • ncopenssl でテストしましたが、タイムアウトしました。

  • Namecheap自身の指示(587 STARTTLSまたは465 SSL)でも、サーバーからの失敗が発生します。

質問

  • Namecheap Private Email をDiscourse SMTPで正常に設定できた方はいらっしゃいますか?

  • DigitalOceanのドロップレットが mail.privateemail.com のポート587/465に到達できないという既知の問題はありますか?

  • Namecheap SMTPを諦めて、トランザクショナルメールサービス(Postmark、Mailgun、SendGrid)を使用すべきでしょうか?

  • このプロバイダーに特別な app.yml フラグが必要ですか?

このセットアップで行き詰まっています。どんなガイダンスでも事前に感謝いたします。

トランザクションメールサービス(Mailgun、Brevo、Amazon SESなど)を使用する必要があります。それがフォーラムからメールを送信する最適な方法です。

discourse/docs/INSTALL-email.md at main · discourse/discourse · GitHub を参照してください。

以下も確認することをお勧めします。

「いいね!」 1

失敗メッセージは何ですか?

DigitalOceanは、他の多くの人が報告しているように、発信メールをブロックしていますか?

ポート2525を試しましたか?

「いいね!」 1

返信ありがとうございます。大変感謝しております。

@pfaffman Digital Oceanが送信メールをブロックしているとは知りませんでした。いいえ、2525は試していません。

それを検索した後、彼らがすべての送信メールをブロックするという記事を見つけました。Why is SMTP blocked? | DigitalOcean Documentation

次のような簡単なテストを行いました。

nc -vz smtp.mailgun.org 2525 これはテストに合格しました。587と465は失敗しました。

これらのポートを開くように依頼してチケットを開きました。

もし開けてくれない場合は、Mailgunを調べる必要があります。無料であることを願っています。

アカウントのアクティベーションのためにサポートに連絡し、プランタイプの設定を変更すれば、無料プランで問題なく利用できるはずです。

これは常に BT Mail や Gmail に非常に似ていると思っていました。Discourse には適していません。

メール受信のために POP3 ポーリングを使用できますが、x86 VPS を使用しているため、mail-receiver をお勧めします。

「いいね!」 1

Digital Oceanから返信があり、メールに返信しました。

「セキュリティチームがSMTPポートのブロック解除について詳しく確認させていただくことで、その可能性を探ることができることを嬉しく思います。お客様のニーズをより深く理解し、リクエストを進めるために、以下のビジネス要件に関する詳細を共有していただけますでしょうか。

  • どのような種類のメールを送信する予定ですか(例:トランザクションメール、ニュースレターなど)?

  • ご自身のメールサーバーをホストする予定ですか、それともサードパーティの送信サービスを利用する予定ですか?

  • 可能であれば、ポート要件に関するコンテキストと、標準以外のポートやAPIが使用できないかどうかをご提供ください。

お客様からの返信を受け取り次第、提供されたすべての詳細とともにリクエストをチームに転送いたします。」

その場合は、Mailgun(1日100通無料)やBrevo(1日300通無料)のようなトランザクションメールサービスに切り替えるべきです。その後、ブロックされていないポート2525をapp.ymlファイルで使用するように切り替えることができます。

「いいね!」 2

「DigitalOceanサポートです。

お客様のアプリケーション要件またはビジネス上の必要性により、ポート25、465、および587を有効にする必要があることを理解しております。しかしながら、現在のポリシーにより、このポートの制限を解除するリクエストに対応することはできません。

アプリケーションで可能な場合は、ポート2525などの代替ポートの利用をご検討ください。また、SendGridのREST APIを利用して、従来のSMTPプロトコルではなくHTTPリクエスト経由でメールを送信することも可能です。これはお客様に適している場合や、他のサードパーティの送信サービスを利用する場合に役立ちます。

ご不明な点がございましたら、お気軽にお問い合わせください。いつでも対応いたします。

そのため、Mailgunを試してみます」

「いいね!」 1

25は不要かもしれないとフォローアップしてはどうですか?

@Ethsim2 ありがとうございます。Linodeのように、スパム対策のためにすべてを閉鎖したのだと思いますが、Linodeはリクエストに応じてポートを開きますが、問題ありません。

MailGunにします。

「いいね!」 2

人生で初めて、新品のアカウントがブロックされました LOL
「Mailgun: アカウントが一時的に無効になっています。」

他に利用できるSMTPサービスはありますか?

「いいね!」 1