master.cf
file, namely:
smtp inet n - y - - smtpd
smtp inet n - y - - smtpd -o content_filter=dfilt: dfilt unix - nn - - pipe flags=Rq user=filter argv=/etc/postfix/disclaimer.sh -f ${sender} -- ${recipient}
useradd -r -c "Postfix Filters" -d /var/spool/filter filter mkdir /var/spool/filter mkdir /etc/postfix/disclaimer chown filter:filter /var/spool/filter chmod 750 /var/spool/filter
#!/bin/bash # INSPECT_DIR=/var/spool/filter # sendmail SENDMAIL=/usr/sbin/sendmail # email 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 does not exist; exit $EX_TEMPFAIL; } cat > in.$$ || { echo Cannot save mail to file; exit $EX_TEMPFAIL; } # ( ) from_address=`grep "From:" in.$$ | cut -d "<" -f 2 | cut -d ">" -f 1 | sed 's/^From: //g' | awk '{print $1}' | cut -d "@" -f 2 | grep -v ^h= | grep -v ^To` to_dom=`echo $to_address |cut -d "@" -f 2` my_domain="example.org" # if [ `grep -wi ^${from_address}$ ${DISCLAIMER_ADDRESSES}` ]; then # if [ "$from_address" = "example.org" ]; then # HTML ContentTypeFirst=`grep -m 1 '^Content-Type: ' in.$$ | cut -d " " -f 2 | cut -d ";" -f 1` ContentTypeMixed=`grep -m 2 '^Content-Type: ' in.$$ | cut -d " " -f 2 | cut -d ";" -f 1 | tail -n 1` isHTML=true if [ "$ContentTypeFirst" = "" ] || [ "$ContentTypeFirst" = "text/plain" ]; then isHTML=false; fi if [ "$ContentTypeFirst" = "multipart/mixed" ] && [ "$ContentTypeMixed" = "text/plain" ]; then isHTML=false; fi if [ "$ContentTypeFirst" = "multipart/mixed" ] && [ "$ContentTypeMixed" != "text/html" ] && [ "$ContentTypeMixed" != "multipart/related" ] && [ "$ContentTypeMixed" != "multipart/alternative" ]; then isHTML=false; fi if $isHTML ; then /usr/bin/altermime --input=in.$$ \ --disclaimer=/etc/postfix/disclaimer/disclaimer.txt \ --disclaimer-html=/etc/postfix/disclaimer/disclaimer.html \ --xheader="X-Copyrighted-Material: Please visit https://www.example.org/privacy.htm" || \ { echo Message content rejected; exit $EX_UNAVAILABLE; } fi fi fi $SENDMAIL -oi "$@" < in.$$ exit $?
Source: https://habr.com/ru/post/344614/