นอกจากการพิมพ์ผิดอย่างเห็นได้ชัดในความพยายามของคุณแล้ว ตัวอย่างของคุณยังใช้ได้ถ้าฉันใส่สูตรอาหารลงในส่วนตัวของฉัน .procmailrc
.
นี่คือการสาธิตอย่างรวดเร็วบน Ubuntu ในคอนเทนเนอร์ Docker ใหม่ที่ฉันติดตั้ง Postfix, Procmail และ Netcat และสร้างบัญชีผู้ใช้สำหรับตัวเอง:
tripleee@0934b6a257c9:~$แมว >.procmailrc
LOGFILE=/tmp/procmail.log
:0
* ^(X-Original-To): [email protected]
{ EXITCODE=67 โฮสต์= }
^D
tripleee@0934b6a257c9:~$ nc localhost 25
220 0934b6a257c9 ESMTP Postfix (อูบุนตู)
ehlo localhost
250-0934b6a257c9
250-การวางท่อ
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-ดีเอสเอ็น
250-SMTPUTF8
250 ชิ้น
จดหมายจาก:<tripleee>
250 2.1.0 โอเค
rcpt ไปที่:<tripleee>
250 2.1.5 โอเค
ข้อมูล
354 สิ้นสุดข้อมูลด้วย <CR><LF>.<CR><LF>
X-Original-To: [email protected]
หัวเรื่อง: อันดับแรก
ใครเป็นคนแรก
.
250 2.0.0 ตกลง: เข้าคิวเป็น 608C329A304
ล้มเลิก
221 2.0.0 ลาก่อน
^ซี
tripleee@0934b6a257c9:~$ cat /tmp/procmail.log
จาก tripleee@0934b6a257c9 ศ. 4 มี.ค. 11:50:59 น. 2565
หัวเรื่อง: อันดับแรก
โฟลเดอร์: 0
จาก MAILER-DAEMON วันศุกร์ที่ 4 มีนาคม 11:50:59 น. 2022
เรื่อง: จดหมายที่ไม่ได้ส่งถูกส่งกลับถึงผู้ส่ง
โฟลเดอร์: /var/mail/tripleee 2267
แต่สูตรเดียวกัน /etc/procmailrc
ทำให้ข้อความถูกส่งต่อไป โดยพื้นฐานแล้ว โฮสต์=
บอกว่าข้าม ปัจจุบัน ไฟล์สูตร แต่ใน /etc/procmailrc
นั่นหมายถึงหยุดอ่านไฟล์นี้และดำเนินการส่งให้กับผู้ใช้
ฉันสามารถคาดเดาได้ว่านั่นคือปัญหาจริงที่คุณกำลังประสบอยู่ หากคุณมีรายละเอียดเพิ่มเติม โปรดแก้ไขคำถามของคุณเพื่อระบุ
นอกจากนี้ วงเล็บยังไม่จำเป็น และควรหลีกเลี่ยงจุด
:0
* ^X-Original-To: username@example\.com
{ EXITCODE=67 โฮสต์= }
หากคุณเปิดใช้งานการบันทึกแบบละเอียดด้วย VERBOSE=ใช่
คุณจะเห็นว่า Procmail มอบหมายจริง โฮสต์=}
ซึ่งไม่ใช่สิ่งที่ฉันคาดหวัง แต่ใช้งานได้ (ตราบใดที่คุณ เจ้าภาพ
ไม่ได้ชื่อจริงๆ }
!)
โปรดสังเกตว่าไฟล์บันทึกแสดงข้อความขาเข้าที่ถูกละทิ้งอย่างไร จากนั้นข้อความตีกลับถูกส่งถึงฉัน (เนื่องจากฉันเป็นผู้ส่งและผู้รับ) อย่างไรก็ตาม ข้อความตีกลับที่สร้างขึ้นมีข้อความที่ (คลุมเครือ) เผยให้เห็นว่าที่อยู่ผู้รับมีอยู่จริง:
<tripleee@0934b6a257c9> (ขยายจาก <tripleee>): ไม่ทราบผู้ใช้
คุณอาจต้องคุ้นเคยกับข้อความตีกลับของ Postfix เป็นอย่างดีจึงจะเข้าใจว่าสิ่งนี้หมายถึงอะไร โดยทั่วไปจะบอกว่ามันขยายตัว ทริปเปิ้ล
ไปยังที่อยู่อีเมลที่ขยายเต็มพร้อมชื่อโดเมนรวมอยู่ด้วย จากนั้นส่งไปยังที่อยู่อีเมลนั้นทำให้เกิดข้อความแสดงข้อผิดพลาดทางด้านขวาของเครื่องหมายทวิภาค (ไม่ว่าจะดีขึ้นหรือแย่ลง ข้อความตีกลับของ Sendmail ก็ยังดูคลุมเครือมากกว่า แต่ผู้เชี่ยวชาญตัวจริงของข้อความแสดงข้อผิดพลาดที่ไม่สามารถเข้าใจได้ก็คือ Microsoft เช่นเคย)