เพื่อใช้ cleanup daemon พิเศษสำหรับอีเมลขาออกเท่านั้น ฉันได้กำหนดกระบวนการ smtpd พิเศษใน มาสเตอร์.cf
ที่ใช้เป็น default_transport
. (เฉพาะ postfix เท่านั้นที่สามารถส่งอีเมลผ่าน daemon นี้ได้!)
127.0.0.1:10027 inet n - - - - smtpd
-o syslog_name=postfix-smtpout
-o cleanup_service_name=srscleanup
-o smtpd_tls_security_level=ไม่มี
-o content_filter=smtp:
-o smtpd_recipient_restrictions=permit_mynetworks,ปฏิเสธ
-o smtpd_sender_restrictions=อนุญาต
มันใช้งานได้ดี อย่างไรก็ตาม มันเปิดให้ผู้ใช้/กระบวนการภายในเครื่องที่เชื่อมต่อกับพอร์ตนี้และส่งเมลโดยไม่มีการตรวจสอบสิทธิ์ (เนื่องจากข้อจำกัดของผู้ส่ง/ผู้รับที่ผ่อนปรน) ซึ่งไม่ปลอดภัยมากนัก
ผมจึงขอดำเนินการเป็นพิเศษ smtpd
เป็นซ็อกเก็ตโดเมนยูนิกซ์ (ซึ่งเฉพาะกระบวนการที่ทำงานภายใต้ผู้ใช้ postfix เท่านั้นที่สามารถเข้าถึงได้)
ฉันตั้งค่า default_transport = smtpout
และสร้างบริการใน มาสเตอร์.cf
แบบนี้:
smtpout ยูนิกซ์ - - - - - smtpd
-o syslog_name=postfix-smtpout
-o cleanup_service_name=srscleanup
-o smtpd_tls_security_level=ไม่มี
-o content_filter=smtp:
-o smtpd_recipient_restrictions=permit_mynetworks,ปฏิเสธ
-o smtpd_sender_restrictions=อนุญาต
อย่างไรก็ตาม ส่งผลให้อีเมลติดอยู่ในคิวและบันทึกข้อความในลักษณะนี้: คำเตือน: การสิ้นสุดอินพุตที่ไม่คาดคิดจากซ็อกเก็ตส่วนตัว/smtpout ขณะอ่านชื่อแอตทริบิวต์อินพุต
.
ฉันจะแก้ไขปัญหานี้และใช้กระบวนการ smtpd ที่เชื่อมโยงกับซ็อกเก็ตโดเมนยูนิกซ์ได้อย่างไร (แทนที่จะเชื่อมโยงกับ inet)