我们每天都会发送一份时事通讯,其中大多数收件人的电子邮件地址都在捷克共和国特定的邮件服务中注册。每天发送的邮件超过 10 000 封,导致远程邮件服务器将我们视为垃圾邮件发送者,并暂时禁止我们的 postfix 服务器所在的 IP 大约 10 分钟。这导致邮件队列中有数千封邮件。
这是系统日志的片段:
.
.
.
Jan 9 18:02:22 mta-01 postfix/smtp[9919]: 020966007F: to=<[email protected]>, relay=mx1.seznam.cz[77.75.76.42]:25, delay=1.1, delays=0.06/0/1/0.03, dsn=2.0.0, status=sent (250 2.0.0 Mail 844435625 queued for delivery in session 3ae60000018a.)
Jan 9 18:02:22 mta-01 postfix/smtp[9930]: D62D36008A: to=<[email protected]>, relay=mx1.seznam.cz[77.75.76.42]:25, delay=1.3, delays=0.07/0/1.2/0.03, dsn=2.0.0, status=sent (250 2.0.0 Mail 837963363 queued for delivery in session 85260000002a.)
Jan 9 18:02:22 mta-01 postfix/smtp[9925]: 4745060085: to=<[email protected]>, relay=mx1.seznam.cz[77.75.76.42]:25, delay=1.1, delays=0.07/0/1/0.02, dsn=2.0.0, status=sent (250 2.0.0 Mail 844631208 queued for delivery in session 79e2000001e5.)
Jan 9 18:02:22 mta-01 postfix/smtp[9935]: 663016001F: to=<[email protected]>, relay=mx1.seznam.cz[77.75.76.42]:25, delay=1.1, delays=0.07/0/1/0.02, dsn=2.0.0, status=sent (250 2.0.0 Mail 844631209 queued for delivery in session e8b10000026d.)
Jan 9 18:02:23 mta-01 postfix/smtp[9932]: 1E73460071: to=<[email protected]>, relay=mx1.seznam.cz[77.75.76.42]:25, delay=1.1, delays=0.09/0/1/0.02, dsn=2.0.0, status=sent (250 2.0.0 Mail 845409306 queued for delivery in session 85260000002b.)
Jan 9 19:59:51 mta-01 postfix/smtp[16337]: DE5C560B42: to=<[email protected]>, relay=mx2.seznam.cz[77.75.78.32]:25, delay=5863, delays=5857/6.1/0.03/0, dsn=4.7.1, status=deferred (host mx2.seznam.cz[77.75.78.32] refused to talk to me: 421 4.7.1 You have been temporarily banned. Try again later or report to .)
.
.
.
邮件最终会在几个小时后发送,但最好缩短这个时间,以便收件人在更短的时间窗口内收到新闻通讯。
正如邮件服务提供商建议的那样,我们应该将 postfix 服务器设置为发送一个 SMTP 连接中的最大邮件数和5 分钟间隔内不要打开超过 150 个连接。
我尝试在中设置一些建议的指令主文件按照建议的 postfix 配置文件http://www.postfix.org/TUNING_README.html但没有运气。以下是我尝试过的一些方法:
initial_destination_concurrency=100
default_destination_concurrency_limit=100
default_destination_recipient_limit=100
default_destination_rate_delay=1s
default_process_limit=200
smtp_mx_session_limit=100
smtpd_client_connection_count_limit=100
smtp_destination_concurrency_limit=100
maximal_backoff_time = 1000s
minimal_backoff_time = 300s
maximal_queue_lifetime = 6h
bounce_queue_lifetime = 6h
smtp_connection_cache_destinations = seznam.cz, vlp.cz, denik.cz, vlmedia.cz
smtp_connection_cache_on_demand = yes
smtp_connection_cache_time_limit = 10s
smtp_connection_reuse_count_limit = 100
任何建议都会有帮助,谢谢。
答案1
Postfix 共享连接缓存不能与 TLS 一起使用。要验证是否使用了 TLS,您可以启用 TLS 活动的附加 Postfix SMTP 客户端日志记录:
smtp_tls_loglevel = 1
然后您应该会看到与此类似的日志消息:
postfix/smtp: Untrusted TLS connection established to mx1.seznam.cz
要重用连接,您需要启用 SMTP 连接缓存(如您所做的那样)并禁用与 seznam.cz 的 TLS 连接:
smtp_connection_cache_destinations = seznam.cz
smtp_tls_policy_maps = hash:/etc/postfix/tls_policy
tls_策略:
seznam.cz none
然后应该重用与 seznam.cz 的连接。为了进行验证,您应该conn_use
在日志中看到一条类似于以下内容的消息:
postfix/smtp: 1B2B3B4B: to=<[email protected]>, relay=mx1.seznam.cz[77.75.78.42]:25,
**conn_use=2**, delay=0.03, delays=0.01/0/0/0.02, dsn=2.0.0, status=sent
(250 2.0.0 Mail 123456 queued for delivery in session 2345678.)
请注意,所有发送到 seznam.cz 的电子邮件都将被解密。