Email proxy ke server smtp berbeda dengan Postfix

11

Bagaimana saya bisa meneruskan (atau proxy) mail ke berbagai server smtp tergantung pada alamat To?

Saya mempunyai satu mesin dengan server SMTP (postfix) mendengarkan pada port 25. Saya ingin menggunakan Lamson ( http://lamsonproject.org/ ) untuk menangani beberapa surat masuk dan beberapa surat yang saya ingin memiliki postfix untuk ditangani.

Ide saya adalah mengatur Lamson untuk mendengarkan pada port yang berbeda, misalkan localhost: 10025. Saya kemudian mengatur postfix untuk menangkap semua email dengan mendengarkan pada port 25.

Bagaimana cara mengkonfigurasi Postfix ke proxy mail tertentu ke Lamson di 10025 dan menangani semua email lainnya sendiri?

Mattias
sumber

Jawaban:

18

Postfix sangat fleksibel (dan karenanya kompleks) dalam konfigurasinya, jadi ada berbagai cara untuk mencapai ini. Cara paling sederhana mungkin dengan menggunakan transport(5)tabel.

Pertama, aktifkan penggunaan tabel transport di postfix:

/etc/postfix/main.cf:
    transport_maps = hash:/etc/postfix/transport

Anda juga harus memastikan bahwa Postfix menerima email untuk alamat yang akan ditangani oleh Lamson. Lihat permit_auth_destinationaturan Postfix akan berlaku untuk menentukan alamat penerima yang valid. Untuk contoh berikut, dengan asumsi "example.com" adalah domain yang tidak diketahui oleh Postfix, mungkin paling mudah untuk menambahkannya sebagai domain relai:

/etc/postfix/main.cf:
    relay_domains = example.com

Lalu, buat tabel yang sesuai. Misalnya untuk mengarahkan semua email ke domain "example.com" serta mail untuk "[email protected]" ke Lamson lokal Anda yang mendengarkan di port 10025:

/etc/postfix/transport:
    example.com          smtp:127.0.0.1:10025
    [email protected]    smtp:127.0.0.1:10025

Setelah itu (dan kemudian sekali setelah setiap pembaruan ke file tabel transport) jangan lupa untuk menjalankan:

$ postmap /etc/postfix/transport

Ini seharusnya membuat Anda pergi. Pastikan untuk membaca transport(5)halaman manual, yang akan memberi Anda lebih banyak ide tentang cara menggunakan fasilitas canggih ini.

pangeran
sumber
Hai, terima kasih atas tipnya. Saya masih mengalami masalah dengan meneruskan surat setelah mengikuti instruksi Anda. Saya mendapatkan NOQUEUE: reject: RCPT from {my-mail-relay} Alamat penerima ditolak: Pengguna tidak dikenal di tabel penerima lokal. Ada ide?
Mattias
Ah ya, Anda juga harus memastikan, bahwa Postfix menerima mail untuk diteruskan ke example.com (karena Postfix sekarang bertindak sebagai relay untuk Lamson). Jika Postfix Anda sebagian besar melayani domain lain, cara termudah untuk mencapai hal ini adalah menambahkan "domain Lamson" ke relay_domains. Saya memperbarui untuk menjawab untuk memasukkan ini.
earl
1
Terima kasih, setelah mengikuti langkah-langkah Anda, saya masih mengalami beberapa masalah dalam mendapatkan postfix untuk mengenali localhost sebagai host yang valid. Saya menjalankan perintah postconf -e 'smtp_host_lookup = dns, asli' dan yang menyelesaikan masalah saya, postfix sekarang meneruskan surat yang ingin saya kirim ke Lamson.
Mattias
1
Senang mendengar bahwa itu bekerja. Alih-alih mengubah smtp_host_lookup, Anda juga bisa menggunakan 127.0.0.1bukan localhost. Saya telah memperbarui jawaban untuk mengakomodasi peningkatan itu.
earl