Стандартним рішенням є використання параметра header_checks . Це буде працювати, однак, якщо ми фільтрувати отримані лінії по всій пошті і вхідної та вихідної (як це буде робити), ми могли б потенційно втратити Received заголовків поштою послали до нас, що може бути важливо для усунення неполадок. Щоб обійти цю проблему, ми будемо застосовувати header_checks
тільки до пошти , які не могли б бути спрямовані до нас поштою , який був відправлений у поданні порт (ви які з допомогою порту відправки , НЕ так чи? ).
У цій публікації пояснюється, як застосовуватись header_checks
виключно до порту подання. Що нам потрібно зробити , це пройти cleanup_service_name варіант в поданні служби , так що ми можемо створити нову послугу очищення «subcleanup.» Відповідний розділ /etc/postfix/master.cf
може виглядати приблизно так:
submission inet n - - - - smtpd
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
-o milter_macro_daemon_name=ORIGINATING
-o cleanup_service_name=subcleanup
Тепер ми можемо передати цю header_checks
опцію новій службі очищення. Ця частина /etc/postfix/master.cf
може виглядати приблизно так:
cleanup unix n - - - 0 cleanup
subcleanup unix n - - - 0 cleanup
-o header_checks=regexp:/etc/postfix/submission_header_checks
Нарешті, нам потрібно створити файл /etc/postfix/submission_header_checks
, який буде містити регулярний вираз, який фільтрує ображені рядки заголовка, що приймаються. Який регекс ви введете у файл, залежить від того, чи встановлено ви smtpd_sasl_authenticated_header
.
Якщо smtpd_sasl_authenticated_header
є yes
, то використовуйте:
/^Received:.*\(Authenticated sender:/ IGNORE
В іншому випадку використовуйте:
/^Received:.*\(Postfix/ IGNORE
(Дякую Домініку П та Брайану Дрюрі за те, що вони показали, як поводитися з другою справою.)
postmap submission_header_checks
?