2015-03-18

Корпоративная подпись в почте. Add A Disclaimer To Outgoing Emails With alterMIME

Выполнено на базе статьи http://habrahabr.ru/post/242185/

Предполагается, что необходимые пакеты находятся в /u02/install/ (addAttachFilter.pl, altermime-0.3.10.tar.gz)

antares:~ # cd /u02/install/
antares:/u02/install # tar -xvzf altermime-0.3.10.tar.gz
antares:/u02/install # cd altermime-0.3.10/

Дальше моя инициатива. При компиляции получаем ошибку:

cc1: warnings being treated as errors
qpe.c: In function ‘qp_encode’:
qpe.c:94: error: format ‘%d’ expects type ‘int’, but argument 5 has type ‘size_t’
make: *** [qpe.o] Error 1

Основываясь на подсказке компилятора, в файлах qpe.c и qpe.h меняем size_t на int.

ВНИМАНИЕ!!! Если у вас ошибки нет(версия компилятора старенькая), то менять исходники не надо!!!

Компилим и ставим:

antares:/u02/install/altermime-0.3.10 # make
cc -Wall -Werror -g -I. -O2  -c qpe.c
cc -Wall -Werror -g -I. -O2  altermime.c strstack.o mime_alter.o ffget.o pldstr.o filename-filters.o logger.o MIME_headers.o libmime-decoders.o boundary-stack.o qpe.o -o altermime
antares:/u02/install/altermime-0.3.10 # make install
strip altermime
cp altermime /usr/local/bin
chmod a+rx /usr/local/bin/altermime

Вроде без ошибок.
Дальше в соответствии с документацией (брал из deb пакетов, ибо с сайта ее не дернешь - ссылки не работают:

antares:/u02/install/altermime-0.3.10 # useradd -r -c "Postfix Filters" -d /var/spool/filter filter
antares:/u02/install/altermime-0.3.10 # mkdir /var/spool/filter
antares:/u02/install/altermime-0.3.10 # chown filter /var/spool/filter
antares:/u02/install/altermime-0.3.10 # chmod 750 /var/spool/filter


postfix_filter.sh берем также из deb пакета и копируем в

antares:/u02/install/altermime-0.3.10 # cp /u02/install/postfix_filter.sh /etc/postfix/disclaimer
antares:/u02/install/altermime-0.3.10 # chown filter /etc/postfix/disclaimer
antares:/u02/install/altermime-0.3.10 # chmod 750 /etc/postfix/disclaimer

antares:/u02/install/altermime-0.3.10 # touch /etc/postfix/disclaimer_addresses
 

Вносим в disclaimer_addresses какие-нибудь адреса из тех, к которым нужно цеплять подпись, так что файл будет иметь вид:


mail1@domain.com
khsdkfh@domain.com
jdjdj@domain.com

Файле /etc/postfix/disclaimer приводим к виду:

#!/bin/sh
# Localize these.
INSPECT_DIR=/var/spool/filter
SENDMAIL=/usr/sbin/sendmail
DISCLAIMER_ADDRESSES=/etc/postfix/disclaimer_addresses

# Exit codes from
EX_TEMPFAIL=75
EX_UNAVAILABLE=69

# Clean up when done or when aborting.
trap "rm -f in.$$" 0 1 2 3 15

# Start processing.
cd $INSPECT_DIR || { echo $INSPECT_DIR does not exist; exit
$EX_TEMPFAIL; }

cat >in.$$ || { echo Cannot save mail to file; exit $EX_TEMPFAIL; }

####### Changed From Original Script #######
# obtain From address
from_address=`grep -m 1 "From:" in.$$ | cut -d "<" -f 2 | cut -d ">" -f 1`

if [ `grep -wi ^${from_address}$ ${DISCLAIMER_ADDRESSES}` ]; then
    /usr/local/bin/altermime --input=in.$$ \
        --disclaimer=/etc/postfix/disclaimer.txt \
        --disclaimer-html=/etc/postfix/disclaimer.txt \
        --xheader="X-Copyrighted-Material: Please visit http://www.company.com/privacy.htm" || \
            { echo Message content rejected; exit $EX_UNAVAILABLE; }
fi
####### Changed From Original Script END #######

$SENDMAIL -oi "$@"
exit $?


Создаем файл с подписью:

antares:/u02/install/altermime-0.3.10 # touch /etc/postfix/disclaimer.txt

Собственно в нем будет текст подписи. Например такой:

Пусть всегда будет солнце!
Пусть всегда будет небо!!
Пусть всегда будем мама!!!
Пусть всегда буду я!!!!

В файле /etc/postfix/master.cf меняем

smtp      inet  n       -       n       -       -       smtpd

на

smtp      inet  n       -       n       -       -       smtpd
        -o content_filter=dfilt:


и в конце добавляем:

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


Ну и рестартуем постфикс после этого.

Ну и что не маловажно - после этого имеем маленькую радость - письма адресатов из файла disclaimer.txt автоматически дописываются веселым жизнейтверждающим лозунгом ;)

То есть прилепить принудительно текстуху при прохождении письма через MTA - это мы сделали.

Но нам этого мало.

Обновление от 23.03.2015 - нам этого оказалось вообще не так надо. Руководство промеж собой перетерло и решилось на кровавый вариант. Он будет описан отдельно. Так что данную тему пока закрываем.

Комментариев нет: