无需输入密码即可从SMTP服务器发送电子邮件

时间:2011-09-20 11:40:18

标签: 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);

IS是否可以发送没有密码的电子邮件?有些事情比如电子邮件欺骗,如果不是可能的话,是否有可能伪造它,比如从一封电子邮件发送所有电子邮件,但是让电子邮件看起来好像来自登录用户的电子邮件?

谢谢

1 个答案:

答案 0 :(得分:5)

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