[Troubleshooting] ポートは開いているのに SMTP 受信ができない場合

— 手動 SMTP トランザクションによる即時判定

メールがまったく届かないにもかかわらず「ポートは開いている」場合、
原因はネットワークではなく SMTP のポリシー / フィルタ段階で拒否されている ケースが非常に多い。

この状況では、メールクライアントで推測するのではなく、
SMTP セッションを直接開き、RCPT 段階で即座に判定する。


SMTP ポート接続(220 バナー確認)

以下のいずれかで接続する。

nc -v <SMTPサーバーIP> <ポート>

または

telnet <SMTPサーバーIP> <ポート>

正常に接続できれば、通常は次のようなバナーが返る。

220 smtp.example.com ESMTP Postfix

220 が表示されない場合
これは SMTP ポリシーの問題ではなく、
ネットワーク / ファイアウォール / セキュリティグループ / リスニング設定の問題である。


手動 SMTP トランザクションテスト(核心は RCPT TO)

220 が返ったら、以下を 1 行ずつ入力して Enter を押す。

HELO test.com
MAIL FROM:<sender@fake-domain.com>
RCPT TO:<realuser@yourdomain.com>
  • HELO test.com
    ドメインは任意で問題ない。
  • MAIL FROM
    テスト用の送信者。何でも可。
  • RCPT TO
    実際に受信されるべきメールアドレスを指定すること。
    そうでなければテストの意味がない。

テスト終了後、セッションを閉じる。

QUIT

結果の判定

応答意味
250 OkSMTP サーバーが受信を許可
550 sender domain not allowed送信者ドメインのポリシーにより拒否
554 Transaction failedポリシー / フィルタ(スパム対策・セキュリティモジュール等)による拒否
421 Service not availableサーバーがセッション自体を拒否(サービス / リソース / ポリシー問題)

なぜ RCPT TO が最重要なのか

SMTP において、
「受信するか / 拒否するか」の判定は ほぼ RCPT TO 段階で決まる

DATA まで進む必要はない。
RCPT TO で 250 が返れば受信可能。
ここで拒否される場合、原因は ポリシー / フィルタ / リレー構成にある。

🛠 마지막 수정일: 2025.12.24

💡 お困りですか?
Zabbix、Kubernetes、各種オープンソースインフラの構築・運用・最適化・障害解析が必要であれば、いつでもご連絡ください。

📧 メール: jikimy75@gmail.com
💼 サービス: 導入支援 | 性能チューニング | 障害解析コンサルティング

What are your feelings

Updated on 2025-12-24