SMTP请求是否包含主机头信息(或仅包含目标SMTP服务器的IP)?

我们正在使用一个外部的商业smtp服务器为我们的通讯(通过.NET组件发送它们),他们提供了两个smtpurl – smtp.critsend.com和fast.critsend.com – ,第二个是保留发送单一电子邮件,第一个批量。

使用nslookup显示,两个parsing到相同的4个IP地址(fast.critsend.com是一个别名)。

问题:(如何)smtp中继可以区分不同的名称? 有没有什么可以在HTTP协议(我没有find任何非系统pipe理员可理解的信息)主机头比较头?

我问的原因是因为我们想在我们的通讯脚本(工作),而不是一个名字(为了保存DNS请求)使用其中一个IP,我们想知道潜在的问题。

您使用nslookup看到的4个IP地址可能只是networking的网关服务器,使用轮询dns进行故障转移/负载平衡。

这些网关将转发到不同的“后端”,唯一的方法是确定是否发送testing电子邮件给自己,并检查电子邮件标题(除非他们做好内部清除),并看到不同的服务器被用来发送电子邮件。

目标服务器名称未在SMTP请求中使用。 没有等同的HTTP Host:标题。

如果您想使用IP地址而不是DNS名称,build议您与电子邮件服务提供商联系,以确认您希望使用哪个IP地址。 (而且,为了$ DEITY的缘故,不要硬编码IP地址 – 使用一个configuration文件或放在/etc/hosts ,并在下次运行之前再次validation它!)

在ISP的DNS服务器上避免多重命中的另一种方法是设置本地DNSparsing器,而不是使用ISP的parsing器。