作为我的应用程序配置过程的一部分,我有一个健全性检查器,可以验证所有用户提供的数据。这包括应用用于发送电子邮件的电子邮件服务器设置。
我想在没有实际发送任何电子邮件的情况下对这些设置进行简单的完整性检查。如果这可以支持所有标准版本的SMTP设置,包括那些带有authentication / ssl / etc的设置,那就太棒了。
它不需要详尽无遗,但覆盖范围越大越好。
目前,我所做的只是验证我可以在给定端口上打开与给定服务器的连接。更深一点的东西会很好。
注意:我不尝试验证电子邮件地址 - 这与此问题无关。
答案 0 :(得分:4)
您只需打开与服务器的原始连接&用户提供的端口并执行
HELO Server.Domain.Com
Mail From: validaccount@domain.com
看看你是否获得了有效的HELO响应&发件人OK响应 (如果启用了smtp身份验证)。
与直接telnet到服务器时的情况相同。
http://www.petri.co.il/test_smtp_service.htm
这可能也很有用
答案 1 :(得分:1)
我相信有更聪明,更有资格的人会得到更好的答案。但是,乍一看,我会说你无法验证成功发送电子邮件的能力,而无需实际发送电子邮件。
但是,如果要自动执行该过程,可以使用“MyApp_SanityCheck@gmail.com”(或本地域)地址。
然后,您可以创建一个监视该电子邮件地址的监视程序应用程序,或者只是一个以编程方式与该电子邮件地址连接的简单应用程序,并检查是否在X分钟内收到了电子邮件。通过这种方式,您可以100%确定电子邮件是否可以发送出去。 此链接显示how to programmatically check gmail addresses。
重要提示:如果您的应用程序发送外部电子邮件,那么最好使用您使用的电子邮件地址,因为您的服务器可能无法发送外部电子邮件,但内部电子邮件会通过很好,在这种情况下,你的理智检查会发出误报。