postfix - คุณเปลี่ยนเส้นทางอีเมลทั้งหมดไปยังผู้ใช้รายหนึ่งได้อย่างไรเช่น *@example.com → user@example.com


27

ฉันใช้ postfix สำหรับอีเมลของฉัน ฉันรู้ว่าฉันสามารถใช้ / etc / นามแฝงและ newaliases คำสั่งเพื่อเปลี่ยนเส้นทางอีเมลบางอย่างเช่นที่ฉันสามารถเปลี่ยนเส้นทางไป root@example.com user@example.com โดยวางroot: userใน / etc / newaliasesนามแฝงของฉันแล้ววิ่ง อย่างไรก็ตามฉันต้องการทำสิ่งที่เท่าเทียม*: userกันดังนั้นอีเมลทั้งหมดไปที่ example.com จะถูกส่งไปที่ user@example.com

ฉันจะทำสิ่งนี้ได้อย่างไร

คำตอบ:


19

luser_relay = user@example.comในของคุณmain.cfคือสิ่งที่คุณต้องการ

หากต้องการปิดใช้งานการตรวจสอบผู้ใช้และยอมรับอีเมลทั้งหมดคุณต้องเพิ่มlocal_recipient_maps =ตัวเลือก เอกสาร


1
ฉันเพิ่มที่ main.cf และเริ่ม postfix ใหม่ ฉันได้รับข้อผิดพลาดต่อไปนี้ใน /var/log/main.info: <pre> 550 5.1.1 <myrandom@example.org>: ที่อยู่ผู้รับถูกปฏิเสธ: ผู้ใช้ไม่รู้จักในตารางผู้รับในเครื่อง จาก = <me@gmail.com> ถึง = <myrandom@example.org> </pre>
Rory

ดังนั้น example.org ไม่ได้อยู่ในรายการโดเมนผู้รับในท้องที่ของคุณหรืออย่างอื่นได้รับการกำหนดค่าผิด
womble

7
ฉันทำให้มันทำงานได้ รวมทั้งตัวเลือก luser_relay ที่คุณพูดถึงคุณต้องเพิ่มตัวเลือก "local_recipient_maps =" หน้าเอกสารประกอบ postfix นี้อธิบายว่า: postfix.org/postconf.5.html#luser_relay
Rory

วิธีการนี้จะรักษาที่อยู่อีเมลถึงไว้หรือไม่ (แผนที่เสมือนจะเขียนใหม่และที่อยู่เดิมเป็น: จะหายไป)
user14645

1
@Sverre คำถามสำหรับคำถามไม่ใช่ความคิดเห็นเกี่ยวกับคำตอบเจ็ดปีสำหรับคำถามที่เกี่ยวข้องกับการสัมผัส
womble

17

สิ่งที่คุณกำลังมองหาคือตารางนามแฝงเสมือนและสามารถทำได้โดยใช้สิ่งต่อไปนี้ ...

แรกที่คุณต้องแก้ไขหรือสร้างถ้ามันไม่ได้อยู่แล้วที่/ etc / postfix / เสมือนไฟล์

example.com   whatever
@example.com  user@example.com

หลังจากสิ่งนี้ถูกบันทึกไว้คุณจะต้องเรียกใช้postmap /etc/postfix/virtualเพื่อสร้าง/etc/postfix/virtual.db ที่ทำดัชนีไว้จะอ่าน

จากนั้นคุณจะต้องแก้ไข/etc/postfix/main.cfและตรวจสอบให้แน่ใจว่าคุณมีบรรทัดต่อไปนี้ที่ไม่ใส่เครื่องหมายข้อคิดเห็น:

virtual_alias_maps = hash:/etc/postfix/virtual

สิ่งนี้จะช่วยให้ postfix ทราบเกี่ยวกับตารางนามแฝงเสมือนจริงและใช้งานได้

ปัญหาเกี่ยวกับการใช้luser_relayตัวเลือกตามที่คนอื่น ๆ ได้กล่าวถึงคือสิ่งนี้ถือว่าเป็นผู้ใช้ที่พึ่งสุดท้ายสำหรับที่อยู่ที่ไม่รู้จักโดยตัวแทนจัดส่งสินค้าท้องถิ่น หาก postfix เป็นเพียงการจัดการเมลสำหรับหนึ่งโดเมนสิ่งนี้สามารถนำไปใช้กับสิ่งนี้ได้ แต่มันสามารถปกปิดข้อผิดพลาดในการกำหนดค่าอื่น ๆ และอาจทำให้เกิดผลลัพธ์ที่ไม่คาดคิดหากมีการจัดการมากกว่าหนึ่งโดเมน

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


8

จริงๆแล้วมันค่อนข้างง่าย สิ่งที่คุณต้องทำคือใส่สิ่งนี้ลงในmain.cfไฟล์ของคุณ:

virtual_alias_maps = regexp:/etc/postfix/virtual_alias

regexpส่วนหนึ่งไม่หลอกลวง นอกจากนี้ใน/etc/postfix/virtual_aliasคุณใส่บางสิ่งเช่นนี้:

/^test/ you@yourdomain.com

ในตัวอย่างนี้คุณควรได้รับอีเมลทั้งหมดที่มีปลายทางเริ่มต้นด้วย 'ทดสอบ' อย่าลืม postmap / etc / postfix / virtual_alias และโหลด postfix ใหม่


6

หากต้องการรวมคำตอบ / ความคิดเห็นด้านบนที่ทำงานได้ง่ายที่สุดสำหรับฉัน (ฉันมีโดเมนหลักหนึ่งโดเมน):
เพิ่มรายการต่อไปนี้ใน/etc/postfix/main.cf:

luser_relay = user@domain.com (or local system user)
local_recipient_maps =

( local_recipient_maps =ไม่มีชุดค่า)

ฉันใช้บัญชี linux ของผู้ใช้ในพื้นที่และเพิ่มผู้ใช้เดียวกันใน / etc / aliases เพื่อให้ผู้ใช้ได้รับจดหมายถึง root, postmaster และอื่น ๆ

นอกจากนี้คุณยังสามารถรวมที่อยู่เดียวกันนี้ในของคุณvirtual_alias_mapsและชี้ให้โดเมนเสมือนใด ๆ เรียกเข้าบัญชีหลักเดียวกัน

โปรดปรึกษาluser_relayมากขึ้น


3

หากคุณต้องการใช้ที่อยู่ที่รับทั้งหมดสำหรับ mydomain คุณสามารถใช้/etc/aliasesร่วมกับ regex ดังนี้

ในการ/etc/postfix/main.cfเพิ่ม
alias_maps = hash:/etc/aliases, regexp:/etc/postfix/catch-all-local.regexp

ในการ/etc/postfix/catch-all-local.regexpเพิ่ม
!/^owner-/ your-catch-all-user

สิ่งนี้ควรทำเคล็ดลับ มันใช้งานได้สำหรับฉันและทำงานกับ virtual_alias_maps ตั้งค่าแบบขนาน


0

มีชนิดตารางการค้นหาแบบสแตติกที่รู้จักน้อยกว่าใน Postfix ซึ่งสามารถนำมาใช้เพื่อจุดประสงค์นี้ได้:

alias_database = static:user@example.com
alias_maps = static:user@example.com

ถ้าไม่ได้ user@example.com ท้องถิ่นสำหรับระบบนี้คุณจะยังอาจต้องการที่จะทิ้งทุกข้อความตีกลับโดยการเปลี่ยนสายลงท้ายด้วยbounceกับdiscardในmaster.cfการหลีกเลี่ยงการลูปเมล


-4

ฉันเกลียดที่จะเป็น killjoy แต่ปัญหาของคุณคือคุณใช้ Postfix Postfix ทำให้การออกกำลังกายนี้ทำได้ยากมาก ฉันรู้ว่าฉันต้องทำเมื่อหลายปีก่อนและต้องใช้เวลาหลายวันเพื่อให้ถูกต้อง luserตัวเลือกหนึ่งที่เหมาะสม แต่มีสิ่งอื่น ๆ จะได้รับสิทธิมากเกินไป (และแม้แต่ชื่อของตัวเลือกก็แสดงให้เห็นว่าผู้เขียน Postfix ไม่ต้องการสนับสนุนสิ่งนี้จริงๆ)

ฉันแนะนำให้เปลี่ยนมาใช้ Courier คูเรียร์สนับสนุนวิธีการ "จับทั้งหมด" ในวิธีที่สมเหตุสมผลมากขึ้นเนื่องจากวิธีขยายระบบนามแฝงที่มีอยู่


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