以C#格式发送电子邮件,无需配置用户名和密码

以C#格式发送电子邮件,无需配置用户名和密码,c#,asp.net,email,email-client,C#,Asp.net,Email,Email Client,在一个场景中,我需要向用户发送电子邮件。但问题是,我不想硬编码或配置我的电子邮件密码和用户名。如果有人知道PHP MAILER,它确实支持这个功能,在这个功能中,发送电子邮件不需要提供自己的用户名和密码。这些emal可以直接通过本地主机发送。但这对c不起作用# 问题是我们能在c#中做同样的事情吗?如果是,那怎么办?因为我几乎搜索了所有地方,但没有找到任何东西,除了我们需要找到可以发送邮件而不验证凭据的SMTP客户端。您始终可以在config.file中保存加密的用户名和密码 使用此命令加密配置文

在一个场景中,我需要向用户发送电子邮件。但问题是,我不想硬编码或配置我的电子邮件密码和用户名。如果有人知道PHP MAILER,它确实支持这个功能,在这个功能中,发送电子邮件不需要提供自己的用户名和密码。这些emal可以直接通过本地主机发送。但这对c不起作用#


问题是我们能在c#中做同样的事情吗?如果是,那怎么办?因为我几乎搜索了所有地方,但没有找到任何东西,除了我们需要找到可以发送邮件而不验证凭据的SMTP客户端。

您始终可以在config.file中保存加密的用户名和密码

使用此命令加密配置文件中的任何部分 %windir%\Microsoft.NET\Framework\v2.0.50727\aspnet\u regiis-pef“ConnectionString”C:\documents and settings\bob\projects\myproject

请注意,加密是特定于机器的。所以你必须在目标机器上这样做

有关MSDN的更多详细信息:
这当然可以做到,但正如你所说:

emals可以通过本地主机直接发送


在这种情况下,存在一个smtp服务器,并预配置为允许匿名访问/默认凭据。C#或任何.Net应用程序也是如此。如果您有SMTP服务器,该服务器将允许为您的计算机发送电子邮件,您就可以使用,无需进行身份验证。

您可以使用Windows身份验证,例如将凭据设置为:


您可以随时推出自己的SMTP实现,这不是很难做到,也可以获得具有SMTP功能的第三方库

然后,您必须对目标域的“mx”记录进行DNS查找(可能类似于“example.org”->“mx01.example.org”),连接到该mx服务器并与其进行SMTP对话


这“应该”正式起作用,但由于垃圾邮件过滤器的原因,给定的邮件服务器可能不愿意接受来自未知/不受信任或非白名单主机的SMTP连接。在这种情况下,您必须通过受信任的MTA,这基本上意味着这一个需要身份验证。

正如我所说,我不想在应用程序中的任何地方提供密码,无论是加密的还是纯文本的。如果PHP MAILER可以为PHP提供密码,那么C#也必须有密码。你能使用开放的SMTP服务器吗?@Abhishek如果你根本不想使用任何密码,这不是编程问题,而是smtp服务器的设置问题。不过,我不建议启用无密码发送邮件
SmtpClient smtpClient = new SmtpClient();
smtpClient.Credentials = CredentialCache.DefaultNetworkCredentials;