Solusi 1:
Dengan asumsi error adalah keluhan tentang data HELO/EHLO, Anda ingin menggunakan opsi helo_data pada transpor smtp. Standarnya adalah $primary_hostname.
remote_smtp:
driver = smtp
helo_data = host.example.com
Informasi selengkapnya tersedia di manual.
Jika tidak demikian, Anda mungkin ingin menyertakan beberapa contoh pesan penolakan. Hanya kode tiga digit dan string setelahnya.
Solusi 2:
Perintah
sudo dpkg-reconfigure exim4-config
akan meminta Anda untuk menggunakan nama host utama.
Solusi 3:
Di Debian (Lenny) saya menemukan bahwa Anda menetapkan nama host di /etc/hostname
tetapi ini tidak dikenali sampai reboot.
$ hostname newhostname
menyetelnya segera (tetapi hilang saat reboot, jadi Anda harus melakukan keduanya).
exim4 tampaknya melaporkan hal yang sama dengan uname -n
, dan saya menemukan cara yang berguna untuk menguji.
Solusi 4:
Nama host mana yang dikirim oleh exim?
Seseorang dapat menemukan nama HELO di log exim4. Hentikan daemon exim4, kemudian restart secara manual dengan debugging diaktifkan :
/usr/sbin/exim4 -bd -d+all 2>&1 | egrep 'HELO|EHLO'
(2>&1|egrep 'HELO|EHLO'
bagian adalah opsional, itu hanya mengalihkan stderr ke stdout, lalu menyalurkan log ke egrep
, yang akan memfilter semuanya kecuali baris yang berisi HELO atau EHLO).
Kirim email dan harus ada satu atau dua baris dalam formulir berikut :
SMTP>> EHLO foobar.example.com
Nama HELO adalah foobar.example.com
.
Ada juga beberapa alat pengecekan online yang berguna yang menyediakan informasi ini (dan banyak lainnya yang bermanfaat), mis. :
- https://www.mail-tester.com (hati-hati, hanya 3 cek email gratis per hari);
- [email protected] (gratis);
- [email protected] (sebagian besar umpan baliknya tidak gratis, tetapi untuk tujuan ini).
Bagaimana cara mengubahnya?
Alih-alih mengedit file transport seperti yang disarankan oleh David, saya lebih suka menggunakan definisi konstanta exim4 (?) dan menetapkan nama di /etc/exim4/conf.d/main/00_local_settings
(dalam konfigurasi terpisah), mis. :
REMOTE_SMTP_HELO_DATA=$sender_address_domain
Jangan lupa untuk menjalankan update-exim4.conf
sebelum memulai ulang exim4.
Saya menyetel primary_hostname […] di /etc/exim4/exim4.conf.template
Seperti yang disebutkan oleh David, ini mungkin bukan ide terbaik. Dalam konfigurasi terpisah, Anda dapat menetapkan nama host utama dengan menambahkan
MAIN_HARDCODE_PRIMARY_HOSTNAME = subdomain.example.com
di /etc/exim4/conf.d/main/00_local_settings
. Sepertinya itu adalah PRIMARY_HOST_NAME
dalam konfigurasi monolitik exim4.