在 Java 程序中,确定 SMTP 服务器是否准备好接受和发送电子邮件的最佳方法是什么?
问问题
3038 次
1 回答
4
您可以使用JavaMail API并尝试发送电子邮件。
如果您不想实际发送电子邮件,可以打开一个 TCP 套接字到您的邮件服务器的端口号 25 并发送以下命令:
HELO yourdomain.com
MAIL FROM: youremail@yourdomain.com
RCPT TO: recipient@recipientdomain.com
确保在发出每个命令后检查所有服务器响应。如果在那之前您没有看到任何错误,那么您可能可以使用该 SMTP 服务器发送电子邮件。
而且,正如乔丹·斯图尔特亲切地任命的那样:
您还需要确保 HELO 域具有互补的 A / PTR dns 记录对,域映射到的 IP 地址是您连接的 IP 地址。该域还需要至少一个 MX 记录。即,如果您连接的服务器是 123.45.67.89,那么您需要将 yourdomain.com 映射到 123.45.67.89 的 A 记录和将 123.45.67.89 映射回 yourdomain.com 的 PTR(“反向 DNS”)记录。如果不满足这些条件中的任何一个,您将遇到一些邮件服务器的问题,因为对这些东西的检查是反垃圾邮件措施。
于 2009-11-09T23:58:52.657 回答