Postfix: ฉันจะสร้างชื่อแทนอีเมลได้อย่างไร


11

เอกสารอ้างว่าฉันสามารถเพิ่มนามแฝงในไฟล์ (เช่น / etc / postfix / virtusertable) แล้วใช้คำสั่ง "virtual_maps" เพื่อชี้ไปที่มัน สิ่งนี้ดูเหมือนจะไม่ทำงาน

อีเมลของฉันกำยำด้วย:

Recipient address rejected: User unknown in local recipient table;

หากฉันส่งเมลผู้ใช้จากเซิร์ฟเวอร์โดยใช้คำสั่ง mail จะทำงานได้

mail myuser

ข้อความผ่าน postfix และแทรกตัวเองในกล่องจดหมาย Cyrus อย่างถูกต้อง

เมื่อฉันใช้ fetchmail เพื่อส่งข้อความของผู้ใช้ออกจากเซิร์ฟเวอร์ pop3 postfix ล้มเหลว อีเมลของผู้ใช้คือ "myuser@mydomain.com" แต่ดูเหมือนว่าการแมปไม่ถูกต้องกับ "myuser" ชื่อกล่องจดหมายไซรัส



/etc/postfix/main.cf

myhostname = localhost
alias_maps = hash: / etc / aliases
alias_database = hash: / etc / aliases
myorigin = / etc / mailname
mydestination = localhost
รีเลย์โฮส =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0 เหมือนกัน 104] :: :: 1] / 128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = ทั้งหมด
mailbox_transport = lmtp: unix: / var / run / cyrus / socket / lmtp
#lmtp: ยูนิกซ์: / var / วิ่ง / lmtp
virtual_alias_domains = mydomain.com
virtual_maps = hash: / etc / postfix / virtusertable



/ etc / fetchmailrc

et syslog;
set daemon 20;

แบบสำรวจ "mail.pop3server.com"
ด้วยโปรโตคอล pop3
ผู้ใช้ "myuser@mydomain.com" รหัสผ่าน "12345" คือ "myuser"
เก็บไว้



/ etc / postfix / virtusertable

myuser@mydomain.com     myuser



postconf -n

alias_database = hash: / etc / aliases
alias_maps = hash: / etc / aliases
append_dot_mydomain = ไม่
biff = ไม่
config_directory = / etc / postfix
inet_interfaces = ทั้งหมด
mailbox_size_limit = 0
mailbox_transport = lmtp: unix: / var / run / cyrus / socket / lmtp
mydestination = localhost 
myhostname = localhost
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0 เหมือนกัน 104] :: :: 1] / 128
myorigin = / etc / mailname
readme_directory = no
recipient_delimiter = +
รีเลย์โฮส = 
smtp_tls_session_cache_database = btree: $ {data_directory} / smtp_scache
smtpd_banner = $ myhostname ESMTP $ mail_name (Ubuntu)
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_session_cache_database = btree: $ {data_directory} / smtpd_scache
smtpd_use_tls = ใช่
virtual_alias_domains = mydomain.com

เหตุใดจึงไม่สนใจชื่อแทนของฉัน

คำตอบ:


19

นามแฝงท้องถิ่นจะเข้าสู่

alias_database = hash:/etc/aliases(ไม่ใช่ใน/etc/postfix/virtusertable) ในรูปแบบต่อไปนี้:

alias: destination. newaliasesหลังจากที่ทำงาน


ฉันได้รับคำเตือน: "คำเตือน: / etc / aliases, บรรทัด 3: ชื่อต้องเป็นชื่อท้องถิ่น" ฉันได้เพิ่มรายการ "user@mydomain.com: user" ลงใน / etc / aliases ผู้ใช้ไม่ใช่ผู้ใช้บนเครื่อง แต่เป็นกล่องจดหมาย / ผู้ใช้ Cyrus
นิค

2
ไม่รูปแบบที่ถูกต้องคือผู้ใช้: anotheruser@domain.com, localuser
David Rickman

ตกลงเปลี่ยนรูปแบบและคำเตือนหายไป แต่จดหมายยังคงเด้งอยู่ ฉันได้รับ "กล่องจดหมายไม่ทราบ 550 กล่อง"
นิค

ดูเหมือนว่า Fetchmail จะรับข้อความพยายามส่งไปยัง Cyrus แต่ตอนนี้ Cyrus กำลังตีกลับ ฉันคิดว่า postfix ไม่ได้ส่งด้วยนามแฝงที่ถูกต้องใช่ไหม หรือไซรัสต้องการตารางนามแฝงของตัวเองหรือไม่?
นิค

ฉันจะทำเครื่องหมายว่าแก้ไขแล้วและสร้างคำถามใหม่สำหรับปัญหา Cyrus เนื่องจากในทางเทคนิคแล้วมันเป็นคำถามที่แตกต่าง
นิค

0

เพิ่งพบปัญหานี้ ... และพบว่าแปลกพอที่ปัญหาของฉันไม่เกี่ยวข้องกับไซรัส ...

เนื่องจากฉันสามารถส่งโดยตรงรวมถึงที่อยู่ "+" แต่ที่อยู่ที่ใช้นามแฝงได้รับการปฏิเสธ ... FYI สิ่งที่ฉันพบคือที่อยู่ของชื่อแทนกำลังถูกเขียนใหม่ [myalias] กลายเป็น [myalias@myhost.mydomain.tld]

ดังนั้นจนกว่าฉันจะหาวิธีปิดการขยายหรือเปลี่ยนการแก้ปัญหา [myhost] การแก้ไขคือการขยายในนามแฝงไฟล์ [myalias@mydomain.tld] แทน [myalias] ในที่สุดก็สะดุดเมื่อฉันสังเกตเห็นบันทึกแสดง FQDN แทนที่จะเป็นแค่โดเมนอย่างที่ฉันเคยใช้ใน sendmail

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