【问题标题】:How to check status of an SMTP server from Java?如何从 Java 检查 SMTP 服务器的状态?
【发布时间】:2010-12-14 20:30:28
【问题描述】:

在 Java 程序中,确定 SMTP 服务器是否准备好接受和发送电子邮件的最佳方法是什么?

【问题讨论】:

    标签: java smtp jakarta-mail


    【解决方案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 地址。 该域还需要至少一个 MX 记录。 IE。如果你是服务器 连接来自 123.45.67.89 然后 你需要一个 A 记录映射 yourdomain.com 到 123.45.67.89 和一个 PTR(“反向 DNS”)记录映射 123.45.67.89 回到 yourdomain.com。如果不满足这些条件中的任何一个 你会遇到一些问题 邮件服务器检查这些 事情是反垃圾邮件措施。

    【讨论】:

    • @Pablo - 你应该提到你需要检查每个命令的响应。
    • 您还需要确保 HELO 域具有互补的 A / PTR dns 记录对,域映射到的 IP 地址是您连接的 IP 地址。该域还需要至少一个 MX 记录。 IE。如果您连接的服务器是 123.45.67.89,那么您需要将 yourdomain.com 映射到 123.45.67.89 的 A 记录和将 123.45.67.89 映射回 yourdomain.com 的 PTR(“反向 DNS”)记录。如果不满足这些条件中的任何一个,您将遇到一些邮件服务器的问题,因为检查这些东西是反垃圾邮件措施。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-17
    • 1970-01-01
    • 1970-01-01
    • 2021-11-11
    • 1970-01-01
    相关资源
    最近更新 更多