我正在编写一个smtp发件人来发送大量不同的电子邮件(不是垃圾邮件)。因为有许多目的地地址来自像hotmail.com/gmail.com这样的常见提供商。我想池化TCP连接以重用会话。这是一个好习惯吗?或者我应该断开并连接以发送不同的邮件吗?
由于订阅者数量很大,池化连接可能会保留很长时间(例如1小时),我是否应该在某个时候主动释放连接?
最后让我困惑的是目标IP,因为我发现hotmail.com有很多mx服务器(至少12个)。如果我将大部分电子邮件发送到服务器中的一个或将它们分开并发送到所有服务器,它会有什么不同吗?
很抱歉一次提出几个问题,并感谢您的观点和回答。
答案 0 :(得分:1)
连接,发送目标X电子邮件,断开连接。 X应该恕我预计在16到64左右 - 某些邮件服务器在一个连接中不喜欢太多,否则会把你扔掉。
您应该/可以按目的地订购,这样您就不会让会话打开太长时间,并且您必须正确处理强制断开连接。
根据需要使用MX记录。无需将电子邮件拆分到多个目标服务器。
答案 1 :(得分:0)
首次恕我直言,在不使用超过建立连接所需时间的情况下保持连接活动是不好的。不仅你保持活着没有用,因为你可能阻止其他用户访问该服务。
连接到SMTP服务器很容易,发送必要的项目并关闭连接。
如果我没弄错的话,即使Outlook也会为它发送的每封邮件打开一个连接。