我使用我们自己的 VPS 网络和邮件服务器定期向 50,000 个地址发送新闻通讯。
我正在尝试提高邮件的送达率,并查看了数千封退回邮件中的一些。我注意到的一件事是,有一种额外的“已接收”标头,我想知道这是否会导致任何问题。其中一条退回邮件表明由于中继而未接受,我想知道这是否是原因(没有中继)?
以下是示例消息的摘录:
Received: from mydomain.com.au ([x.x.x.x]) by
ipbvo.tcif.telstra.com.au with SMTP; 06 Mar 2014 11:22:13 +1100
Received: from internaldomainname.com ([127.0.0.1]) by mydomain.com.au ;
Thu, 6 Mar 2014 11:22:11 +1100
第二行是我质疑的。邮件服务器是否必须指示这一点?
新闻通讯发送系统是用 ASP.NET 编写的,并使用 Jmail .NET 通过 127.0.0.1 的服务器发送每封电子邮件。
使用的邮件服务器软件是Hmailserver。
另外,如果无法更改,我想替换它显示的 internaldomainname 部分。那是 Hmailserver、DNS 还是网络设置?
答案1
按照RFC 5321,第 3.7.2 节,
当将消息转发到互联网环境或从互联网环境转发消息时,网关必须在前面添加一个“已接收:”行,但不得以任何方式更改已在标头部分中的“已接收:”行。
它应该在那里。每个邮件服务器(转发到互联网环境或从互联网环境转发出去的邮件服务器)都应该添加一个,并且(通常)包括首先从 MUA(生成邮件的应用程序)接收邮件的邮件服务器。在这种情况下,正如您所注意到的,您的邮件服务器表明该邮件是在本地生成的(127.0.0.1
)。
我知道有些人会根据Received: from
接收组织之外添加的邮件头内容来过滤电子邮件。 他们这样做是错误的;这些标题不可靠,因此任何基于这些标题做出的邮件投递决定都可能受到欺骗。如果由于这些标题而导致人们无法收到您的邮件,请联系收件人组织并指出他们的行为很愚蠢。
反映的域名将归因于您邮件服务器上的本地设置。由于您使用的是 asp.net,我猜这是一个 Windows 系统,所以我无法建议您如何更改它;但它将由本地确定。
编辑:约翰,我理解的意思是“进入或离开公共互联网“。还请注意,该要求取决于消息通过任何给定服务器的飞行的两半。如果服务器将消息发送到公共互联网,它必须添加标头Received: from
- 即使接收来自内部或本地服务器。只有当邮件服务器完全是组织内部时,才不需要添加标头。即使这样,它也可以这样做,如果这样做,任何下游(互联网交互)服务器都不允许更改它。