โฮสต์โดเมนย่อยไวด์การ์ดโดยใช้ postfix


9

ฉันพยายามหาวิธีที่จะทำให้ postfix รับอีเมลสำหรับโดเมนย่อยของไซต์หลักของฉัน ฉันไม่มีโดเมนเสมือนเพียงรายการย่อยของโดเมนย่อยสำหรับการจัดส่งในท้องถิ่น โดยเฉพาะฉันกำลังป้อนpython@*.mydomain.comPython โดยใช้ไฟล์นามแฝง:

python:    |/www/proc_email.py

Python สามารถจัดการกับการจัดส่งได้จากที่นั่น ฉันนึกภาพนี้กำลังมองหาบางสิ่งตามแนวของ:

mydestination = encendio, localhost.localdomain, localhost, *.mydomain.com

ฉันใช้ postfix เวอร์ชันล่าสุดบน Ubuntu (ไม่แน่ใจว่าจะตรวจสอบเวอร์ชั่นได้อย่างถูกต้อง)

ขอบคุณล่วงหน้า.

คำตอบ:


19

คุณไม่สามารถใช้สัญลักษณ์แทนได้หากคุณระบุรายการปลายทางในการกำหนดค่า Postfix ของคุณอย่างชัดเจน แต่โชคดีที่$mydestinationตัวเลือกนี้ยอมรับการค้นหาตาราง ดังนั้นลองตั้งค่า$mydestinationเป็นpcre mapดังนี้:

mydestination = pcre:/etc/postfix/mydestinations

จากนั้นสร้าง/etc/postfix/mydestinationsด้วย regexps ที่ยึดไว้และหนีอย่างถูกต้อง:

/^encendio$/                  ACCEPT
/^localhost\.localdomain$/    ACCEPT
/^localhost$/                 ACCEPT
/^.*\.mydomain\.example$/     ACCEPT

ในทางเทคนิคคุณสามารถใส่อะไรก็ได้แทน "ยอมรับ" เนื่องจากผลลัพธ์จะถูกละเว้น การปรากฏตัวของการแข่งขันก็เพียงพอแล้ว :

ระบุรายชื่อโฮสต์หรือชื่อโดเมนรูปแบบ "/ file / name" หรือ "type: table" คั่นด้วยเครื่องหมายจุลภาคและ / หรือช่องว่าง รูปแบบ "/ file / name" ถูกแทนที่ด้วยเนื้อหา ตารางการค้นหา "type: table" ถูกจับคู่เมื่อชื่อตรงกับคีย์การค้นหา (ผลลัพธ์การค้นหาจะถูกละเว้น)


2
การแสดงออกปกติควรจะปวดร้าว; ดูserverfault.com/a/352928/84843
Richard Hansen

19

โซลูชัน pcre ในคำตอบที่ยอมรับนั้นใช้งานได้ดี แต่คุณอาจต้องการพิจารณาการยึด regexp เพื่อหลีกเลี่ยงการได้รับความนิยมในส่วนของชื่อโดเมน

/^encendio$/                  ACCEPT
/^localhost\.localdomain$/    ACCEPT
/^localhost$/                 ACCEPT
/^.*\.mydomain\.com$/         ACCEPT

0

*.mydomain.com ไม่เคยทำงาน

คุณต้องสร้างrelay-domainsและวางโดเมนย่อยทั้งหมดไว้ในนั้น 1 ต่อบรรทัด

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