我们正在使用外部商业 smtp 服务器来发送我们的时事通讯(通过 .NET 组件发送),他们提供了两个 smtp URL - smtp.critsend.com 和 fast.critsend.com -,第二个 URL 用于发送单封电子邮件,第一个 URL 用于发送批量电子邮件。
使用 nslookup 显示两者都解析为相同的 4 个 IP 地址(fast.critsend.com 是别名)。
问题:(如何)smtp中继能够区分不同的名称吗?标头中是否有一些内容可以与 http 协议中的主机标头进行比较(我没有找到任何非系统管理员可以理解的信息)?
我之所以询问是因为我们想在我们的新闻通讯脚本中使用其中一个 IP(它可以工作)而不是名称(为了保存 DNS 请求),并且我们担心潜在的问题。
答案1
您使用 nslookup 看到的 4 个 ip 地址可能只是使用循环 dns 进行故障转移/负载平衡的网络网关服务器。
这些网关将中继到不同的“后端”,真正确定是否发生这种情况的唯一方法是向自己发送测试电子邮件并检查电子邮件标头(除非他们很好地清除了内部标头),并查看用于发送电子邮件的不同服务器。
答案2
SMTP 请求中不使用目标服务器名称。没有与 HTTPHost:
标头等效的内容。
如果您想使用 IP 地址而不是 DNS 名称,我建议您与电子邮件服务提供商联系,以确认他们希望您使用哪个 IP 地址。(并且,为了 $DEITY 的利益,不要对 IP 地址进行硬编码 - 使用配置文件或将其放入/etc/hosts
,然后在下次运行之前再次验证!)
避免多次命中 ISP 的 DNS 服务器的另一种方法是设置本地 DNS 解析器,而不是使用 ISP 的解析器。