Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在不发送邮件的情况下测试电子邮件设置?_C#_Email_C# 3.0 - Fatal编程技术网

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

C# 如何在不发送邮件的情况下测试电子邮件设置?,c#,email,c#-3.0,C#,Email,C# 3.0,作为我的应用程序配置过程的一部分,我有一个健全性检查程序来验证所有用户提供的数据。这包括应用程序用于发送电子邮件的电子邮件服务器设置 我想在不发送任何电子邮件的情况下对这些设置进行简单的检查。如果这可以支持所有标准的SMTP设置,包括带有身份验证/ssl/等的设置,那就太好了 它不需要详尽无遗,但覆盖面越广越好 目前,我所做的只是验证是否可以在给定端口上打开到给定服务器的连接。再深一点就好了 注意:我不想验证电子邮件地址——这与这个问题无关。我相信更聪明、更合格的人会给出更好的答案。然而,乍一看

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

我想在不发送任何电子邮件的情况下对这些设置进行简单的检查。如果这可以支持所有标准的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的详细信息:谢谢你的提示。这只供内部使用,并且用于快速的健康检查,实际上不会发送任何内容。在这个过程的后面有一个步骤。谢谢