我尝试通过 anvil 命令设置 Postfix,以便 2 分钟内最多可以发送 5 封电子邮件,但似乎这是不可能的,因为可以无限制地发送电子邮件。也许我没有找到 master.cf 文件中有关 smtpd 和 anvil 或类似选项的正确设置。问候
主文件:
anvil_rate_time_unit = 120s
smtpd_client_connection_count_limit = 1
smtpd_client_connection_rate_limit = 1
smtpd_client_recipient_rate_limit = 5
smtpd_client_message_rate_limit = 5
master.cf:
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
# ==========================================================================
smtp inet n - - - - smtpd
#smtp inet n - - - 1 postscreen
#smtpd pass - - - - - smtpd
#dnsblog unix - - - - 0 dnsblog
#tlsproxy unix - - - - 0 tlsproxy
#submission inet n - - - - smtpd
#smtps inet n - - - - smtpd
#628 inet n - - - - qmqpd
pickup unix n - - 60 1 pickup
cleanup unix n - - - 0 cleanup
qmgr unix n - n 300 1 qmgr
#qmgr unix n - n 300 1 oqmgr
tlsmgr unix - - - 1000? 1 tlsmgr
rewrite unix - - - - - trivial-rewrite
bounce unix - - - - 0 bounce
defer unix - - - - 0 bounce
trace unix - - - - 0 bounce
verify unix - - - - 1 verify
flush unix n - - 1000? 0 flush
proxymap unix - - n - - proxymap
proxywrite unix - - n - 1 proxymap
smtp unix - - - - - smtp
relay unix - - - - - smtp
# -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq unix n - - - - showq
error unix - - - - - error
retry unix - - - - - error
discard unix - - - - - discard
local unix - n n - - local
virtual unix - n n - - virtual
lmtp unix - - - - - lmtp
anvil unix - - - - 1 anvil
scache unix - - - - 1 scache
答案1
irc,所有这些设置都适用于它所连接的每个远程服务器(或域),因此每个远程邮件服务器或域每 120 秒有 5 条消息。
答案2
您可以研究的一种方法是仅队列模式:
- 以仅队列模式配置 Postfix。
- 将队列运行器配置为每 30 秒运行一次。
- 配置 Postfix 以便每个队列运行时只发送一条消息。
这样每两分钟最多会发出 4 条消息。
另一种方法是将 Postfix 配置为通过服务器进行依赖。使用您需要的接收限制配置中继服务器。您应该能够将 Postfix 配置为仅为一个主机进行中继。
这两种解决方案都可能导致您的邮件服务器队列失去控制。