【问题标题】:Website (asp.net) to send emails via remote mail server, and not end up in spam folders网站 (asp.net) 通过远程邮件服务器发送电子邮件,而不是最终进入垃圾邮件文件夹
【发布时间】:2011-01-07 01:59:40
【问题描述】:

所以,设置是这样的,2 个独立的服务器...

Web 服务器,有 IIS7,MS SMTP

邮件服务器有 MailEnable

在 Web 服务器上,我通过邮件服务器从 ASP.Net 应用程序发送一封电子邮件,它被标记为垃圾邮件

如果我通过邮件服务器发送一封电子邮件,只是从一个普通的邮件客户端,它不会被标记为垃圾邮件。

我确定这是设置问题,但我可能做错了什么?

web.config:

<smtp from="website@domain.co.uk">
  <network host="mail.mymailserver.co.uk" userName="website@domain.co.uk" password="password" />
</smtp>

asp.net,只是一个普通的SmtpClient发送:

SmtpClient client = new SmtpClient();
client.Send(mailMessage);

一种随机的直觉认为它可能是通过本地 SMTP 服务器发送,然后发送到 MailEnable,这给了它奇怪的标题...不过只是一个想法

标头包含以下行:Received-SPF: softfail(google.com:过渡网站域的最佳猜测记录@mydomain.co.uk 未将未知指定为允许的发件人)

我不知道这是什么意思(这部分看起来很可疑)

【问题讨论】:

  • 这不是一个编程问题,所以 Stack Overflow 不适合它。如果您真的需要这方面的帮助,您应该发布您用于 SMTP 服务器的实际主机名和有问题的实际域(我打赌 SFP 记录设置不正确) - 如果您这样做,我会很乐意接受看。
  • 谢谢。我认为这可能是最适合它的地方,因为这是程序员遇到的那种事情,而不是服务器管理员 - 可能是错误的。 SPF 记录设置为仅接受目前的所有内容以将其排除为问题。您是否认为这可能与通过未正确设置的 localhost SMTP 服务器有关,但最终到达 Mailenable,但看起来原始发件人通过了 Web 服务器的 SMTP?
  • 我认为这是一个合法的 SO 问题,因为它是软件开发人员遇到的问题。
  • @IP 是的,我认为通过配置不当的邮件服务器转发可能会导致该问题。您可以尝试创建类似 Google Mail 帐户的内容并使用它的 SMTP 服务进行测试(或者,也可以尝试通过服务器提供商的任何 SMTP 服务器发送) - 当然,您需要将主机添加到 SPF 记录中。如果您不想发布域和主机名,那么我至少会发布该域的 SPF 记录(因为如果 SPF 记录的格式不正确,您会看到此错误)。

标签: asp.net localhost spam smtpclient


【解决方案1】:

Received-SPF 错误与Sender Policy Framework 有关。您需要做的是更改域中的 DNS 记录,以将您的 Web 服务器(通常是其 IP 地址)作为有效发件人。

SPF website 提供了有关如何设置此配置的详细信息。

编辑: 取决于邮件客户端如何解释:Received-SPF: softfail。因此,当您允许任何域发送电子邮件时,您可能仍会遇到此错误。来自http://www.openspf.org/SPF_Received_Header

当 SPF 查询返回任何其他结果时,MTA 应在“Received-SPF:neutral”或“Received-SPF:pass”形式的邮件中添加咨询标头。这样一来,进一步的垃圾邮件过滤器可以将该标头考虑在内,作为更平衡决策的一部分。

【讨论】:

  • 该域有一个 SPF 记录 - 只是一个非常通用的记录,它说允许为它发送任何东西(通常不这样做,但为了尝试诊断这个问题,我试图统治它出)。
  • 我刚刚注意到我的问题中隐藏了未知这个词,我把它放回去了
猜你喜欢
  • 1970-01-01
  • 2011-06-29
  • 2014-11-14
  • 2020-12-18
  • 2017-03-29
  • 2017-03-02
  • 2023-03-29
  • 2013-07-19
相关资源
最近更新 更多