Exim: Ubah alamat pengirim saat mengirim email dari jaringan lokal


8

Kami memiliki pengaturan exim yang berfungsi di situs, di mana pengguna dapat mengirim dan menerima email. Kami mencoba menyiapkan server untuk mengirim beberapa peringatan dan kesalahan menggunakan email ke alamat yang berada di luar jaringan lokal.

Masalahnya adalah:

Program yang mengirim surat mengirimkannya menggunakan nama pengguna yang dijalankannya dan nama host lokal dari server. Ini menyebabkan email memiliki pengirim format: myapp@myserver.mydomain. Exim mengirim surat-surat ini ke server SMTP ISP, yang menolak surat-surat karena mereka memiliki pengirim yang ilegal atau tidak dapat diverifikasi (alamat internal).

Saya pikir saya harus mengkonfigurasi exim untuk menulis ulang pengirim ketika:

  • domain pengirim ada di jaringan lokal
  • domain penerima berada di luar jaringan lokal

Saya mencoba mengatur beberapa jenis penulisan ulang di konfigurasi exim, tetapi tidak berhasil membuatnya bekerja. Saya akan menunjukkan apa yang telah saya coba, tetapi saya kehabisan waktu pada kunjungan terakhir ke situs, dan harus kembali ke versi asli kehilangan semua perubahan yang saya coba.

Jawaban:


9
begin rewrite
myapp@myserver.mydomain   legal.user@myserver.mydomain   SFfrs

Bendera memiliki arti sebagai berikut:

  1. S - Lakukan semua penulisan ulang pada waktu SMTP. Ini berarti bahwa semua flag berikut dilakukan segera ketika data yang mereka terapkan masuk, tidak ditunda sampai nanti.
  2. F - Tulis ulang amplop dari bidang.
  3. f - Tulis ulang bidang Dari: header.
  4. r - Tulis ulang bidang header Balas-Ke :.
  5. s - Tulis ulang bidang header Pengirim-Ke :.

Baca Bab 31 dari Spesifikasi Exim untuk detail lebih lanjut tentang penulisan ulang pesan


1
Ini adalah bagaimana saya membuatnya bekerja, kecuali: Harus ada ^di awal aturan, Skecuali
pengecualian

1
s harus " Sender:" bukan header " Sender-To:" (Dan itu adalah perubahan yang terlalu kecil untuk mengedit posting)
Gert van den Berg

11

File /etc/email-addressesharus menangani masalah. Ini adalah bagian standar dari distribusi Exim. Anda perlu mengonfigurasi satu catatan untuk setiap pengguna lokal yang mengirim email.

Coba baris yang /etc/email-addressesdisukai:

 myapp:   donotreply@example.com

Di server MX Anda tambahkan alias seperti:

 donotreply:    :blackhole:

Gunakan Reply-to:tajuk untuk memungkinkan penerima membalas pesan.

File /etc/email-addressesini menggunakan kode penulisan ulang berikut, yang harusnya ada di awal rewritebagian file konfigurasi.

*@+local_domains "${lookup{${local_part}}lsearch{/etc/email-addresses}\
                  {$value}fail}" Ffrs

/etc/email-addressestidak ada di server saya. Bisakah saya membuatnya, atau apakah itu menunjukkan bahwa ada sesuatu yang hilang?
Esa Varemo

@ EsaVaremo Grep file konfigurasi Anda email-addresses, atau periksa file konfigurasi Anda untuk bagian penulisan ulang. Mungkin ini tidak dikonfigurasikan dalam distribusi Anda.
BillThor

Saya mencoba grep, locatedan mencari beberapa manhalaman, tetapi tidak menemukan apa pun. Haruskah file tersebut didefinisikan exim.conf?
Esa Varemo

@ EsaVaremo Baris di akhir jawaban saya harus di bagian penulisan ulang exim.conf. Jika tidak ada, tambahkan. Pastikan variabel local_domainsmenyertakan domain Anda.
BillThor

Saya perhatikan hasil edit Anda beberapa saat setelah saya memberikan komentar terakhir. Untuk alasan apa pun saya tidak membuatnya bekerja, jadi saya pergi dengan jawaban yang lain, karena saya kehabisan waktu. Saya tidak ragu bahwa ini benar, saya mungkin baru saja salah ketik / mengkonfigurasi sesuatu ...
Esa Varemo

1

/etc/email-addressesberguna saat Anda hanya perlu mengaitkan satu alamat email per nama pengguna. Namun jika pengguna Anda perlu mengirim email dengan banyak alamat, Anda harus memodifikasi /etc/email-addressessetiap waktu, dan Anda pasti akan berakhir dengan menggunakan alamat yang salah.

Pendekatan lain adalah mengirim email menggunakan exim4perintah dan -fopsinya:

$ cat email|/usr/sbin/exim4 -f myapp@example.com recipient@example.com

Perhatikan bahwa untuk -fopsi bekerja, Anda perlu pengguna Anda menjadi pengguna tepercaya exim atau ingin menerima dia sebagai pengirim yang tidak dipercaya yang diizinkan.

Dalam kasus saya yang terakhir adalah default, berkat wildcard ini di /etc/exim4/conf.d/main/02_exim4-config_options :

untrusted_set_sender = *

Solusi lain adalah dengan menambahkan baris berikut di /etc/exim4/conf.d/main/00_local_settings(dengan asumsi konfigurasi split exim, dan buat jika belum ada):

MAIN_TRUSTED_USERS = yourusername

Kedua opsi memerlukan ulang konfigurasi exim. Di bawah Debian:

# dpkg-reconfigure exim4-config
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.