Postfix - Host atau domain tidak ditemukan


22

Saya baru saja menginstal Postfix di Ubuntu saya, di jaringan lokal.

Di jaringan ini, saya memiliki Exchange Server (menggunakan domain mail.example.com). Saya mengalami masalah dalam mengirim email ke alamat lokal 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)

Saya memecahkan masalah ini menggunakan relay_domainPostfix saya main.cf:

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

Dan di saya /etc/postfix/transport:

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

Sekarang saya dapat mengirim email @example.com, dan saya telah menguji beberapa webmail jurusan (Gmail, Yahoo, Hotmail ...). Berhasil. Tapi mengapa saya mendapatkan kesalahan ini pada alamat saya @example.com? Bagaimana saya bisa yakin saya tidak pernah menemukan kesalahan ini di domain lain?

Konfigurasi Postfix saya adalah:

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

Bisakah Anda menambahkan output dari postconf -n ke pertanyaan?
ALex_hha

Apakah Anda menggunakan ipv6?
ALex_hha

Saya mengubah konfigurasi postfix untuk hanya menggunakan ipv4 untuk saat ini. Tunggu dan lihat ..
Vincent LITUR

Jawaban:


33

Server Anda mencoba menggunakan IPv6 saat mengirim surat. Karena mail.example.comtidak memiliki AAAA-record (yang sama dengan A-record, tetapi untuk IPv6), itu tidak berfungsi.

Jika Anda ingin Postfix tidak pernah menggunakan IPv6, Anda dapat mengubahnya di file konfigurasi, seperti yang dijelaskan di halaman manual 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

Jika Anda ingin mengubahnya hanya untuk domain ini, ubah peta transport Anda untuk dibaca

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

Terima kasih atas penjelasan ini! Saya membaca dokumentasi dalam bahasa Perancis yang mengatakan bahwa ipv4 adalah konfigurasi DEFAULT .. Saya meletakkan ipv4 sekarang, dan saya telah memuat ulang Postfix, sepertinya berfungsi. Terima kasih lagi !
Vincent LITUR

Itu tergantung pada versi Postfix yang Anda gunakan - saya tidak ingat versi default yang mana, tapi saya tahu mereka mengubahnya setidaknya sekali.
Jenny D berkata Reinstate Monica

7
Bukan koneksi yang gagal, tetapi pencarian DNS yang mendahuluinya. Ketika saya memilikinya inet_protocols = alltidak mencoba Apencarian jika AAAApencarian gagal, yang sepertinya tidak ada gunanya. Juga, jika Anda mengubah nilai ini, Anda harus memulai ulang postfix, bukan hanya memuat ulang.
Sinkronisasi

0

Konfigurasi Postfix sederhana yang berhasil untuk saya.

/etc/postfix/main.cf

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

-5

Perubahan berikut pada /etc/postfix/main.cf memecahkan masalah bagi saya.

inet_protocols = ipv6 

Ubah di atas ke

inet_protocols = all

8
Tidak menambahkan banyak ke jawaban yang diterima, dan, jujur ​​saja, tidak berguna tanpa posting JennyD yang memberikan penjelasan .
Pemburu Rusa
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.