Postfix, alterMIME · 3 min read · Sep 27, 2025

Как автоматически добавить отказ от ответственности к исходящим электронным письмам с помощью alterMIME (Postfix на Debian Lenny)

Как автоматически добавить отказ от ответственности к исходящим электронным письмам с помощью alterMIME (Postfix на Debian Lenny)

Версия 1.0
Автор: Фалко Тимме
Следите за мной в Twitter

Этот учебник показывает, как установить и использовать alterMIME. alterMIME — это инструмент, который может автоматически добавлять отказ от ответственности к электронным письмам. В этой статье я объясню, как установить его в качестве фильтра Postfix на Debian Lenny.

Я не даю никаких гарантий, что это сработает для вас!

1 Предварительная заметка

Я предполагаю, что Postfix уже установлен и полностью функционален — я не буду объяснять, как настроить Postfix и конфигурировать учетные записи электронной почты в этом учебнике.

2 Установка alterMIME

alterMIME можно установить следующим образом:

aptitude install altermime

Далее мы создаем пользователя filter с домашним каталогом /var/spool/filter — alterMIME будет запущен от имени этого пользователя:

useradd -r -c "Postfix Filters" -d /var/spool/filter filter  
mkdir /var/spool/filter  
chown filter:filter /var/spool/filter  
chmod 750 /var/spool/filter

После этого мы создаем скрипт /etc/postfix/disclaimer, который выполняет alterMIME. Пакет alterMIME для Debian поставляется с примером скрипта, который мы можем просто скопировать в /etc/postfix/disclaimer:

cp /usr/share/doc/altermime/examples/postfix_filter.sh /etc/postfix/disclaimer  
chgrp filter /etc/postfix/disclaimer  
chmod 750 /etc/postfix/disclaimer

Теперь проблема с этим скриптом в том, что он не различает входящие и исходящие электронные письма — он просто добавляет отказ от ответственности ко всем письмам. Обычно вы хотите, чтобы отказы от ответственности были только для исходящих электронных писем, и даже тогда не для всех адресов отправителей. Поэтому я немного изменил скрипт /etc/postfix/disclaimer — мы к этому вернемся через минуту.

Прямо сейчас мы создаем файл /etc/postfix/disclaimer_addresses, который содержит все адреса электронной почты отправителей (по одному на строку), для которых alterMIME должен добавить отказ от ответственности:

vi /etc/postfix/disclaimer_addresses

| [email protected] [email protected] [email protected] |

Теперь мы открываем /etc/postfix/disclaimer и изменяем его следующим образом (я отметил части, которые я изменил):

vi /etc/postfix/disclaimer

| #!/bin/sh # Localize these. INSPECT_DIR=/var/spool/filter SENDMAIL=/usr/sbin/sendmail ####### Изменено из оригинального скрипта ####### DISCLAIMER_ADDRESSES=/etc/postfix/disclaimer_addresses ####### Изменено из оригинального скрипта КОНЕЦ ####### # Код выхода из EX_TEMPFAIL=75 EX_UNAVAILABLE=69 # Очистка после завершения или при прерывании. trap "rm -f in.$$" 0 1 2 3 15 # Начинаем обработку. cd $INSPECT_DIR || { echo $INSPECT_DIR не существует; exit $EX_TEMPFAIL; } cat >in.$$ || { echo Невозможно сохранить письмо в файл; exit $EX_TEMPFAIL; } ####### Изменено из оригинального скрипта ####### # получить адрес From from_address=`grep -m 1 "From:" in.$$ | cut -d "<" -f 2 | cut -d ">" -f 1` if [ `grep -wi ^${from_address}$ ${DISCLAIMER_ADDRESSES}` ]; then /usr/bin/altermime --input=in.$$ \ --disclaimer=/etc/postfix/disclaimer.txt \ --disclaimer-html=/etc/postfix/disclaimer.txt \ --xheader="X-Copyrighted-Material: Пожалуйста, посетите http://www.company.com/privacy.htm" || \ { echo Содержимое сообщения отклонено; exit $EX_UNAVAILABLE; } fi ####### Изменено из оригинального скрипта КОНЕЦ ####### $SENDMAIL "$@" |

Далее нам нужен текстовый файл /etc/postfix/disclaimer.txt, который содержит текст нашего отказа от ответственности. Пакет alterMIME для Debian поставляется с образцом текста, который мы можем использовать на данный момент (конечно, вы можете изменить его, если хотите):

cp /usr/share/doc/altermime/examples/disclaimer.txt /etc/postfix/disclaimer.txt

Наконец, мы должны сказать Postfix, что он должен использовать скрипт /etc/postfix/disclaimer для добавления отказов от ответственности к исходящим электронным письмам. Откройте /etc/postfix/master.cf и добавьте -o content_filter=dfilt: к строке smtp:

vi /etc/postfix/master.cf

| # # Конфигурационный файл процесса master Postfix. Для получения подробной информации о формате # файла см. страницу руководства master(5) (команда: "man 5 master"). # # Не забудьте выполнить "postfix reload" после редактирования этого файла. # # ========================================================================== # тип сервиса частный непривилегированный chroot пробуждение maxproc команда + аргументы # (да) (да) (да) (никогда) (100) # ========================================================================== smtp inet n - - - - smtpd -o content_filter=dfilt: [...] |

В конце того же файла добавьте следующие две строки:

| [...] dfilt unix - n n - - pipe flags=Rq user=filter argv=/etc/postfix/disclaimer -f ${sender} -- ${recipient} |

Перезапустите Postfix после этого:

/etc/init.d/postfix restart

Вот и все! Теперь отказ от ответственности должен добавляться к исходящим электронным письмам, отправленным с адресов, перечисленных в /etc/postfix/disclaimer_addresses.

3 Ссылки

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.