Java アプリケーションを使用して Mercury メール サーバーに接続しようとしていますが、JavaMail API を使用しています。接続が成功せず、ログに次のエラーが記録されます。
EHLO xxxx
554 HELO 形式が無効です
つまり、サーバーに接続しますが、helo 形式はサーバーが好むものではありません。私はそれをデバッグするのにうんざりしていて、JavaMail “SMTPTransport” クラスの次のコードにたどり着きました:
serverOutput.write(cmdBytes);
serverOutput.write(CRLF);
serverOutput.flush();
コードによると: private static final byte[] CRLF = { (byte)'\r', (byte)'\n' };
これは RFC 821 と一致しているようです
Windows では \n の意味が異なることはわかっていますが、これが本当に問題の原因であるかどうかはわかりません。そうでない場合、これを引き起こす原因は何ですか?メールクライアントでメールサーバーをチェックしたところ、正常に動作し、ジェームズメールサーバーでコードをチェックしたところ、正常に動作しました!
JavaMail API バージョン: 1.4.5 (最新リリース)
Mercury/32: 4.7