|
|
我想设置 postfix 使用一个 slow transport 来投递邮件到一个特定站点(比如163.com),因为这个站点对发件速率有限制。我做了如下设置:
- # vi /etc/postfix/master.cf
- smtp unix - - n - 15 smtp
- # When relaying mail as backup MX, disable fallback_relay to avoid MX loops
- relay unix - - n - - smtp
- -o fallback_relay=
- slow unix - - n - 1 smtp
- -o smtp_destination_concurrency_limit=1
- # vi /etc/postfix/transport
- 163.com slow:
复制代码
这样只有一个 slow transport,而其他15个都是正常的 smtp transport,发送到xxx@163.com 的邮件应该使用 slow transport。
但是邮件仍然在每天大约14:00~20:00左右被拒绝(一天中最繁忙的时段):
554 sender is reject: 0, mx4, ...(in reply to MAIL FROM command)
在此之前,我没有设置 default_process_limit=16,因此得到的信息是"IP is rejected" 或 "IP is hungup",并且邮件被 deferred,于是使用process limit,使 smtp 进程的并发数为 16,开始时还可以(因为积压了大量的邮件),但后来就出现了上面的问题,并且邮件被 bounced。于是就考虑使用 slow transport,但似乎没有起到效果。
问题是,我怎么知道这个 slow transport 确实起作用了呢?我怎么保证到 xxx@163.com 的邮件确实只使用了这个 slow transport 来进行投递呢?至少我没有在 maillog 中发现 slow 这样的词。
其他一些更改了的参数如下:
- initial_destination_concurrency = 1
- default_destination_concurrency_limit = 1
- smtp_destination_concurrency_limit = 4
- default_destination_recipient_limit = 2
- smtp_connection_cache_reuse_limit = 2
- smtp_connection_cache_time_limit = 1s
- smtp_connection_cache_on_demand = no
- # smtp_connection_cache_destinations = 163.com
- in_flow_delay = 4s
- maximal_queue_lifetime = 6d
- qmgr_message_recipient_limit = 1000
- qmgr_message_active_limit = 800
- default_recipient_limit = 100
- queue_run_delay = 2000s
- minimal_backoff_time = 2000s
- maximal_backoff_time = 6000s
- # smtpd_recipient_limit = 100
- transport_maps = hash:/etc/postfix/transport
- alias_database = hash:/etc/postfix/aliases
- alias_maps = hash:/etc/postfix/aliases
复制代码
谢谢。 |
|