Postfix: โดเมนนามแฝงคืออะไร


12

ฉันคิดว่าฉันเข้าใจ "โดเมนนามแฝง" เนื่องจากเป็นเพียงนามแฝงสำหรับโดเมนอื่น! ดังนั้นเมื่อฉันตั้งค่ากล่องจดหมายเช่น "info@main.com" และเพิ่ม "alias.com" เป็นชื่อแทนโดเมนสำหรับ "main.com" ที่อยู่ "info@alias.com" จะใช้งานได้ ... แต่ไม่มี !

ดังนั้นฉันได้เพิ่มโดเมนเหล่านี้:

  • main.com
  • alias.com

ฉันได้สร้างกล่องจดหมายนี้:

  • info@main.com

จากนั้นฉันก็แมปชื่อแทนโดเมนเหล่านี้:

  • alias.com => main.com

และเมื่อฉันส่งอีเมลไปที่ info@alias.com ฉันได้รับข้อผิดพลาดนี้:

Recipient address rejected: User unknown in virtual mailbox table (state 13).

ฉันไม่ต้องการสร้างชื่อแทนสำหรับทุกโดเมนเนื่องจากฉันมีไม่กี่โดเมน ฉันไม่ต้องการใช้ไวด์การ์ด (เช่น info @ *) เนื่องจากมีโดเมนอื่นที่ไม่ใช่ชื่อแทนmain.com

แล้ว ... สิ่งเหล่านี้คืออะไรกันแน่?


ฉันคาดหวังเหมือนกัน แต่ก็ยังไม่เข้าใจว่าทำไมถึงไม่เป็นเช่นนั้น
Josh M.

คำตอบ:


4

คำอธิบายอยู่ในเอกสารประกอบ: http://www.postfix.org/VIRTUAL_README.html#virtual_alias

คุณต้องการ "กล่องจดหมายนามแฝง" aka virtual_mailbox_alias และ virtual_mailbox_maps แต่พูดคุยเกี่ยวกับ "โดเมนนามแฝง": http://www.postfix.org/ADDRESS_CLASS_README.html#virtual_alias_class


3
ฉันไม่สามารถดูเหมือนจะทำให้ความรู้สึกของเอกสาร - ทำอย่างไรให้คุณมีdomain1.comนามแฝงใด ๆกล่องจดหมาย<mailbox>@domain2.com?
Josh M.

2
@JoshM คุณสามารถใช้ตารางแฮชในกับรายการที่มีรูปแบบvirtual_alias_maps @domain1.com @domain2.comดูคำตอบของฉันสำหรับรายละเอียด
Sam Hanes

12

การเพิ่มalias.comลงvirtual_alias_domainsในเป็นขั้นตอนแรกที่ถูกต้อง แต่เพียงบอก Postfix ว่าคุณต้องการใช้โดเมนนั้นเป็นชื่อแทน ไม่ได้บอกว่าชื่อแทนควรเป็นอะไร เพื่อที่คุณจะต้องใช้แผนที่นามแฝงเสมือน

ก่อนอื่นให้เพิ่มสิ่งนี้ลงในmain.cf:

virtual_alias_domains = alias.com
virtual_alias_maps = hash:/etc/postfix/virtual

การเพิ่มvirtual_alias_mapsทำให้คุณได้รับไฟล์ ( /etc/postfix/virtual) ที่ใช้เป็นแผนที่นามแฝงเสมือน แต่คุณใส่ไฟล์อะไรลงไป ตามmanpage เสมือน (5) :

รูปแบบอินพุตสำหรับคำสั่ง postmap (1) เป็นดังนี้:

  pattern address, address, ...

เมื่อรูปแบบตรงกับที่อยู่อีเมลให้แทนที่ด้วยที่อยู่ที่เกี่ยวข้อง

และ

ด้วยการค้นหาจากไฟล์ที่จัดทำดัชนีเช่น DB หรือ DBM หรือจากตารางเครือข่ายเช่น NIS, LDAP หรือ SQL แต่ละแบบสอบถามผู้ใช้โดเมน @ สร้างลำดับของรูปแบบแบบสอบถามตามที่อธิบายไว้ด้านล่าง รูปแบบแบบสอบถามแต่ละรายการจะถูกส่งไปยังตารางการค้นหาที่ระบุแต่ละรายการก่อนที่จะลองรูปแบบแบบสอบถามถัดไปจนกว่าจะพบการจับคู่

...

@domain address, address, ...

เปลี่ยนเส้นทางเมลสำหรับผู้ใช้อื่นในโดเมนไปยังที่อยู่

และ

ผลการค้นหาอาจมีการเขียนที่อยู่ใหม่: เมื่อผลที่มีรูปแบบผลที่จะกลายเป็นผู้ใช้เดียวกันใน@otherdomain otherdomainสิ่งนี้ใช้ได้สำหรับที่อยู่แรกในผลลัพธ์การค้นหาหลายที่อยู่เท่านั้น

ดังนั้นการใส่สิ่งนี้ลงไป/etc/postfix/virtualจะทำให้ได้ชื่อแทนโดเมนแบบเต็มที่คุณต้องการ:

# map any <user>@alias.com to the matching <user>@main.com
@alias.com     @main.com

จากนั้นตั้งแต่ไฟล์ที่มีตารางแฮชคุณจะต้องวิ่งpostmap( คำอธิบาย , manpage ):

postmap /etc/postfix/virtual

คุณสามารถค้นหาข้อมูลเพิ่มเติมเกี่ยวกับโดเมนเสมือนในHOWTO Postfix เสมือนโดเมนและประมาณนามแฝงในHOWTO Postfix ที่อยู่เขียนใหม่


ดังนั้นอินเตอร์เฟส PostfixAdmin มีข้อผิดพลาดเนื่องจากอินเตอร์เฟส ( edit.php?table=aliasdomain) ไม่สามารถพูดกับผู้ใช้ว่าจะไม่มีชื่อแทนเกิดขึ้นจริงเมื่อตั้งค่าสถานะเป็นเปิดใช้งาน
Peter Krauss

2
ฉันจะไม่พูดว่ามันเป็นข้อผิดพลาดอย่างแท้จริงเนื่องจากมันจะกำหนดค่าโดเมนนามแฝงเสมือน แต่ฉันสงสัยว่า PostfixAdmin คาดหวังให้คุณรู้ว่าโดเมนนามแฝงเสมือนของ Postfix คืออะไรและคุณต้องเพิ่มนามแฝงจริงเพื่อทำให้พวกเขาทำสิ่งใด มันอาจจะดีกว่าถ้ามันบอกคุณว่า
Sam Hanes

1

@Josh M.

ฉันไม่รู้ว่านี่เป็นวิธีที่ถูกต้องและ / หรือแนวปฏิบัติที่ดี แต่ฉันใช้สิ่งนี้:

virtual_alias_maps = regexp:/etc/postfix/domain_rewriting pgsql:/etc/postfix/pgsql/     virtual_alias_maps.cf

$ cat /etc/postfix/domain_rewriting 
/^(.*)@domain1.com$/     ${1}@domain2.com

1
ในขณะที่ไม่ถูกต้อง (มันจะทำในสิ่งที่คุณคาดหวัง) การใช้ตาราง regex มีประสิทธิภาพน้อยกว่าการใช้ตารางแฮชที่มี@domain1.com @domain2.comไวยากรณ์ที่ฉันให้รายละเอียดในคำตอบของฉัน
Sam Hanes

1

นี่เป็นคำตอบสั้น ๆ ของ @ sam-hanes (สำหรับฉัน)

ในvirtual_alias_mapsของคุณเพิ่ม:

@from.domain <tab> @to.domain

ในบรรทัดคำสั่งทำ:

 postmap /path/to/yourvirtualalismapsfile

ในไฟล์main.cfของคุณเพิ่ม:

virtual_alias_domains : from.domain

virtual_alias_domains บอก postfix ว่าที่อยู่กล่องจดหมายทั้งหมดที่อยู่ในรูปแบบของ mailbox@from.domain เป็นชื่อแทนทั้งหมด

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