Giải pháp tiêu chuẩn là sử dụng tùy chọn header_checks . Tuy nhiên, điều này sẽ hoạt động, nếu chúng tôi lọc các dòng nhận được trên tất cả thư đến và đi (vì điều này sẽ làm), chúng tôi có thể mất các tiêu đề đã nhận trong thư gửi cho chúng tôi, điều này có thể quan trọng để khắc phục sự cố. Để giải quyết vấn đề này, chúng tôi sẽ chỉ áp dụng header_checks
cho thư không thể gửi cho chúng tôi Thư mail đã được gửi đến cổng gửi (bạn đang sử dụng cổng gửi , phải không? ).
Bài đăng này giải thích làm thế nào để áp dụng header_checks
riêng cho cổng trình. Những gì chúng ta cần làm là chuyển tùy chọn Cleanup_service_name cho dịch vụ gửi để chúng ta có thể thiết lập một dịch vụ dọn dẹp mới, subcleanup. Phần có liên quan /etc/postfix/master.cf
có thể trông như thế này:
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
Bây giờ chúng ta có thể chuyển header_checks
tùy chọn sang dịch vụ dọn dẹp mới. Phần đó /etc/postfix/master.cf
có thể trông như thế này:
cleanup unix n - - - 0 cleanup
subcleanup unix n - - - 0 cleanup
-o header_checks=regexp:/etc/postfix/submission_header_checks
Cuối cùng, chúng ta cần tạo tệp /etc/postfix/submission_header_checks
, tệp này sẽ chứa regex lọc các dòng tiêu đề đã nhận. Regex nào bạn đặt trong tệp phụ thuộc vào việc bạn đã smtpd_sasl_authenticated_header
đặt chưa.
Nếu smtpd_sasl_authenticated_header
là yes
, sau đó sử dụng:
/^Received:.*\(Authenticated sender:/ IGNORE
Nếu không, sử dụng:
/^Received:.*\(Postfix/ IGNORE
(Cảm ơn Dominic P và Bryan Drewery đã chỉ ra cách xử lý trường hợp thứ hai.)
postmap submission_header_checks
không