Postfix - ไม่พบโฮสต์หรือโดเมน


22

ฉันเพิ่งติดตั้ง Postfix บน Ubuntu บนเครือข่ายท้องถิ่น

บนเครือข่ายนี้ฉันมี Exchange Server (ใช้โดเมนmail.example.com) ฉันมีปัญหาในการส่งอีเมลไปยังที่อยู่ในพื้นที่adress@example.com::

relay=none, delay=0.01, delays=0.01/0/0/0, dsn=4.3.5, status=deferred 
(Host or domain name not found. Name service error for name=example.com
type=AAAA: Host found but no data record of requested type)

ฉันแก้ไขปัญหานี้โดยใช้relay_domainใน Postfix ของฉันmain.cf:

relay_domains = example.com
transport_maps = hash:/etc/postfix/transport

และในของฉัน/etc/postfix/transport:

example.com smtp:[mail.example.com]

ตอนนี้ฉันสามารถส่งอีเมล@example.comและได้ทำการทดสอบเว็บเมล์สำคัญ ๆ (Gmail, Yahoo, Hotmail ... ) มันได้ผล. แต่ทำไมผมได้รับข้อผิดพลาดนี้บน adresses ของฉัน@example.com? ฉันจะแน่ใจได้อย่างไรว่าฉันไม่เคยพบข้อผิดพลาดนี้ในโดเมนอื่น

การกำหนดค่า Postfix ของฉันคือ:

postconf -n

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
config_directory = /etc/postfix
inet_interfaces = all
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
mydestination = SRVWEB, localhost.localdomain, localhost
myhostname = SRVWEB
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
myorigin = /etc/mailname
readme_directory = no
recipient_delimiter = +
relay_domains = mutuelle-var.fr
relayhost =
smtp_generic_maps = hash:/etc/postfix/generic
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 = yes
transport_maps = hash:/etc/postfix/transport

คุณสามารถเพิ่มเอาต์พุตของ postconf -n ให้กับคำถามได้หรือไม่
ALex_hha

คุณใช้ ipv6 หรือไม่
ALex_hha

ฉันเปลี่ยนการตั้งค่า postfix เพื่อใช้เฉพาะ ipv4 ในตอนนี้ รอดู .. ..
Vincent LITUR

คำตอบ:


33

เซิร์ฟเวอร์ของคุณพยายามใช้ IPv6 เมื่อส่งจดหมาย เนื่องจากmail.example.comไม่มีเรคคอร์ด AAAA (ซึ่งเหมือนกับเรคคอร์ด A แต่สำหรับ IPv6) นั่นไม่ทำงาน

หากคุณต้องการให้ Postfix ไม่เคยใช้ IPv6 คุณสามารถเปลี่ยนได้ในไฟล์ปรับแต่งดังที่อธิบายไว้ในหน้า man postconf (5):

When IPv6 support is enabled via the inet_protocols parameter,  Post-
fix will do DNS type AAAA record lookups.

When  both IPv4 and IPv6 support are enabled, the Postfix SMTP client
will attempt to connect via IPv6 before attempting to use IPv4.

Examples:

inet_protocols = ipv4
inet_protocols = all (DEFAULT)
inet_protocols = ipv6
inet_protocols = ipv4, ipv6

หากคุณต้องการเปลี่ยนสำหรับโดเมนนี้เท่านั้นให้เปลี่ยนแผนที่การขนส่งเป็นอ่าน

example.com smtp-ipv4:[mail.domain.com]

ขอบคุณสำหรับคำอธิบายนี้! ฉันอ่านเอกสารในภาษาฝรั่งเศสซึ่งบอกว่า ipv4 เป็นค่าเริ่มต้น DEFAULT .. ฉันใส่ ipv4 ตอนนี้และฉันได้โหลด Postfix ใหม่ดูเหมือนว่าจะใช้งานได้ ขอบคุณอีกครั้ง !
Vincent LITUR

ขึ้นอยู่กับรุ่นของ Postfix ที่คุณใช้ - ฉันไม่จำรุ่นเริ่มต้นที่เป็นรุ่นใด แต่ฉันรู้ว่าพวกเขาเปลี่ยนแปลงอย่างน้อยหนึ่งครั้ง
Jenny D พูดว่า Reinstate Monica

7
มันไม่ใช่การเชื่อมต่อที่ล้มเหลว แต่การค้นหา DNS ที่นำหน้ามัน เมื่อฉันมีinet_protocols = allมันไม่ได้พยายามAค้นหาหากการAAAAค้นหาล้มเหลวซึ่งดูเหมือนไม่มีจุดหมาย นอกจากนี้หากคุณเปลี่ยนค่านี้คุณต้องรีสตาร์ท postfix ไม่ใช่แค่โหลดซ้ำ
ซิงโคร

0

การกำหนดค่า Postfix อย่างง่ายที่เหมาะกับฉัน

/etc/postfix/main.cf

myhostname = localhost.testing.com
myorigin = testing.com
relayhost =
inet_protocols = ipv4
inet_interfaces = loopback-only
mydestination =

-5

การเปลี่ยนแปลงต่อไปนี้ใน /etc/postfix/main.cf แก้ไขปัญหาให้ฉันได้

inet_protocols = ipv6 

เปลี่ยนด้านบนเป็น

inet_protocols = all

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