Назад | Перейти на главную страницу

Отправить письмо администратору при превышении лимита размера сообщения

Как вызвать электронное письмо администратору, когда кто-то пытался отправить электронное письмо, превышающее ограничение на размер сообщения? Я не мог найти такую ​​конфигурацию для настройки.

Примечание: я использую 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, готово.