ฉันจะเขียนคำถามของคุณใหม่ให้เป็น:
ฉันจะใช้ _header_checks ที่แตกต่างกันสำหรับ smtpd (พอร์ต 25) และการส่ง (พอร์ต 587) ได้อย่างไร
ปัญหาที่ยอมรับนี้สามารถแบ่งออกเป็นหลายเงื่อนไข
- ฉันต้องการปิด header_checks หนึ่งใน smtpd หรือการส่ง
- ฉันต้องการเรียกใช้ header_checks อื่นสำหรับ smtpd และการส่ง
1. ฉันต้องการปิด header_checks หนึ่งใน smtpd หรือการส่ง
ตัวอย่างเช่นฉันคิดว่าคุณต้องการที่จะปิด header_checks สำหรับการส่ง (อีเมลขาออก)
โซลูชันที่ 1: เมธอด get_override_options
คุณสามารถใช้พารามิเตอร์ postfix เรียกreceive_override_options ด้วยพารามิเตอร์ที่คุณสามารถแทนที่โกลบอล header_check สวิตช์ดังนั้นตัวกรองจะไม่ทำงาน # main.cf header_checks = pcre: / path / to / header_checks
#master.cf
submission inet n - n - - smtpd
-o receive_override_options=no_header_body_checks
คำเตือน: นี้จะปิด _header_checks และ body_checks กำหนดไว้ในชาย 5 header_checks สำหรับการควบคุมที่สมบูรณ์ว่าจะปิดพารามิเตอร์ใดให้ดูโซลูชัน 2
โซลูชันที่ 2: วิธีการบริการล้างข้อมูลหลายวิธี
เราสามารถใช้เทคนิคการล้างข้อมูลแบบหลายบริการสำหรับปัญหาของคุณตามที่*_header_checks
ดำเนินการโดยบริการล้างข้อมูล คุณสามารถดูตัวอย่างของการติดตั้งนี้ในamavisd ใหม่กวดวิชา
พารามิเตอร์ที่วิเศษสำหรับการกำหนดค่านี้เป็นcleanup_service_name ด้วยพารามิเตอร์นี้เราสามารถใช้บริการล้างข้อมูลที่แตกต่างกันสำหรับแต่ละกระบวนการ smtpd ก่อนอื่นเราจะกำหนดบริการล้างข้อมูลเพิ่มเติมหนึ่งบริการ (เรียกว่า no-headerchecks) ใน master.cf
no-headerchecks unix n - n - 0 cleanup
-o mime_header_checks=
ในการล้างข้อมูลนี้เรากำหนด mime_header_checks ว่างเปล่าเพื่อปิดใช้งานการกรอง ขั้นตอนสุดท้ายคือบอกบริการส่งเพื่อใช้ no-headerchecks ของเรา
submission inet n - n - - smtpd
-o cleanup_service_name=no-headerchecks
2. ฉันต้องการเรียกใช้ header_checks ที่แตกต่างกันสำหรับ smtpd และการส่ง
สำหรับปัญหานี้คุณสามารถใช้วิธีการล้างข้อมูลหลายวิธีตามที่อธิบายไว้ข้างต้น
ก่อนอื่นเราจะกำหนดบริการล้างข้อมูลเพิ่มเติมหนึ่งรายการ (เรียกว่าส่วนหัวที่สอง) ใน master.cf
second-headerchecks unix n - n - 0 cleanup
-o mime_header_checks=pcre:/path/to/2ndheaderchecks
ในการล้างข้อมูลนี้เรากำหนด mime_header_checks ที่สองให้กับตาราง PCRE อื่น ขั้นตอนสุดท้ายคือบอกบริการส่งเพื่อใช้ส่วนหัวที่สองของเรา
submission inet n - n - - smtpd
-o cleanup_service_name=second-headerchecks
บันทึก:
กรณีของคุณมีลักษณะคล้ายกับคำถามนี้ น่าเสียดายที่คำตอบจาก Laurentiu Roescuใช้ได้เฉพาะในกรณีที่คุณต้องการเปิดใช้งาน header_checks สำหรับเมลขาออกที่ใช้ smtp เพื่อการส่งผ่าน ข่าวดีก็คือประโยคแรกของเขาเกี่ยวกับcleanup
ภูตทำให้เรามีความคิดสำหรับการแก้ปัญหาที่สอง
วิธีการบริการทำความสะอาดหลาย ๆ สามารถนำไปใช้ถ้าคุณต้องการ header_checks ที่แตกต่างกัน body_checks และพารามิเตอร์อื่น ๆ man 5 header_checks
ที่กำหนดไว้ใน