C# 如何在不发送邮件的情况下测试电子邮件设置?
作为我的应用程序配置过程的一部分,我有一个健全性检查程序来验证所有用户提供的数据。这包括应用程序用于发送电子邮件的电子邮件服务器设置 我想在不发送任何电子邮件的情况下对这些设置进行简单的检查。如果这可以支持所有标准的SMTP设置,包括带有身份验证/ssl/等的设置,那就太好了 它不需要详尽无遗,但覆盖面越广越好 目前,我所做的只是验证是否可以在给定端口上打开到给定服务器的连接。再深一点就好了C# 如何在不发送邮件的情况下测试电子邮件设置?,c#,email,c#-3.0,C#,Email,C# 3.0,作为我的应用程序配置过程的一部分,我有一个健全性检查程序来验证所有用户提供的数据。这包括应用程序用于发送电子邮件的电子邮件服务器设置 我想在不发送任何电子邮件的情况下对这些设置进行简单的检查。如果这可以支持所有标准的SMTP设置,包括带有身份验证/ssl/等的设置,那就太好了 它不需要详尽无遗,但覆盖面越广越好 目前,我所做的只是验证是否可以在给定端口上打开到给定服务器的连接。再深一点就好了 注意:我不想验证电子邮件地址——这与这个问题无关。我相信更聪明、更合格的人会给出更好的答案。然而,乍一看
注意:我不想验证电子邮件地址——这与这个问题无关。我相信更聪明、更合格的人会给出更好的答案。然而,乍一看,我想说的是,如果不发送电子邮件,您就无法验证成功发送电子邮件的能力 然而,如果你想自动化这个过程,你可以有一个“MyApp”_SanityCheck@gmail.com“(或您的本地域)地址 然后,您可以创建一个监视该电子邮件地址的看门狗应用程序,或者只创建一个简单的应用程序,通过编程与该电子邮件地址交互,并检查是否在X分钟内收到电子邮件。通过这种方式,您可以100%确定电子邮件能够发送出去。 此链接显示
一个重要提示:如果你的应用程序正在发送外部电子邮件,那么最好是使用外部电子邮件地址,因为你的服务器可能无法发送外部电子邮件,但内部电子邮件可以正常工作,在这种情况下,您的健全性检查将发送一个假阳性。您只需打开一个到用户提供的服务器和端口的原始连接,然后执行
HELO Server.Domain.Com
Mail From: validaccount@domain.com
查看是否得到有效的HELO响应和发送方OK响应
(如果启用了smtp身份验证)
与直接使用telnet连接到服务器时的操作相同
这可能也很有用
如果我使用的是安全的smtp服务器,我能走多远?我应该在哪里提供密码或启动SSL/TLS连接?不确定t.b.h.是否从未需要进行测试。你可以试试这个链接。它提供了一些关于openssl/编码/和使用Auth命令@devinb的详细信息:谢谢你的提示。这只供内部使用,并且用于快速的健康检查,实际上不会发送任何内容。在这个过程的后面有一个步骤。谢谢