Создание сценария
Создание сценария
Следующий сценарий, названный /etc/postfix/filter/aCC_Cisclaimer.sh, вызывает alterMIME для исходящего сообщения, полученного из Postfix (отправленного из демона pipe). Программа alterMIME добавляет в сообщение отказ от ответственности и возвращает его обратно в очередь Postfix. Программе alterMIME требуется место для записи временного файла, она не может работать с stdin.
#!/bin/sh
# настройки, зависящие от системы ALTERMIME=/usr/local/bin/altermime ALTERMIME_DIR=/var/spool/altermime SENDMAIL=/usr/sbin/sendmail
# Ожидается, что коды завершения команд, вызываемых Postfix,
# будут придерживаться правил, определенных в <sysexits.h>. TEMPFAIL=75
UNAVAILABLE=69
# Перейти в рабочий каталог alterMIME и уведомить
# Postfix в случае неудачи ‘cd’.
cd $ALTERMIME_DIR || { echo $ALTERMIME_DIR does not exist; exit $TEMPFAIL; }
# Очистка по завершении или прерывании работы. trap “rm -f in.$$” 0 1 2 3 15
# Запись почты во временный файл.
# Уведомление Postfix в случае неудачи.
cat >in.$$ || { echo Cannot write to $ALTERMIME_DIR; exit $TEMPFAIL; }
# Вызываем alterMIME, передаем ей сообщение и говорим, что с ним делать.
$ALTERMIME –input=in.$$ \
–disclaimer=/etc/postfix/filter/disclaimer.txt \
–disclaimer-html=/etc/postfix/filter/disclaimer.txt \
–xheader=”X-Copyrighted-Material: Please visit http:// \
www.example.com/message_disclaimer.html” || \
{ echo Message content rejected; exit $UNAVAILABLE; }
# Вызов sendmail для возврата сообщения обратно в Postfix SSENDMAIL -i <in.$$
# Используем код завершения sendmail, чтобы сообщить
# Postfix, как все прошло.
exit $?
После создания сценария предоставляем доступ на запись только пользователю root, но даем права на исполнение пользователю filter:
# chown root add_disclaimer.sh
# chgrp filter add_disclaimer.sh
# chmod 750 add_disclaimer.sh
Естественно, теперь нам нужно создать отказ от ответственности, на который мы ссылаемся в сценарии.

