Automatyczne dodawanie stopki do wyslanego maila
» 2008-06-17 11:59:49 » dodal: HunteR »
» czytan: 1699 » dzial: Sieć »
Krótki opis jak wykorzystać narzędzie alterMIME aby dodawać stopkę do wszystkich wysłanych maili z naszego serwera.
Instalujemy alterMIME
aptitude install altermime |
Następnie tworzymy usera ‘filter’ z katalogiem domowym w /var/spool/filter (alterMIME będzie uruchamiany pod tym userem)
useradd -r -c "Postfix Filters" -d /var/spool/filter filter |
Tworzymy katalog domowy
mkdir -p /var/spool/filter |
I nadajemy mu odpowiednie prawa:
chmod 750 /var/spool/filter && chown filter:filter /var/spool/filter |
Teraz możemy skopiować przykładowy plik, który będzie filtrował nasze wiadomości:
cp /usr/share/doc/altermime/examples/postfix_filter.sh /etc/postfix/disclaimer |
i nadajemy mu odpowiednie prawa
chmod 750 /etc/postfix/disclaimer && chgrp filter /etc/postfix/disclaimer |
Problem z tym skryptem polega jednak na tym ze dodaje on stopkę do wszystkich maili przychodzących i wychodzących, co nie jest pożądanym celem przez nas.
Więc zrobiłem mały update skrypt aby dodawał stopkę tylko do wysyłanych maili:
#!/bin/sh
# Localize these.
INSPECT_DIR=/var/spool/filter
SENDMAIL=/usr/sbin/sendmail
DOMAIN="test.com"
# Exit codes from <sysexits.h>
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; }
grep "From:" in.$$ | grep -i $DOMAIN > /dev/null
let R=$?
if [ $R -eq 0 ]; then
/usr/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
$SENDMAIL "$@" <in.$$
exit $? |
Zmień w powyższym skrypcie zmienna DOMAIN na własną domenę do której ma być dodawana stopka.
Kopiujemy przykładową stopke
cp /usr/share/doc/altermime/examples/disclaimer.txt /etc/postfix/disclaimer.txt |
Plik możemy edytować według własnych potrzeb. Tekst z tego pliku będzie doklejany do każdego wychodzącego maila.
Teraz musimy poinformować postfixa aby skrypt /etc/postfix/disclaimer wykonywał sie podczas wysyłania maili.
Otwórz /etc/postfix/master.cf i dodaj -o content_filter=dfilt: do pod linia smtp:
nano /etc/postfix/master.cf |
#
# Postfix master process configuration file. For details on the format
# of the file, see the master(5) manual page (command: "man 5 master").
#
#========================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
#========================================================
smtp inet n - - - - smtpd
-o content_filter=dfilt:
[...] |
I na koniect tego samego pliku dodaj poniżesz linie
[...]
dfilt unix - n n - - pipe
flags=Rq user=filter argv=/etc/postfix/disclaimer -f ${sender} -- ${recipient} |
I teraz pozostało nam tylko zresetować postfixa
/etc/init.d/postfix restart |
Po resecie każdy wychodzący mail z domeny podanej w pliku /etc/postfix/disclaimer będzie posiadał stopkę jaką określiliśmy w pliku /etc/postfix/disclaimer.txt.
|