Postfix: ไม่ จำกัด ต่อที่อยู่ของผู้ใช้ผ่านเครื่องหมาย“ +”


10

ผู้ใช้ Gmail สามารถรับที่อยู่อีเมลได้ไม่ จำกัดโดยใช้$name+$suffix@gmail.com("ที่อยู่บวก")

ฉันต้องการให้เซิร์ฟเวอร์อีเมลของฉันซึ่งใช้งาน Postfix อยู่ ข้อมูลกล่องจดหมายและนามแฝงจะถูกเก็บไว้ในฐานข้อมูล MySQL

ฉันสงสัยว่าต้องมีการแก้ไขการกำหนดค่านามแฝงเพื่อที่user+foo@example.orgจะได้รับการแมปกับuser@example.orgกล่องจดหมาย แต่ฉันไม่ทราบวิธี

เป็นไปได้ไหม อย่างไร?

คำตอบ:


13

นอกเหนือจากการตั้งค่า

recipient_delimiter = +

ฉันต้องแก้ไขmaster.cfด้วยดังนั้น maildrop จึงไม่เพียง แต่ส่งผ่านผู้รับ แต่เป็นผู้ใช้จริง:

maildrop  unix  -       n       n       -       -       pipe
  flags=DRhu user=Debian-exim argv=/usr/bin/maildrop -d ${user}@${nexthop} ${extension} ${recipient} ${user} ${nexthop}

โพสต์บล็อก: http://cweiske.de/tagebuch/postfix-plus-addressing.htm


คุณถามถึงpostfixยังกล่าวถึงนี้eximซึ่งเป็นเซิร์ฟเวอร์ SMTP ที่แตกต่างกัน BTW โปรดทราบว่าถ้าคุณมีเซิร์ฟเวอร์ IMAP จริง ๆ (ไม่ใช่แค่กล่องจดหมาย) การใช้LMTPจะเร็วกว่าการส่งเมล และถ้าคุณใช้ LMTP กับ Cyrus คุณจะไม่ต้องการสิ่งนี้
mvp

1
ผู้ใช้เป็น debian-exim แต่ก็ยังคงเป็น postfix
cweiske


{nexthop}บันทึกวันของฉันด้วย ฉันไม่รู้ด้วยซ้ำว่ามีอยู่จริง ขอบคุณ.
TCB13

ขอบคุณสำหรับคำตอบ มันช่วยฉันได้มาก ฉันใช้ postfix + procmail + dovecot ในเซิร์ฟเวอร์ virtualmin ฉันเพิ่งเพิ่มบรรทัด "recipient_delimiter = +" และการบวกที่อยู่ดูเหมือนว่าจะทำงานได้ดี ฉันควรจะทำอะไรเพิ่มเติมสำหรับ procmail หรือ dovecot? นอกจากนี้เป็นไปได้ไหมที่จะ จำกัด โดเมนที่ฉลาดนี้? เพื่อให้ฉันสามารถเปิดใช้งานนี้พร้อมที่อยู่เฉพาะสำหรับบางโดเมนบนเซิร์ฟเวอร์ของฉันได้อย่างไร ขอบคุณ
พระนารายณ์

3

คุณไม่ได้บอกว่าเซิร์ฟเวอร์อีเมลใดเก็บอีเมลของคุณ วันนี้ควรเป็นหนึ่งในเซิร์ฟเวอร์ IMAP - เช่น Cyrus, Dovecot, Courier, ...

ฉันชอบ Cyrus IMAP มันรองรับสิ่งนี้ได้อย่างง่ายดาย :

Plus addressing - อนุญาตให้ส่งตรงไปยังกล่องจดหมายที่ต้องการ (นอกเหนือจาก INBOX) สิ่งนี้ทำผ่านที่อยู่ของแบบฟอร์ม: ชื่อผู้ใช้ + โดเมน mailfolder @ ซึ่งจะส่งไปยังโฟลเดอร์ INBOX.mailfolder ของผู้ใช้ (หรือเทียบเท่ากับ altnamespace) กล่องจดหมายย่อยนี้จะต้องอนุญาตให้ผู้ใช้ที่โพสต์มีสิทธิ 'p'

การเพิ่ม 'p' ด้านขวาเป็นขั้นตอนสำคัญมิฉะนั้นเมลทั้งหมด (โดยใช้+หรือไม่ใช้) จะถูกส่งไปยังชื่อผู้ใช้ INBOX

โปรดทราบว่าคุณควรใช้LMTP(โปรโตคอลการขนส่งเมลท้องถิ่น) เพื่อส่งอีเมลของคุณจากpostfixไปยังIMAPเซิร์ฟเวอร์และต้องกำหนดค่า postfix recipient_delimiter(หรือrecipient_delimiters) ตามที่อธิบายไว้ที่นี่ :

recipient_delimiter = +

ตราบใดที่อีเมลไม่สามารถเข้าถึงผู้ใช้ / maildrop เนื่องจากเซิร์ฟเวอร์อีเมลที่ได้รับไม่ได้รับการยอมรับ, การสนับสนุนเซิร์ฟเวอร์ IMAP นั้นไม่สำคัญ
cweiske

ขอบคุณที่ให้คำแนะนำเกี่ยวกับ "plus adressing" ฉันพบวิธีแก้ปัญหาด้วยชื่อนั้น
cweiske

2

master.cfสาย Dovecot:

dovecot   unix  -       n       n       -       -       pipe
flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver
 -f ${sender} -a ${recipient} -d ${user}@${domain}

ด้วย Postfix 2.4 และรุ่นก่อนหน้าให้ใช้${nexthop}แทน${domain}

http://wiki2.dovecot.org/LDA/Postfix


ขอบคุณ Ideed โซลูชัน postfix เพียงอย่างเดียวไม่เพียงพอหากคุณใช้ Dovecot คุณจะต้องกำหนดค่าเพิ่มเติมนี้สำหรับ Dovecot
David Verdin
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.