c# - 从 SMTP 服务器发送电子邮件而无需输入密码

标签 c# .net asp.net winforms

我们有一个应用程序提示用户使用他的 ldap 用户名和密码登录,从中我可以获得用户电子邮件但不是电子邮件密码,我的目标是从该用户的邮件发送电子邮件而不需要提示用户的电子邮件密码。

我正在使用以下代码发送电子邮件

NetworkCredential loginInfo = new NetworkCredential("fromemail@mydomain.com","mypassword");
MailMessage msg = new MailMessage();
sg.From = new MailAddress("fromemail.lb@mydomain.com");
msg.To.Add(new MailAddress("toemail.lb@mydomain.com"));
msg.Subject = "test";

SmtpClient client = new SmtpClient("smtp.mydomain.com");
client.EnableSsl = true;
client.UseDefaultCredentials = true;
client.Credentials = loginInfo;
client.Send(msg);

是否可以在没有密码的情况下发送电子邮件?诸如电子邮件欺骗之类的事情,如果不可能,是否可以伪造它,例如从一封电子邮件发送所有电子邮件,但使电子邮件看起来好像来自已登录用户的电子邮件?

谢谢

最佳答案

这完全取决于 SMTP 服务器。当您配置 SMTP 服务器时,您决定它接受什么凭据以及它是否允许您伪装成其他人。许多网络服务器在本地主机上都有一个内置的 SMTP 服务器,通常不需要任何凭据。一些 ISP 提供 SMTP 服务器,允许您从其他人那里发送电子邮件。如果您的 SMTP 服务器不需要身份验证,您只需删除为 smtp 客户端配置安全性的 3 行代码。

关于c# - 从 SMTP 服务器发送电子邮件而无需输入密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7484492/

相关文章:

c# - 在 LINQ 中获取所有 +ve 数

.net - 在 .NET 2.0+ 中针对 PayPal API 进行编码的示例?

c# - 如何从 .NET Framework 初始化 .net Core ILogger 或 ILoggerFactory 并注入(inject)到 .Net Core 内置类库中的构造函数

asp.net - OpenAM、OpenId、REST API、内部应用程序 : how do I connect them all?

c# - 将事件发送到独立应用程序

C# COM 互操作 : How to translate instructions from C++?

c# - EF Code First 处理多对多关系

c# - 无法将 RegularExpressionValidator 添加到面板

asp.net - 如何通过其呈现事件禁用 CalendarExtender 控件中的先前日期?

c# - .Net Core - 调试时应用程序崩溃