Postfix
Postfix 因發送過多郵件而被暫時禁止(時事通訊)
我們每天都會發送一份時事通訊,其中大多數收件人的電子郵件地址已在捷克共和國特定的郵件服務中註冊。每天發送超過 10 000 封郵件,這導致遠端郵件伺服器將我們視為垃圾郵件發送者,並暫時禁止我們的 postfix 伺服器所在的 IP 大約 10 分鐘。這導致郵件隊列中有數千封郵件。
這是系統日誌中的一個片段:
. . . Jan 9 18:02:22 mta-01 postfix/smtp[9919]: 020966007F: to=<xxxxxxx@seznam.cz>, 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=<xxxxxxx@email.cz>, 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=<yyyyyyy@seznam.cz>, 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=<zzzzzzz@seznam.cz>, 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=<fffffff@seznam.cz>, 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=<xxxxxx@seznam.cz>, 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 個連接。
我嘗試按照http://www.postfix.org/TUNING_README.html中的建議在main.cf後綴配置文件中設置一些建議的指令,但沒有成功。以下是我嘗試過的一些:
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
任何建議都會有所幫助,謝謝。
Postfix 共享連接記憶體不能與 TLS 一起使用。要驗證是否使用了 TLS,您可以啟用額外的 Postfix SMTP 客戶端記錄 TLS 活動:
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_policy:
seznam.cz none
然後應該重用與 seznam.cz 的連接。要進行驗證,您應該
conn_use
會在日誌中看到與此類似的消息:postfix/smtp: 1B2B3B4B: to=<example@seznam.cz>, 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 的電子郵件都將被解密。