我正在尝试使用 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 有不同的含义,但我不确定这是否真的是问题的根源?如果不是,那是什么原因造成的?我用邮件客户端检查了邮件服务器,它工作正常,我用 James 邮件服务器检查了代码,它也工作正常!
JavaMail API 版本是:1.4.5(最新版本)
Mercury/32:4.7