Saya menggunakan Sendmail di server Centos untuk mengirim email ke skrip PHP, tetapi masalahnya adalah bahwa surat dikirim ke kotak surat lokal di mesin daripada apa yang ditentukan dalam catatan MX untuk domain - yang sebenarnya menunjuk ke komputer lain saya gunakan untuk email.
Saya ingin sendmail tidak mencoba dan mengirimkan surat secara lokal untuk domain yang diatur oleh mesin, apakah ada cara sederhana untuk menonaktifkan pengiriman lokal?
Domain tidak ada dalam file host-nama-lokal.
Saya telah melakukan banyak pencarian di Google dan saya telah melihat:
Konfigurasi Sendmail untuk tidak mengirimkan email ke mesin lokal
Nonaktifkan pengiriman lokal di Sendmail
Tapi entah tidak ada jawaban atau tidak cocok.
Saya tidak ingin merelay ke server lain, saya hanya ingin mengirim email terlepas dari domain.
Untuk memberikan contoh:
Saya memiliki dua server, satu adalah server mail di mail.example.com dan server web yaitu example.com, ketika saya menggunakan layanan smtp di server web, saat ini ia merutekan email ke kotak surat lokal di example.com, tetapi seharusnya masuk ke kotak surat di mail.example.com
Output dari sendmail -bt returns:
ADDRESS TEST MODE (aturan 3 TIDAK dipanggil secara otomatis) Memasukkan > 3,0 [email protected] canonify input: info @ example. com Input Canonify2: info Canonify2 mengembalikan: info mengembalikan canonify: info masukan parse: info Input Parse0: info Parse0 mengembalikan: info Input ParseLocal: info Pengembalian ParseLocal: info Input Parse1: info Parse1 mengembalikan: $ # local $: info pengembalian parse: $ # local $: info
Jawaban:
Apa yang saya lakukan untuk menonaktifkan pengiriman lokal. Saya akan menggunakan domain example.com.
Persyaratan:
Tangga:
pada akhirnya:
lalu:
pengujian:
Anda akan melihatnya terhubung ke server google dan kemudian Anda akan melihat surat Anda dikirim ke kotak masuk Google Anda.
sumber
sendmailconfig
, tambahkan baris yang Anda tentukan, jalankansendmailconfig
lagi dan lakukanservice sendmail restart
dan berfungsi!/etc/passwd
danetc/passwd
Berkat sporker dan Pawel, Anda menempatkan saya di arah yang benar untuk memperbaikinya.
Masalah asli saya adalah bahwa sendmail mempertimbangkan akun email domain example.com saya sebagai akun lokal.
Tautan ini terbukti sangat berguna: Sendmail ke domain lokal mengabaikan catatan MX (bagian 2) http://lists.freebsd.org/pipermail/freebsd-questions/2004-September/057382.html http://objectmix.com/sendmail/ 367920-sendmail-ignores-mailertable-some-semilocal-domains.html
Tetapi dalam kasus saya, menggunakan FreeBSD 8.2, apa yang sebenarnya berhasil adalah:
# cd /etc/mail
# vim freebsd.mc
Tambahkan dua baris ini:
Tepat sebelum:
# make
--- Ini adalah output ---
--- Akhir output ---
# cp sendmail.cf sendmail.cf.bak
# cp host.example.com.cf sendmail.cf
# /etc/rc.d/sendmail restart
Semoga ini menghemat beberapa sakit kepala untuk seseorang.
sumber
Saya bukan orang sendmail tetapi saya yakin bahwa sendmail akan memperlakukan domain apa pun yang disimpan
/etc/mail/local-host-names
sebagai nama domain lokal.Anda dapat mencoba mengosongkan file ini, (jangan hapus) dan mulai kembali sendmail dan lihat perkembangannya
EDIT
The filename saya sebutkan sebenarnya diatur dalam
sendmail.cf
dan Anda mungkin tidak diatur untuklocal-host-names
mencari di
/etc/mail/sendmail.cf
untukIni bukan fakta yang diuji tetapi hanya saya yang berpikir keras.
sumber
Ini mungkin bukan solusi yang Anda cari tetapi jika masalah Anda adalah pengguna "admin" atau "root" mendapatkan banyak email dan kotak surat besar, Anda mungkin ingin mempertimbangkan untuk menyiapkan tugas cron untuk menghapus kotak surat keluar setiap minggu, hari, dll.
Kami memiliki beberapa server CentOS dengan masalah ini, tetapi masalahnya kami ingin dapat membaca surat terkadang karena dapat membantu mendiagnosis berbagai masalah terkadang.
Solusinya adalah dengan hanya melakukan tugas cron dan menyeka kotak sesekali.
Jika kami menemukan masalah ... kami akan mengomentari pekerjaan cron (sementara) dan membaca log dan email untuk petunjuk.
Hanya pemikiran ... dan solusi cepat / mudah untukmu.
Jika tidak, lihat file sendmail.mc dan modifikasi yang sesuai.
Pembaruan cepat:
Ini bukan apa yang Anda minta tetapi mungkin memberi Anda beberapa ide dan membantu menjelaskan beberapa hal untuk Anda:
http://www.pettingers.org/code/sendmail-local.html
sumber
Saya pribadi lebih dari orang postfix, tetapi ini terdengar seperti Anda telah mengkonfigurasi server pengirim untuk menerima email ke @ yourdomain.com. Jika ada sendmail yang setara dengan mekanisme transport di postfix, itulah yang saya gunakan untuk merutekan email secara internal di antara server saya.
sumber
Sepertinya Ruleset 3 Anda menghapus informasi domain. Saya telah menyertakan beberapa langkah pemecahan masalah umum di bawah ini. Jika ini tidak berhasil, Anda harus mengirimi saya sendmail.cf Anda untuk melihatnya.
Dari output, example.com diperlakukan sebagai domain lokal. lakukan nslookup:
atur q = mx
domain.com
Jika ini memberikan alamat ip mesin lokal maka Anda perlu melihat dns Anda. Lihat juga di / etc / hosts untuk memastikan domain.com tidak terdaftar.
Tampaknya juga menghapus @ domain.com, bisa tolong coba dengan sesuatu seperti [email protected] untuk melihat apakah itu juga mencantumkannya sebagai domain lokal.
Periksa juga nilai Cw di file sendmail.cf Anda.
sumber
Mungkin bukan yang Anda inginkan, tetapi SSMTP sangat bagus untuk server hanya keluar, di mana Anda dapat menentukan hub email.
sumber
Jika Anda ingin mengembalikan kesalahan saat pengiriman ke alamat lokal dicoba, Anda dapat menggunakan peta akses dan sesuatu seperti:
Jika Anda ingin pesan email 'dikirim' tetapi dibuang, Anda dapat menginstal entri yang bisa diubah-ubah yang membuat semuanya "
@your.domain
" menjadi dev-null. Mungkin bermanfaat untuk tetap mengirim setidaknya "root
" secara lokal, karena sering kali penerima laporan email dari pekerjaan cron dll. Cobalah sesuatu seperti ini divirtusertable
:Dengan
dev-null
alias lokal yang mengalihkan pesan ke / dev / null, ini harus terus mengirimkan email root, tetapi membuang pesan yang dikirim ke pengguna lain.sumber
Perbaikan oleh Pawel bekerja untuk saya tetapi sendmailconfig tidak ada pada centos jadi saya harus menjalankan
untuk mendapatkan konfigurasi diperbarui
sumber
Hanya mengonfirmasi bahwa jawaban Pawel memecahkan masalah saya yang sangat mirip.
Bagi siapa pun yang menggunakan FreeBSD tetapi tidak tertarik untuk terlibat terlalu banyak dalam sendud cery file sendmail, urutan berikut adalah apa yang akan Anda gunakan untuk menambahkan dua baris dalam contoh Pawel:
sumber
Saya mengikuti saran-saran ini, dan telah memperhatikan bahwa hanya menambahkan langkah yang disebutkan pawel,
"/ etc / hosts mendefinisikan example.com yang ditugaskan ke alamat IP yang sama seperti di atas", pada dasarnya saya menambahkan IP server saya diikuti oleh servername ke
/etc/hosts
file, dan hanya itu.Sudah cukup bagi saya untuk mendapatkan email yang dialihkan melalui google dan kembali ke email saya.
sumber
Jika Anda menggunakan Cpanel / WHM untuk mengelola server Anda, pastikan Anda memilih Penukar Email Jarak Jauh di Cpanel / WHM alih-alih Secara Otomatis Mendeteksi Konfigurasi. Penukar Email Jarak Jauh akan mengirim semua email melalui data MX termasuk domain lokal. Dengan Otomatis, email domain lokal akan langsung dialihkan secara lokal dan tidak akan dikirim ke server eksternal yang ditentukan dalam catatan MX.
sumber