Java プログラムで、SMTP サーバーが電子メールを受け入れて送信する準備ができているかどうかを判断する最良の方法は何ですか?
1 に答える
JavaMail APIを使用して、電子メールの送信を試みることができます。
実際にメールを送信したくない場合は、TCP ソケットをメール サーバーのポート番号 25 に開き、次のコマンドを送信できます。
HELO yourdomain.com
MAIL FROM: youremail@yourdomain.com
RCPT TO: recipient@recipientdomain.com
コマンドを発行するたびに、すべてのサーバーの応答を確認してください。その時点までエラーが表示されない場合は、おそらくその SMTP サーバーで電子メールを送信できます。
そして、ジョーダン・スチュワートが親切に任命したように:
また、HELO ドメインに補完的な A / PTR dns レコード ペアがあり、ドメインがマッピングされている IP アドレスが接続元の IP アドレスであることを確認する必要があります。ドメインには、少なくとも 1 つの MX レコードも必要です。つまり、接続元のサーバーが 123.45.67.89 の場合、yourdomain.com を 123.45.67.89 にマッピングする A レコードと、123.45.67.89 を yourdomain.com にマッピングする PTR (「リバース DNS」) レコードが必要になります。これらの条件のいずれかが満たされていない場合、一部のメール サーバーで問題が発生します。これは、これらのチェックがスパム対策であるためです。