Bagaimana cara mengkonfigurasi exim4 untuk mengirim email melalui server mail ssl smtp yang dilindungi kata sandi?

19

Saya ingin cronjobs saya dapat mengirim email dari komputer di rumah saya. Server saya mengkonfigurasi exim4 seperti ini:

dc_eximconfig_configtype='internet'
dc_other_hostnames=''
dc_local_interfaces='127.0.0.1'
dc_readhost=''
dc_relay_domains=''
dc_minimaldns='false'
dc_relay_nets=''
dc_smarthost=''
CFILEMODE='644'
dc_use_split_config='false'
dc_hide_mailname=''
dc_mailname_in_oh='true'
dc_localdelivery='maildir_home'

Namun, di rumah, ISP saya memblokir surat yang dikirim langsung melalui firewall. Saya memiliki kata sandi server smtp ssl yang diproteksi yang dapat saya gunakan untuk merutekan email, tetapi saya tidak berhasil menemukan cara mengkonfigurasi exim4 untuk membuat pekerjaan ini. Saya berharap seseorang dapat memberi saya contoh konfigurasi di mana saya bisa pasang nama host, nama pengguna, kata sandi, dan "gunakan ssl" untuk membuatnya mengirim email melalui satu server smtp.

Stephen Ostermiller
sumber

Jawaban:

25

Saya akhirnya menemukan serangkaian instruksi terperinci dari Tony Scelfo yang benar-benar berfungsi . Tampaknya Anda harus menggunakan transport layer security (TLS) pada port 587. Saya belum mendapatkan SSL SMTP untuk berfungsi.

Pertama jalankan sudo dpkg-reconfigure exim4-configdan gunakan opsi konfigurasi ini:

  • Jenis umum konfigurasi email : surat dikirim melalui smarthost; diterima melalui SMTP atau fetchmail
  • Nama surat sistem: <nama host Anda>
  • Alamat IP untuk didengarkan saat koneksi SMTP masuk: 127.0.0.1
  • Tujuan lain yang menerima surat: <nama inang Anda>
  • Mesin untuk mengirimkan email ke: <biarkan ini kosong>
  • Alamat IP atau nama host dari smarthost keluar: mail.example.com:==87
  • Sembunyikan nama surat lokal dalam surat keluar?
    • Ya - semua email keluar akan muncul dari akun gmail Anda
    • No - mail yang dikirim dengan header nama pengirim yang valid akan menyimpan nama pengirim
  • Pertahankan jumlah permintaan DNS minimal (Dial-on-Demand)? Tidak
  • Metode pengiriman untuk surat lokal: <pilih yang Anda inginkan>
  • Membagi file konfigurasi menjadi file kecil? Ya (Anda perlu mengedit salah satu file selanjutnya)

Kemudian jalankan sudo vi /etc/exim4/passwd.clientdan tambahkan baris berikut untuk host surat Anda, dan alias apa pun yang telah (ditemukan hingga nslookup). Ganti <alamat email> dan <kata sandi> dengan akun yang Anda inginkan untuk merutekan email):

mail.example.com:<email address>:<password>
mail.yourhosting.provider:<email address>:<password>

Setelah Anda mengedit passwd.clientfile, jalankan sudo update-exim4.confyang akan mengintegrasikan perubahan Anda ke konfigurasi Exim4 Anda.

Jalankan sudo /etc/init.d/exim4 restartdan pastikan bahwa layanan berhenti dan mulai dengan benar. Jika layanan tidak dapat memulai kembali, ada sesuatu yang salah ketika Anda mengedit passwd.clientfile.

Jika Exim4 dimulai ulang, lanjutkan dan jalankan sudo tail -f /var/log/exim4/mainloguntuk menonton log surat. Di jendela yang berbeda, kirim email dari sistem Anda dan pastikan Anda melihat catatan yang ada R=smarthost T=remote_smtp_smarthost H=gmail-smtp-msa.l.google.com ... X=TLS-1.0:RSA_ARCFOUR_MD5:16di dalamnya. The X=TLSberarti bahwa surat tersebut dikirim dengan keamanan lapisan transport yang adalah apa yang Anda inginkan.

Stephen Ostermiller
sumber
1
Tidak perlu "membagi file konfigurasi menjadi file kecil" karena /etc/exim4/passwd.clientmerupakan file yang terpisah.
Jalankan CMD
Harap dicatat bahwa menentukan port SMTP mungkin tidak berfungsi dengan semua server email. Tetapi exim4akan tetap menggunakan TLS dengan port SMTP default jika server surat menawarkannya. Hal ini dapat diperiksa dengan melihat X=informasi di/var/log/exim4/mainlog
Jalankan CMD
Tolong, arahkan saja saya ke arah yang benar. Saya tidak ingin menduplikasi beberapa pertanyaan. Bagaimana jika saya ingin semua pengguna menetapkan kata sandi stmp mereka sendiri di direktori HOME mereka? Akankah exim4 mencari berbagai passwd.client? Tx
Dr Beco
Itu terdengar seperti pertanyaan baru bagi saya
Stephen Ostermiller
@DrBeco Jika Anda memiliki pertanyaan spesifik yang tidak spesifik untuk pertanyaan atau jawaban ini, silakan tanyakan sebagai pertanyaan .
Thomas Ward
5

Jika ISP Anda memerlukan otentikasi, Anda harus mengatur dc_smarthost ke hostname server mail dan kombinasi port yang digunakan ISP Anda, dan dc_eximconfig_configtype ke "smarthost" seperti:

dc_eximconfig_configtype='smarthost'
dc_smarthost='mail.example.com::587'

Kemudian, Anda dapat menambahkan kredensial Anda /etc/exim4/passwd.clientseperti itu:

mail.example.com:username:password

Kemudian, semua email yang dikirim melalui server exim4 Anda akan dialihkan melalui host email ini.

dobey
sumber
10
Dalam update-exim4.conf saya memasukkan dua titik dua untuk baris smarthost, seperti pada dc_smarthost='mail.example.com::587'dan itu membuat semua perbedaan! Akhirnya mulai mengirim surat melalui.
Marcos
+1 Ini adalah kesalahan yang sangat umum yang saya lihat di banyak tutorial.
TwystO
4

Ini bekerja sangat baik untuk saya. ISP saya menggunakan port 25 dan dc_smarthost='myisp.mail.server:25' setelah mengubah file ini dan mengeluarkan perintah:

  1. update-exim4.conf
  2. /etc/init.d/exim4 restart

Setelah saya melakukan tes untuk mengirim email melalui sampel klasik exim4 seperti:

echo "content of mail body with pt-br chars ação avião língua é essa em 1609." | mail -s "Confirmar 16DOM" my-user-in-isp@my-domain-url

Dan ini mengalir ok ke inbox my-userin my-domain-url.

gsavix
sumber