Saya mencoba mendapatkan laporan email dari AWS EC2 kami. Kami menggunakan Exchange Online (bagian dari Microsoft Online Services). Saya telah menyiapkan akun pengguna khusus untuk relai SMTP , dan saya telah menyiapkan Postfix untuk memenuhi semua persyaratan untuk menyampaikan pesan melalui server ini. Namun, server SMTP Exchange Online akan menolak pesan kecuali alamat Dari sama persis dengan alamat otentikasi (pesan kesalahannya adalah 550 5.7.1 Client does not have permissions to send as this sender
).
Dengan konfigurasi yang cermat, saya dapat mengatur layanan saya untuk dikirim sebagai pengguna ini. Tapi saya bukan penggemar hati-hati - saya lebih suka memiliki postfix yang memaksa masalah ini. Apakah ada cara untuk melakukan ini?
sumber
sender_canonical_maps
postfix tidak dapat menyimpan email yang ditolak ke spool lokal dan sebagai gantinya mencoba mengirimnya melalui relay tanpa bataspostconf -e sender_canonical_classes=envelope_sender,header_sender
postconf -e sender_canonical_maps=regexp:/etc/postfix/sender_canonical_maps
postconf -e smtp_header_checks=regexp:/etc/postfix/header_check
(Catatan: alamat FROM dan TO cocok untuk penggantian tabel generik dan kanonik.)
Menggunakan tabel kanonik ketika surat diterima oleh server sudah dijelaskan adalah jawaban lain.
Anda dapat menulis ulang dari alamat FROM ketika surat dikirim dari server menggunakan
smtp_generic_maps
.Menurut dokumentasi postfix :
Kemudian lakukan:
Referensi:
sumber
hash:
keregexp:
dalam main.cf dan menggunakan baris seperti/foo.*@localdomain.local/ [email protected]
di peta umum. Ini dijelaskan di halaman manual: postfix.org/generic.5.htmlPembaruan: Atas saran seorang teman IT, saya menjalankan postfix pada semua server saya, daripada membuat satu server cloud mail. Inilah solusi saya sejauh ini:
/etc/postfix/main.cf
/etc/postfix/sasl_passwd
/etc/postfix/generic
/etc/aliases
/etc/passwd
Hal-hal yang saya sukai:
alias
mengarahkan siapa yang mendapatkannya.[email protected]
, sehingga dapat melalui server SMTP MS Online.Hal-hal yang tidak saya sukai:
passwd
Nama trik tidak selalu bekerja, dan bisa sulit untuk mencari tahu apa mail server akan datang dari.warning: smtp.mail.microsoftonline.com[65.55.171.153] offered null AUTH mechanism list
(Server SMTP mengirimAUTH
daftar nol sebelumSTARTTLS
, tetapiAUTH LOGIN
setelah).certificate verification failed for smtp.mail.microsoftonline.com: num=20:unable to get local issuer certificate
(Ada beberapa opsi konfigurasi di sekitar sertifikat, tetapi saya tidak yakin apakah pengiriman surat terputus saat sertifikat diperbarui)certificate verification failed for smtp.mail.microsoftonline.com: num=27:certificate not trusted
(Sama seperti # 2)Terima kasih kepada komunitas serverfault karena berbagi pendapat yang kuat tentang server email.
sumber
Anda dapat menggunakan smtpd_sender_login_maps untuk menentukan daftar peta: alamat pengirim - pengguna.
Contoh:
/ etc / postfix / login-map:
Itu berfungsi untuk mengirim, itu harus bekerja untuk menyampaikan dengan cara yang sama.
sumber
echo "This is a test" | /usr/sbin/sendmail [email protected]
masih antrian (dan akhirnya relay) surat datang dari[email protected]
Saya menggunakan pemetaan kanonik untuk menulis ulang alamat dari, seperti menulis ulang root @ app01 ke [email protected].
sumber