当有人试图发送超过邮件大小限制的电子邮件时,如何触发向管理员发送电子邮件?我找不到任何这样的配置来调整。
注意:我使用 exim MTA
答案1
在exim.conf
、领域log_selector
、使用size_reject如果由于大小过大而拒绝了消息,则将信息记录到日志文件中,重新启动 exim。创建一个脚本来解析日志文件,如果匹配,则发送电子邮件,添加到 cron,完成。
答案2
您可以通过特殊的路由器、传输和脚本来实现这一点。
首先你必须添加测量消息大小的路由器:
slimit:
driver = accept
condition = ${if >{$message_size}{1M}}
transport = size_warning
unseen
将该路由器放在路由器部分的开头
然后在传输部分的任何位置添加传输:
size_warning:
driver = pipe
user = mailnull
command = /some/script.sh $local_part@$domain $message_size
这里/some/script.sh
包含下一个代码:
#!/bin/sh
cat << EOT | /usr/sbin/sendmail -t
MIME-Version: 1.0
From: MAIL SERVICE <postmaster@$( hostname )>
To: [email protected]
Subject: Big message detected
Content-Type: text/plain; charset="UTF-8"
User $1 receive message $2 bytes big!
EOT
exit 0
####