Saya mencoba untuk mendapatkan sendmail untuk mentransfer email ke server yang ditentukan dalam catatan MX sehingga ketika server mengirim email ke [email protected] saya ingin itu melewati localhost dan langsung ke gmail.
Saya telah memeriksa dokumen sendmail, tetapi tidak begitu mengerti bagaimana menjelaskan situasi saya. Pada dasarnya nama host server saya adalah 'www.domain.com' tetapi ketika saya mengirim email ke '[email protected]' itu berakhir di spool mail lokal.
Ketika saya menjalankan sendmail dalam mode debug:
sendmail -bt
> $=w
Saya mendapat:
www.domain.com
www.domain.com.
domain.com
localhost
[54.245.___.___]
Jadi, ini mencegat semua surat keluar ke domain.com
. Saya tidak ingin tiba di localhost
. Saya ingin pergi ke server gmail.
Semua surat terikat untuk alamat lain berfungsi dengan baik. Saya juga sudah mengonfigurasi sendmail untuk menggunakan DKIM.
Saya telah menambahkan catatan ke mailertable (dan membangun kembali mailertable.db dan mengkompilasi ulang file mc> cf) tetapi saya tidak yakin apakah itu yang perlu saya lakukan atau apakah saya melakukannya dengan benar.
domain.com esmtp:[aspmx.l.google.com]
Bagaimana cara mendapatkannya agar email terikat agar [email protected] meninggalkan server?
INFO TAMBAHAN: Ini adalah file sendmail.mc saya:
divert(-1)dnl
include(`/usr/share/sendmail-cf/m4/cf.m4')dnl
VERSIONID(`setup for linux')dnl
OSTYPE(`linux')dnl
define(`confDEF_USER_ID', ``8:12'')dnl
define(`confTO_CONNECT', `1m')dnl
define(`confTRY_NULL_MX_LIST', `True')dnl
define(`confDONT_PROBE_INTERFACES', `True')dnl
define(`PROCMAIL_MAILER_PATH', `/usr/bin/procmail')dnl
define(`ALIAS_FILE', `/etc/aliases')dnl
define(`STATUS_FILE', `/var/log/mail/statistics')dnl
define(`UUCP_MAILER_MAX', `2000000')dnl
define(`confUSERDB_SPEC', `/etc/mail/userdb.db')dnl
define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl
define(`confAUTH_OPTIONS', `A')dnl
define(`confTO_IDENT', `0')dnl
FEATURE(`no_default_msa', `dnl')dnl
FEATURE(`smrsh', `/usr/sbin/smrsh')dnl
FEATURE(`mailertable', `hash -o /etc/mail/mailertable.db')dnl
FEATURE(`virtusertable', `hash -o /etc/mail/virtusertable.db')dnl
FEATURE(redirect)dnl
FEATURE(always_add_domain)dnl
FEATURE(use_cw_file)dnl
FEATURE(use_ct_file)dnl
FEATURE(local_procmail, `', `procmail -t -Y -a $h -d $u')dnl
FEATURE(`access_db', `hash -T<TMPF> -o /etc/mail/access.db')dnl
FEATURE(`blacklist_recipients')dnl
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
FEATURE(`accept_unresolvable_domains')dnl
FEATURE(`relay_based_on_MX')dnl
FEATURE(`relay_entire_domain')dnl
LOCAL_DOMAIN(`localhost.localdomain')dnl
MASQUERADE_AS(`domain.com')dnl
MASQUERADE_DOMAIN(`localhost.localdomain')dnl
EXPOSED_USER(`root')dnl
FEATURE(masquerade_envelope)dnl
FEATURE(masquerade_entire_domain)dnl
INPUT_MAIL_FILTER(`opendkim', `S=inet:8891@localhost')
MAILER(smtp)dnl
MAILER(procmail)dnl
Jawaban:
Saya akhirnya menemukan solusi yang agak komprehensif di sini . Singkatnya, ada sejumlah opsi (sebagian besar telah disebutkan dalam jawaban lain, tetapi karena alasan apa pun tidak berhasil dalam skenario khusus saya).
Opsi 1: hapus entri dari / etc / mail / local-host-names
bagi saya file ini sudah kosong
Opsi 2: hapus entri LOCAL_DOMAIN di file mc
saya tidak punya
Opsi 3: beri tahu sendmail untuk tidak menyelidiki antarmuka
dalam kasus saya ini sudah diatur, namun host bermasalah masih ada di kelas w dari sendmail
Opsi 4: ganti nama server. tautan eksternal yang disediakan di atas bahkan secara khusus mengatakan, "Jika saya ingin menghapus whipple.org dari kelas w, saya dapat mengubah nama server menjadi frodo.whipple.org, www.whipple.org, elvis.whipple.org, misalnya."
bagi saya ini tidak cukup. dengan host bernama www.domain.com , kelas sendmails masih berisi KEDUA www.domain.com DAN domain.com (bahkan setelah reboot)
Opsi 5: INI APA YANG BEKERJA UNTUK SAYA tambahkan LOCAL_RULE_0 ke file mc sendmail
ini harus dilakukan di akhir file dan
<tab>
harus karakter tab yang sebenarnyasumber
bestmx
peta untuk membuatnya menjadi generik.Ubah nama host server. Tidak ada alasan valid untuk nama host sama dengan nama domain telanjang.
sumber
Inilah pemahaman saya tentang pertanyaan Anda:
Anda menginstal Sendmail sehingga Anda dapat menggunakannya untuk mengirim email dari situs web Anda.
Anda mengonfigurasi Sendmail menjadi server email resmi untuk DNS namespace publik Anda.
Anda tidak ingin Sendmail berwibawa untuk namespace DNS publik Anda. Anda ingin email yang dikirim ke namespace DNS publik Anda dikirim ke email yang dihosting Google.
Solusi: konfigurasi ulang Sendmail sehingga tidak sah untuk namespace DNS publik Anda.
sumber
Saya tidak terlalu berpengalaman dengan konfigurasi sendmail, tetapi saya merasa harus melakukan hal yang benar sehubungan dengan catatan MX. Namun, saya membayangkan ada kemungkinan bahwa dalam pendahuluan pencarian DNS, sendmail pertama-tama berkonsultasi dengan file host lokal
/etc/hosts
pada kebanyakan sistem operasi berbasis unix sebelum menggunakan server DNS-nya. Jika itu masalahnya, dan ada entri dalam file host yang merujuk ke mesin Anda sebagai domain.com jika Anda menetapkannya sebagai nama host, itu bisa jadi apa yang terjadi. Anda dapat mengedit file host sesuai dengan kebutuhan Anda dalam kasus khusus ini dengan memodifikasi entri atau menambahkan yang baru.Atau Anda dapat mengonfigurasi sendmail untuk mengabaikan file host sistem lokal saat menyelesaikan url. Saya tidak yakin bagaimana melakukan itu.
sumber
1) Sendmail secara otomatis mengisi daftar domain email lokal (
$=w
).Anda tidak dapat mematikannya menggunakan baris berikut di sendmail.mc Anda:
Anda dapat menambahkan email lokal "secara manual" dalam
/etc/mail/local-host-names
file.(Dibutuhkan HUPing atau restart daemon sendmail setelah)
2) Sendmail dapat menambahkan (dikonfigurasi otomatis) "nama email host ini" (
$j
) ke daftar domain email lokal.Anda dapat menentukan "nama email host ini"
3)
mailertable
adalah TIDAK consultede untuk pengiriman ke domain yang terdaftar di$=w
.sumber
confDONT_PROBE_INTERFACES',
True ') sudah (dan selalu telah) diaktifkanKode yang mengirim surat, apakah Anda menggunakan alamat email lengkap, atau Anda hanya meminta server mengirimkannya melalui akun lokal? Karena:
Ini memberitahu sendmail untuk mengirimkan semua email ke [email protected] secara lokal
Dan ini memberi tahu sendmail untuk menulis ulang domain di alamat lokal menjadi domain.com, tetapi tidak mengubah pengiriman lokal .
Langkah 1: Kembali ke konfigurasi default.
Langkah 2: Gunakan konfigurasi default.
sumber