Để sử dụng một daemon dọn dẹp đặc biệt chỉ dành cho các email gửi đi, tôi đã xác định một quy trình smtpd đặc biệt trong master.cf
được sử dụng như default_transport
. (Chỉ postfix mới có thể gửi email thông qua daemon này!)
127.0.0.1:10027 inet n - - - - smtpd
-o syslog_name=postfix-smtpout
-o cleanup_service_name=srscleanup
-o smtpd_tls_security_level=none
-o content_filter=smtp:
-o smtpd_recipient_restrictions=permit_mynetworks,từ chối
-o smtpd_sender_restrictions=giấy phép
Điều này hoạt động tốt. Tuy nhiên, nó mở cho bất kỳ người dùng/tiến trình cục bộ nào trên máy kết nối với cổng này và gửi thư mà không cần xác thực (do các hạn chế của người gửi/người nhận được nới lỏng), điều này không an toàn lắm.
Vì vậy, tôi muốn chạy đặc biệt này smtpd
dưới dạng một ổ cắm miền unix (chỉ các quy trình chạy dưới người dùng postfix mới có thể truy cập).
tôi đặt default_transport = smtpout
và tạo ra một dịch vụ trong master.cf
như thế này:
smtpout unix - - - - - smtpd
-o syslog_name=postfix-smtpout
-o cleanup_service_name=srscleanup
-o smtpd_tls_security_level=none
-o content_filter=smtp:
-o smtpd_recipient_restrictions=permit_mynetworks,từ chối
-o smtpd_sender_restrictions=giấy phép
Tuy nhiên, điều này dẫn đến việc các email bị kẹt trong hàng đợi và ghi lại các thông báo như sau: cảnh báo: kết thúc đầu vào không mong muốn từ ổ cắm riêng/smtpout trong khi đọc tên thuộc tính đầu vào
.
Làm cách nào tôi có thể sửa lỗi này và sử dụng quy trình smtpd được liên kết với ổ cắm miền unix (thay vì liên kết với inet)?