Cara mengkonfigurasi sendmail untuk menyampaikan melalui server tertentu

11

Saya memiliki pengaturan server rumah kecil di belakang modem kabel saya (komunikasi bresnan). Saya ingin kotak ini dapat mengirim email (tidak menerima) untuk notifikasi dan yang lainnya.

Apa yang sudah saya lakukan:

  • Saya telah menginstal dan mengkonfigurasi sendmail.
  • Saya telah menambahkan mail.bresnan.netsebagai SMART_HOSTarahan saya .

Yang saya yakini masalahnya adalah

Ketika saya mencoba mengirim email, saya mendapatkan yang berikut di log surat saya:

Dec 22 10:24:17 batcave sendmail[1530]: oBMHOHrs001530: from=aburns, 
  size=140, class=0, nrcpts=1, 
  msgid=<[email protected]>, 
  relay=aburns@localhost
Dec 22 10:24:17 batcave sm-mta[1531]: oBMHOHWZ001531: from=<[email protected]>, 
  size=397, class=0, nrcpts=1,
  msgid=<[email protected]>,
  proto=ESMTP, daemon=MTA-v4, relay=localhost [127.0.0.1]
Dec 22 10:24:17 batcave sendmail[1530]: oBMHOHrs001530:
  to=<[email protected]>, ctladdr=aburns (1000/1000),
  delay=00:00:00, xdelay=00:00:00, mailer=relay,
  pri=30140, relay=[127.0.0.1] [127.0.0.1],
  dsn=2.0.0, stat=Sent (oBMHOHWZ001531 Message accepted for delivery)
Dec 22 10:24:18 batcave sm-mta[1517]: oBMH9mVv001357:
  to=<[email protected]>, ctladdr=<[email protected]>
  (1000/1000), delay=00:14:30, xdelay=00:00:42, mailer=relay,
  pri=300339, relay=pmx0.bresnan.net. [69.145.248.1],
  dsn=4.0.0, stat=Deferred: Connection timed out with pmx0.bresnan.net.

Anda dapat melihat di mana pesan diterima untuk dikirim oleh server sendmail saya, lalu di mana ia mencoba untuk dikirim ke server bresnan dan waktu habis.

Di sinilah pertanyaan saya. Pembaca Asstute akan menyadari bahwa pmx0.bresnan.netitu bukanlah SMART_HOSTarahan saya . Ini adalah MXserver (luar?) Untuk domain bresnan.com/net. Rupanya bresnan memiliki jaringan yang dikonfigurasi sehingga Anda tidak dapat mengakses server ini dari dalam jaringan mereka sendiri dan sebagai gantinya harus menggunakan mail.bresnan.netserver (yang dapat saya sambungkan ke). Masalahnya adalah saya tidak tahu bagaimana cara memberitahu sendmail untuk menggunakan server ini dan bukan domainnya .

Apa yang saya coba

  • Mengatur entri host sehingga server pmx0 menunjuk ke alamat IP surat. Ini tidak berfungsi, yang masuk akal sebagai sendmail jelas melakukan permintaan MX untuk menemukan server yang mengembalikan IP sehingga tidak pernah perlu melakukan tekad DNS 'normal' sehingga file host tidak pernah terlibat.

Cara Mengatasinya (untuk semua surat keluar):

Sekali lagi, alat peraga masuk ke webmin (lihat catatan di bawah) untuk membantu saya mempelajari hal ini. Jika Anda memasukkan smarthost Anda dengan tanda kurung siku yang menginstruksikan sendmail untuk tidak melakukan pencarian MX, jadi: define('SMART_HOST','[69.145.248.18]')(Perbaiki tanda kutip-> backticks) benar-benar berfungsi tanpa tabel mailer.

Cara Mengatasinya (untuk domain tertentu):

Seperti yang ditunjukkan di bawah ini, pengaturan a mailertablediperlukan. Namun, seperti yang ditunjukkan di halaman manual , fitur ini juga perlu diaktifkan di sendmail.mcfile Anda .

Juga perhatikan bahwa rute mailer tidak memaksa sendmail untuk menggunakan server yang ditentukan untuk semua operasi, itu didasarkan pada alamat penerima. Ini sebenarnya OK untuk saya karena saya hanya perlu mengirim ke beberapa domain (gmail, google host, dan pekerjaan saya).

Ringkasan :

  • Tambahkan FEATURE('mailertable')ke sendmail.mcfile Anda . (perhatikan bahwa kutipan pertama harus berupa backtick.
  • Buat /etc/mail/mailertablefile Anda (Lihat halaman manual )
  • Buat mapfile: sudo makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
  • Bangun kembali konfigurasi Anda make -C /etc/mail
  • Mulai ulang sendmail: service sendmail restart

CATATAN: Saya sangat merekomendasikan menggunakan WebMin untuk mengedit / membangun kembali file-file ini. Tanpa itu saya akan menjadi gila mencoba mencari tahu mengapa file mailertable saya diabaikan.

ErebusBat
sumber
Bisakah kami melihat sendmail.mc Anda?
larsks
Ketika Anda membuat perubahan pada file konfigurasi sendmail.mc, apakah Anda memulai kembali sendmail setelah setiap perubahan?
ewwhite

Jawaban:

7

Anda dapat menjelajahi pencarian MX dengan menambahkan entri pendek ke /etc/mail/mailertablefile sendmail Anda .

Isi file mungkin harus memiliki satu baris seperti:

bresnan.net       esmtp:[69.145.248.18]

Simpan file dan mulai ulang sendmail (atau bangun kembali sendmail.cf Anda jika harus dilakukan secara manual).

putih
sumber
2
Jawaban Anda benar; namun saya harus mengambil beberapa langkah tambahan. Untuk orang lain yang mengalami masalah ini lihat edit saya di atas.
ErebusBat