Как вызвать электронное письмо администратору, когда кто-то пытался отправить электронное письмо, превышающее ограничение на размер сообщения? Я не мог найти такую конфигурацию для настройки.
Примечание: я использую exim MTA
Сделать это можно через специальный роутер, транспорт и скрипт.
Сначала вам нужно добавить маршрутизатор, измеряющий размер сообщения:
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: user@domain.tld
Subject: Big message detected
Content-Type: text/plain; charset="UTF-8"
User $1 receive message $2 bytes big!
EOT
exit 0
####
В exim.conf
, поле log_selector
, используйте size_reject чтобы записать информацию в файлы журнала, если сообщение отклонено из-за слишком большого размера, перезапустите exim. Создайте сценарий для анализа файла журнала и, если он найден, отправьте электронное письмо (-а), добавьте в cron, готово.