【问题标题】:When should I send QUIT to SMTP server? and how long should I keep a session?我应该何时将 QUIT 发送到 SMTP 服务器?我应该保持多久?
【发布时间】:2023-03-24 12:12:01
【问题描述】:

我正在编写一个 smtp 发件人来发送大量不同的电子邮件(不是垃圾邮件)。因为有许多来自常见提供商(如 hotmail.com/gmail.com)的目标地址。我想汇集 TCP 连接以重用会话。这是一个好习惯吗?还是应该断开连接并连接以发送不同的邮件?

由于订阅人数众多,池中的连接可能会保持很长时间(例如1小时),是否应该在某个时候主动释放连接?

最后让我感到困惑的是目标 IP,因为我发现 hotmail.com 有很多 mx 服务器(至少 12 个)。如果我将大部分电子邮件仅发送到其中一台服务器或将它们分开发送到所有服务器,会不会有什么不同?

很抱歉一次问几个问题,感谢您的观点和回答。

【问题讨论】:

    标签: networking smtp sockets


    【解决方案1】:

    连接,向目标发送 X 封电子邮件,断开连接。恕我直言,X 应该在 16 到 64 左右 - 一些电子邮件服务器不喜欢在一个连接中连接太多,否则会将您拒之门外。

    您应该/可以按目的地订购,这样您就不必将会话保持太久,并且您必须正确处理强制断开连接。

    随意使用 MX 记录。无需将您的电子邮件拆分到多个目标服务器。

    【讨论】:

    • 谢谢。我实际上使用 MX 服务器的 ip 直接通信。并通过 ip & mx 服务器名称汇集它们。 (例如 live.com 和 hotmail.com 都使用 mx1 - mx4.hotmail.com,术语指向 12 ips)我知道保持连接打开会使代码更复杂,会尝试弄清楚并发布测试结果。 (只会做基本测试,因为我不希望将我的 ip 列入黑名单。)
    【解决方案2】:

    首先恕我直言,当不使用超过建立所述连接所需的时间时保持连接是坏的。您不仅要让它保持无用状态,还可能会阻止其他用户访问该服务。

    连接到 SMTP 服务器很容易,发送必要的项目并关闭连接。

    如果我没记错的话,甚至 Outlook 也会为它发送的每封邮件打开一个连接。

    【讨论】:

    • 我觉得你可以发多封邮件,就像POP3一样,可以收到很多封邮件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-16
    • 2012-06-11
    • 2019-11-11
    • 2021-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多