Solusi standar adalah dengan menggunakan opsi header_checks . Namun, ini akan berhasil jika kami memfilter baris yang diterima pada semua email baik yang masuk maupun yang keluar (karena hal ini akan terjadi), kami berpotensi kehilangan Header yang diterima pada email yang dikirimkan kepada kami, yang dapat menjadi penting untuk pemecahan masalah. Untuk menyiasati masalah ini, kita akan menerapkan header_checkshanya untuk email yang tidak mungkin telah dikirim kepada kami-mail yang dikirim ke pengajuan pelabuhan (Anda sedang menggunakan pelabuhan pengajuan , bukan? ).
Posting ini menjelaskan cara menerapkan header_checkssecara eksklusif ke port pengiriman. Yang perlu kita lakukan adalah meneruskan opsi cleanup_service_name ke layanan pengiriman sehingga kita dapat mengatur layanan pembersihan baru, "subcleanup." Bagian yang relevan /etc/postfix/master.cfmungkin terlihat seperti ini:
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
Sekarang kita bisa meneruskan header_checksopsi ke layanan pembersihan baru. Bagian dari itu /etc/postfix/master.cfmungkin terlihat seperti ini:
cleanup unix n - - - 0 cleanup
subcleanup unix n - - - 0 cleanup
-o header_checks=regexp:/etc/postfix/submission_header_checks
Terakhir, kita perlu membuat file /etc/postfix/submission_header_checks, yang akan berisi regex yang menyaring baris header yang diterima yang menyinggung. Regex mana yang Anda masukkan ke dalam file tergantung pada apakah Anda telah smtpd_sasl_authenticated_headermenetapkan.
Jika smtpd_sasl_authenticated_headeradalah yes, kemudian gunakan:
/^Received:.*\(Authenticated sender:/ IGNORE
Jika tidak, gunakan:
/^Received:.*\(Postfix/ IGNORE
(Terima kasih kepada Dominic P dan Bryan Drewery karena telah menunjukkan cara menangani kasus kedua.)
postmap submission_header_checks?