超出邮件大小限制时向管理员发送电子邮件

超出邮件大小限制时向管理员发送电子邮件

当有人试图发送超过邮件大小限制的电子邮件时,如何触发向管理员发送电子邮件?我找不到任何这样的配置来调整。

注意:我使用 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
####

相关内容