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

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

是否有可能发送没有密码的电子邮件?类似于电子邮件欺骗一样的东西。如果不可能,是否可以伪造它,比如从一个邮箱发送所有邮件,但使其看起来像是来自已登录用户的邮箱?

谢谢。


2
这不是“回复地址(reply-to)”字段的作用吗? - spender
2
不,只有当您尝试回复电子邮件时,该字段才会设置目标电子邮件。 - Hassan Mokdad
对我来说,使用client.UseDefaultCredentials = true可以正常工作,应该删除设置client.Credentials的那一行。 - Ranga
1个回答

9

一切都取决于SMTP服务器。当您配置SMTP服务器时,您可以决定它接受哪些凭据以及是否允许您冒充别人。许多Web服务器在本地主机上内置了SMTP服务器,通常不需要任何凭据。一些互联网服务提供商提供的SMTP服务器可以让您代表其他人发送电子邮件。如果您的SMTP服务器不需要身份验证,您可以简单地删除配置smtp客户端安全性的三行代码。


1
谢谢,这很有道理。你有一个链接可以解释如何配置SMTP服务器以不需要身份验证吗?再次感谢。 - Hassan Mokdad
1
这实际上取决于你使用的SMTP服务器,它们都不同。 - ForbesLindesay

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接