【发布时间】:2014-04-01 21:32:49
【问题描述】:
我有这个代码
var mail = new MailMessage(
"from@from.com",
"to@to.com",
"subject",
"body");
mail.ReplyToList.Add(new MailAddress("from@from.com"));
var client = new SmtpClient();
client.Send(mail);
在我的 web.config 文件中
<system.net>
<mailSettings>
<smtp from="no-reply@no-reply.com">
<network host="smtp.live.com" password="mypassword" port="587" userName="myemailaddress@hotmail.com" enableSsl="true" />
</smtp>
</mailSettings>
</system.net>
问题是这样的:发送到 to@to.com 的电子邮件的收件人地址不是 from@from.com 而是 myemailaddress@hotmail.com。当我点击回复电子邮件地址时,因为我有这一行:
mail.ReplyToList.Add(new MailAddress("from@from.com"));
回复电子邮件地址确实设置为 from@from.com。
我想要的是:
- 回复电子邮件地址为 from@from.com(现在这样)
- 收件人电子邮件地址也是 from@from.com。
现在,在收到电子邮件的任何人看来,这封电子邮件来自 myemailaddress@hotmail.com。我认为我添加的 web.config 中的配置仅用于针对 smtp.live.com 邮件服务器进行身份验证,并且电子邮件地址不会用于正在发送的电子邮件中。
我做错了什么?
【问题讨论】:
-
What am I doing wrong?你没有通过你自己的from.com邮件服务器发送它。 Microsoft(和大多数其他主要邮件主机)不会允许您故意欺骗发件人地址。 -
我明白了,所以我需要设置自己的电子邮件服务器吗?
-
...或者,通过不需要身份验证的邮件服务器发送。或者,如果您实际上拥有您所指的
from.com域,您现有的 DNS/Web 主机也可能提供此功能。如果您不拥有该域,那么您实际上是在发送垃圾邮件,并且您的邮件可能会被收件人邮件服务器标记。本质上,不要“撒谎”。 -
我明白了。发送的每封电子邮件的发件人电子邮件地址都不同。所以会有各种各样的领域。 sendgrid 需要身份验证吗?
-
from email address will be different for each email sent作为发件人,您是否拥有每个不同的域?如果不是,您不应该让他们看起来像是来自这些域。
标签: c# email smtp smtpclient