Я видел в Интернете другие ссылки на эту проблему, но они относятся к другим почтовым серверам. В моем случае я использую Postfix и Dovecot, за Инструкции Линоде. В мой стек входят postfix, dovecot, opendkim, amavis, spamassassin, roundcube, sieve, ubuntu.
Моя электронная почта работает нормально, но если я хочу приложить отказ от ответственности, она работает только с веб-почтой. Я предполагаю, что это потому, что этот клиент является локальным для сервера, но я не уверен.
Вот несколько выдержек из моего /etc/postfix/master.cf:
smtp inet n - y - - smtpd
-o content_filter=spamassassin
-o content_filter=dfilt:
127.0.0.1:10025 inet n - y - - smtpd
-o content_filter=
-o smtpd_client_restrictions=permit_mynetworks,reject
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o smtpd_data_restrictions=reject_unauth_pipelining
-o mynetworks=127.0.0.0/8
-o receive_override_options=no_header_body_checks,no_unknown_recipient_checks
spamassassin unix - n n - - pipe
user=spamd argv=/usr/bin/spamc -f -e
/usr/sbin/sendmail -oi -f ${sender} ${recipient}
policyd-spf unix - n n - 0 spawn
user=policyd-spf argv=/usr/bin/policyd-spf
dfilt unix - n n - - pipe
flags=Rq user=filter argv=/etc/postfix/disclaimer -f ${sender} -- ${recipient}
Из /etc/amavis/conf.d:
$log_level = 5;
$sa_debug = 1;
$altermime = '/usr/bin/altermime';
# @local_domains_maps = ['127.0.0.1','127.0.0.1:10025','domain.com', 'mail.domain.com','hostname.domain.com','localhost','localhost.localdomain'];
$defang_maps_by_ccat{+CC_CATCHALL} = [ 'disclaimer' ];
# @disclaimer_options_bysender_maps = ( { '.' => '$3.$5' });
@altermime_args_disclaimer = qw(--disclaimer=/etc/postfix/disclaimer.txt --disclaimer-b64=/etc/postfix/disclaimer.txt --disclaimer-html=/etc/postfix/disclaimer.txt --force-for-bad-html);
$policy_bank{'MYNETS'} = {
originating => 1,
os_fingerprint_method => undef,
allow_disclaimers => 1,
};
$policy_bank{'MYUSERS'} = {
originating => 1,
allow_disclaimers => 1,
};
Обратите внимание, я закомментировал карты домена и отправителя, чтобы сделать это как можно более неограниченным, после проверки всех возможных локальных доменов. Я также включил отладку.
В / etc / postfix / отказ от ответственности:
INSPECT_DIR=/var/spool/filter
SENDMAIL=/usr/sbin/sendmail
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; }
/usr/bin/altermime --input=in.$$ \
--disclaimer=/etc/postfix/disclaimer.txt \
--disclaimer-html=/etc/postfix/disclaimer.txt \
--disclaimer-b64=/etc/postfix/disclaimer.txt ||
{ echo Message content rejected; echo Message content rejected >> /etc/postfix/footers/errors.log; exit $EX_UNAVAILABLE; }
$SENDMAIL -oi "$@" <in.$$
exit $?
Если я перезапущу amavis и dovecot, а затем отправлю электронное письмо, altermime отлично работает в веб-почте, но не Thunderbird или клиент на моем устройстве Android.
Кроме того, если я бегу tail /var/log/mail.log -n 200 | grep "altermime"
, Никогда не упоминается altermime - даже когда я успешно прикрепляю отказ от ответственности к веб-почте! Поэтому я не знаю, как дальше устранять эту проблему.