8. Konfiguracja alterMIME
Instalujemy alterMIME:
Następnie tworzymy następujący skrypt /etc/postfix/add_disclaimer o następującej zawartości:
#!/bin/sh
# System dependent settings
ALTERMIME=/usr/bin/altermime
ALTERMIME_DIR=/var/spool/altermime
SENDMAIL=/usr/sbin/sendmail
# Exit codes of commands invoked by Postfix are expected
# to follow the conventions defined in .
TEMPFAIL=75
UNAVAILABLE=69
# Change in to alterMIME’s working directory
# Notify Postfix if ‘cd’ fails.
cd $ALTERMIME_DIR || { echo $ALTERMIME_DIR does not exist; exit $TEMPFAIL; }
# Clean up when done or when aborting.
trap „rm -f in.$$” 0 1 2 3 15
# Write mail to a temporary file
# Notify Postfix if this fails
cat >in.$$ || { echo Cannot write to $ALTERMIME_DIR; exit $TEMPFAIL; }
# Call alterMIME, hand over the message and
# tell alterMIME what to do with it
$ALTERMIME –input=in.$$ \
–disclaimer=/etc/postfix/disclaimer.txt \
–disclaimer-html=/etc/postfix/disclaimer.txt \
–xheader=”X-Copyrighted-Material: Please visit \
http://www.example.com/message_disclaimer.html” || \
{ echo Message content rejected; exit $UNAVAILABLE; }
# Call sendmail to reinject the message into Postfix
$SENDMAIL „$@”
# Use sendmail’s EXIT STATUS to tell Postfix
# how things went.
exit $?
#————- END ————–
Nadajemy odpowiednie prawa stworzonemu skryptowi
root / # chmod 755 /etc/postfix/add_disclaimer
W kolejnym kroku tworzymy plik /etc/postfix/disclaimer.txt zawierający tekst który ma być stopką każdego listu elektronicznego przetwarzanego przez nasz serwer SMTP.
Uwaga: Parametry –-disclaimer oraz –-disclaimer-html pozawalają na zróżnicowanie stopki w zależności od rodzaju przetwarzanego strumienia MIME.
Tworzymy katalog /var/spool/altermime i nadajemy mu pełne prawa dostępu dla wybranego użytkownika (np. postfix):
root / # chmod 755 /var/spool/altermime
Na końcu edytujemy plik /etc/postfix/master.cf i dodajemy nowy filtr zawartości do ostatniego serwisu przetwarzającego w istniejącym już łańcuchu (z oczywistych względów powinien być to daemon smtp) poprzez dodanie opcji –o content-filter=dfilt:.
Pozostaje na jeszcze zdefiniowanie usługi o nazwie dfilt w tym samym pliku (patrz poniższy przykład).
Ostatecznie, istotny dla nas fragment pliku /etc/postfix/master.conf może mieć następującą postać (alterMIME przetwarza pocztę po usłudze amavisd-new):
smtp inet n – n – – smtpd
-o content_filter=smtp-amavisd:[127.0.0.1]:10024
#…
smtp-amavisd unix - - n - 4 smtp
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
-o disable_dns_lookups=yes
127.0.0.1:10025 inet n - n - - smtpd
-o content_filter=dfilt:
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_client_restrictions=
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o mynetworks=127.0.0.0/8
-o strict_rfc821_envelopes=yes
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
dfilt unix - n n - - pipe
flags=Rq user=postfix argv=/etc/postfix/add_disclaimer
-f $(sender) — $(recipient)
#…
#————- END ————–
Uwaga: Parametr user=postfix powinien być zgodny z użytkownikiem mającym pełne prawa dostępu do katalogu /var/spool/altermime.
