代码之家  ›  专栏  ›  技术社区  ›  shsteimer

如何在不发送邮件的情况下测试电子邮件设置?

  •  2
  • shsteimer  · 技术社区  · 17 年前

    作为应用程序配置过程的一部分,我有一个健全性检查程序来验证所有用户提供的数据。这包括应用程序用于发送电子邮件的电子邮件服务器设置。

    我想在不发送任何电子邮件的情况下,对这些设置进行简单的健全检查。如果这可以支持所有标准风格的SMTP设置,包括那些带有身份验证/ssl/的设置,那就太好了。

    它不需要详尽无遗,但覆盖范围越广越好。

    目前我所做的就是验证我是否可以在给定的端口上打开到给定服务器的连接。再深一点就好了。

    注:我是 尝试验证电子邮件地址——这与这个问题无关。

    2 回复  |  直到 17 年前
        1
  •  4
  •   Eoin Campbell    17 年前

    您只需打开到用户提供的服务器端口的原始连接,然后执行

    HELO Server.Domain.Com
    Mail From: validaccount@domain.com
    

    查看是否得到有效的helo响应和sender OK响应 (如果启用了SMTP身份验证)。

    与直接通过telnet连接到服务器的情况相同。

    http://www.petri.co.il/test_smtp_service.htm

    这也可能有用

    http://qmail.jms1.net/test-auth.shtml

        2
  •  1
  •   DevinB    17 年前

    我相信有一个更聪明、更合格的人会给出更好的答案。但是,一开始我会说你不能验证 成功地 发送电子邮件而不实际发送电子邮件。

    但是,如果您想要自动化这个过程,您可以有一个“myapp_sanitycheck@gmail.com”(或您的本地域)地址。

    然后,您可以创建一个监视程序应用程序来监视该电子邮件地址,或者只创建一个简单的应用程序,该应用程序以编程方式与该电子邮件地址交互,并检查是否在X分钟内收到电子邮件。这样你就可以百分之百地确定电子邮件是否能够发送出去。 这个链接显示 how to programmatically check gmail addresses .

    一个重要的注意事项:如果您的应用程序正在发送外部电子邮件,那么最好是您使用的电子邮件地址是外部的,因为您的服务器可能无法发送外部电子邮件,但内部电子邮件处理得很好,在这种情况下,您的健全性检查将发送一个误报。

    推荐文章