从Web服务器发送的电子邮件会导致gmail被视为网络钓鱼。如何摆脱这个?

时间:2012-04-30 05:15:17

标签: asp.net email gmail phishing

我正在从我的.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);

由于

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

suggestion by IrishChieftain使用SPF帮助了我,所以这里是我所做步骤的摘要:

1。)首先,我还收到了我从我的服务器发送的GMail收件箱中的电子邮件,其中包含 "This message may not have been sent by..." warning

2。)接下来,我查看了GMail内部电子邮件的来源(点击邮件旁边的箭头并选择"显示原始文件")。摘录自:

  

收到SPF:失败(google.com:我的域名@ mydomain.com 不会   指定 211.113.37.19 作为允许的发件人)client-ip = 211.113.37.19;

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

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。)之后,我等了一段时间,试图重新发送。这成功了。谷歌现在显示原文:

  

收到-SPF:传递(google.com:Received-SPF的域:传递(google.com:域名为me@mydomain.com,指定为211.113.37.19为允许的发件人)client-ip = 211.113.37.19;

请注意,我选择SPF版本,因为邮件服务器与Web服务器位于不同的计算机上,因此我无法执行其他solution as Mulmot wrote

还有一个SPF Wizard from Microsoft可以正确生成SPF记录。或者,这是yet another SPF generator