3

我正在从我的 .net 应用程序发送帐户激活电子邮件。

我将发件人地址设置为“xyz.support@gmail.com”和名称“xyz”,其中xyz 是域的名称,即我们的网站。

当我们使用 Google 的 SMTP 服务器时这不是问题,因为我在发送过程中向 google 提供了凭据。但现在我使用自己的网络服务器的 SMTP 发送电子邮件。

当我在 gmail 中查看激活电子邮件时,我得到以下信息:

此邮件的发送者可能不是:xyz.support@gmail.com 了解更多 报告网络钓鱼

有没有办法摆脱这种情况,使 gmail 和其他客户端不显示此消息?

这是代码:

var smtpClient = new SmtpClient();
var message = new MailMessage();

smtpClient.Host = _config.SMTPServer;
message.From = new MailAddress("xyz.support@gmail.com", "xyz");
message.To.Add("newuser@gmail.com");            

message.IsBodyHtml = true;
message.Subject = "Test subject";
message.Body = "Test Body";

smtpClient.Send(message);

谢谢

4

2 回答 2

3

FROM 地址的域必须与发送电子邮件的 SMTP 服务器的域相匹配,否则您的邮件将被视为垃圾邮件。

这解释了为什么您通过 Google 的 SMTP 服务器发送来避免“错误”。

于 2012-04-30T05:21:15.497 回答
1

IrishChieftain使用SPF的建议帮助了我,所以这里是我所做的步骤的总结:

1.)首先,我还在我的 GMail 收件箱中收到了从我的服务器发送的电子邮件,并且收到了“此邮件可能不是由...发送”警告

2.)接下来,我查看了 GMail 中电子邮件的来源(单击邮件旁边的箭头并选择“显示原件”)。摘录如下:

Received-SPF:失败(google.com: domain of me@mydomain.com未将211.113.37.19指定为允许的发件人)client-ip=211.113.37.19;

所以谷歌直接告诉我该怎么做:在我的域“mydomain.com”的DNS中添加一些SPF记录以摆脱这个警告。

3.)因此,我登录了我的 DNS 提供商的控制面板并添加了两条 TXT 记录,如下所示:

*.mydomain.com. 180 v=spf1 +a +mx ip4:211.113.37.19 -all
mydomain.com. 180 v=spf1 +a +mx ip4:211.113.37.19 -all

请注意,我在三个单独的字段中输入了每一行:

  • 一个领域*.mydomain.com.
  • 一个字段180(TTL,在我的示例中为 3 分钟)
  • 一个领域v=spf1 +a +mx ip4:211.113.37.19 -all

4.)在那之后,我等了一段时间并尝试重新发送。这成功了。谷歌现在在原版中显示:

Received-SPF: pass (google.com: domain of Received-SPF: pass (google.com: domain of me@mydomain.com 指定 211.113.37.19 为允许的发件人) client-ip=211.113.37.19;

请注意,我选择了 SPF 版本,因为邮件服务器与 Web 服务器位于不同的机器上,因此我无法执行Mulmot 所写的其他解决方案

Microsoft还提供了一个SPF 向导来正确生成 SPF 记录。或者,这里还有另一个 SPF 生成器

于 2014-03-11T22:01:29.730 回答