【问题标题】:Sending email from SMTP server without the need to enter password从 SMTP 服务器发送电子邮件而无需输入密码
【发布时间】:2011-09-20 19:46:38
【问题描述】:

我们有一个应用程序提示用户使用他的 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);

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

谢谢

【问题讨论】:

  • 这不是“回复”字段的用途吗?
  • 不,该字段只会在您尝试回复电子邮件时设置目标电子邮件
  • 对我来说它与 client.UseDefaultCredentials = true 一起使用,应该删除设置 client.Credentials 的行

标签: c# .net asp.net winforms


【解决方案1】:

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

【讨论】:

  • 谢谢,这很有意义,你有一个链接来解释如何配置 smtp 服务器不需要身份验证,再次感谢
  • 这真的取决于你使用的 SMTP 服务器,它们都是不同的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-07
  • 2018-10-17
  • 2021-10-01
  • 2017-01-30
相关资源
最近更新 更多