Server SMTP keluar yang ringan

46

Apa yang Anda gunakan sebagai SMTP ringan hanya untuk email keluar?

Saya menjalankan aplikasi yang mengirim surel melalui SMTP ketika peristiwa terjadi sesekali, dan saya tidak memerlukan server surel berfitur lengkap.

EDIT: Saya lebih dari senang menggunakan sesuatu seperti postfix (dan lakukan), kalau itu pilihan terbaik. Saya berpikir mungkin ada sesuatu yang lebih sederhana, yang kehabisan kotak.

FlappySocks
sumber
Saya pikir sangat masuk akal untuk tetap menggunakan sesuatu seperti exim dan postfix. Mereka tidak sulit untuk dikonfigurasikan jika Anda melakukan hal-hal sederhana.
Faheem Mitha
Apa definisi Anda tentang "ringan"? Seberapa besar Anda mengharapkan pesan itu? Seberapa sering "sesekali"?
Mike B

Jawaban:

22

Ada beberapa pilihan minimal, agen pemindahan surat relai (MTA, atau "server surat"), beberapa di antaranya telah disebutkan dalam jawaban lain:

Agar salah satu dari mereka berfungsi, Anda membutuhkan MTA lengkap di suatu tempat yang akan menyampaikan pesan Anda lebih lanjut (dikenal sebagai "hub surat") dan sangat disarankan agar Anda mengontrol hub surat ini. Hal Buruk ™ dapat terjadi sebaliknya.


sumber
esmtp tidak lagi dipertahankan.
Nikola Kotur
1
nullmailer memiliki masalah kepatuhan SMTP yang serius: ia mencoba berulang kali ketika diberi kesalahan permanen SMTP. Ini dapat dikenakan biaya uang nyata jika Anda membayar bandwidth / transit bugs.debian.org/cgi-bin/bugreport.cgi?bug=329192
telent
@telent: Anda tidak boleh menggunakan nullmailer dalam skenario seperti itu.
Terima kasih! Panduan konfigurasi di troubleshooters.com/linux/nullmailer mencatat masalah keamanan dengan nullmailer: itu memaparkan kata sandi pada baris perintah, atau setidaknya digunakan untuk melakukan itu. Percakapan lain mencatat bahwa mstmp membuatnya sedikit kurang jelas bagaimana cara mengirim email daripada nullmailer.
nealmcb
11

IMHO, cara termudah untuk melakukan ini adalah dengan postfix. Anda dapat mengkonfigurasinya sebagai relay keluar ringan dengan perintah-perintah ini:

postconf -e relayhost=other.mailserver.com
postconf -e myorigin=my.domainname.com

Selama server SMTP yang ditentukan dalam relayhosttidak memerlukan otentikasi, memungkinkan Anda untuk menyampaikan atau tujuan yang valid untuk alamat penerima ini akan berfungsi.

The myoriginparameter akan menjadi nama domain default. Jadi, jika Anda mengirim email ke foo, ia akan pergi ke [email protected]. Email yang dikirim oleh bilah pengguna akan berasal dari [email protected].

Jika Anda perlu mengautentikasi dan ingin mendukung TLS, jalankan juga perintah berikut:

postconf -e smtp_tls_security_level=may
postconf -e smtp_sasl_auth_enable=yes
postconf -e smtp_sasl_password_maps=pcre:/etc/postfix/sasl_password_maps

Maka di /etc/postfix/sasl_password_mapsmiliki konten ini:

/./ username:password

Semua email akan dikirim ke relayhost Anda dengan nama pengguna dan kata sandi yang ditentukan.

bahamat
sumber
Mencoba pengaturan ini dan saya mendapatkan kesalahan: "error: jenis kamus yang tidak didukung: pcre"
valentt
1
Instal pcre dan / atau postfix-pcre dan coba lagi.
bahamat
Saya menemukan jawabannya, juga dalam waktu yang berarti, ada dua paket yang hilang, yang pertama adalah postfix-pcre seperti yang Anda katakan, tetapi yang lain aneh - libsasl2-modules. Saya bingung bagaimana libsasl2 dan libsasl2-modules-db diinstal tetapi libsasl2-modules hilang ... Sekarang akhirnya semuanya bekerja. Bisakah Anda menambahkan info penting ini ke jawaban Anda?
valentt
1
Untuk tls, saya juga menggunakan: relayhost=other.mailserver.com:465then smtp_tls_wrappermode=yesand smtp_tls_security_level=encryptbut it berusaha untuk menggunakan pengguna lokal sebagai auth. Saya harus menulis ulang pengguna auth entah bagaimana.
tu-Reinstate Monica-dor duh
"Selama server SMTP yang ditentukan dalam relayhost tidak memerlukan otentikasi" -> ok, tapi itu jarang terjadi saat ini. Saran Anda benar, tetapi sebagian besar tidak relevan!
FarO
9

Dengan asumsi Anda memerlukan program yang dapat Anda jalankan dari shell seperti sendmail (8), mungkin MSMTP akan sesuai dengan kebutuhan Anda? Ia dapat terhubung ke server SMTP jarak jauh dan mengirim surat seperti stdin, seperti sendmail.

Michael Ratanapintha
sumber
Saya menggunakan MSMTP untuk ini, berfungsi dengan baik dan konfigurasinya sangat sederhana.
dsp
Saya sangat senang Anda merekomendasikan ini. Saya sudah mencari sesuatu seperti itu cukup lama sekarang. konfigurasi sendmail terlalu berbeda untuk kebutuhan saya.
ixtmixilix
4

ESMTP adalah server transfer surat hanya relai yang dapat berfungsi untuk aplikasi Anda.

moberley
sumber
1
proyek tampaknya sudah mati pada 2009
SHernandez
2

Anda mungkin menemukan sSMTP cocok untuk kebutuhan Anda. Baca artikel ini tentangnya dan batasannya.

Jujur saja, saya tidak akan terlalu stres tentang menginstal postfix atau exim, bahkan jika itu hanya untuk mengirim email.

Evan
sumber
1
+1 untuk ssmtp, -1 untuk komentar yang tidak perlu di sendmail, serta merekomendasikan menggunakan mta penuh, yang jauh lebih sulit untuk dilakukan dengan benar. server surat yang tidak terkonfigurasi dan dikelola dengan baik membuat kehidupan kami sebagai admin admin tetap kacau.
@hop: Saya tidak setuju pada kedua hal. sendmail sangat buruk. Selain itu, exim misalnya adalah default Debian, dan sangat mudah digunakan. Mungkin postfix, tapi saya belum pernah menggunakannya.
Faheem Mitha
1

Secara teknis Anda tidak memerlukan server email pada host Anda, yang Anda butuhkan (dan mungkin sudah miliki) adalah smtp-client (atau MUA) yang dapat terhubung ke Server SMTP perusahaan Anda (yang bisa di mana saja Anda dapat terhubung ke .)

Bergantung pada Aplikasi (dan bahasa pemrogramannya ditulis) ada banyak cara berbeda untuk aplikasi Anda untuk terhubung ke 'the' SMTP Server di jaringan Anda.

Biasanya, dengan PHP atau Python, ada file konfigurasi dengan aplikasi untuk menentukan "SMTP" Server (yang bisa di host Anda atau di tempat lain di jaringan Anda.) Jika Anda sudah memiliki server mail di jaringan, maka cukup arahkan konfigurasi ke server itu.

Jika tidak ada opsi lain, aplikasi dapat menghasilkan pesan email ke output standar yang dapat Anda proses dengan sesuatu seperti:

listoftargets = "[email protected] [email protected]" echo "Konten Uji" | mail -s "Subjek Uji" $ listoftargets

Pada beberapa sistem, sudah ada server email minimal untuk pengiriman saja.

Sam T.

samt
sumber
Saya memiliki sejumlah besar server di cloud, dan saya benar-benar ingin masing-masing memiliki server SMTP keluar mereka sendiri, daripada bergantung pada apa pun yang eksternal. Dengan cara itu, jika server SMTP jauh saya turun, itu tidak mempengaruhi setiap server.
FlappySocks
1) jika Anda membiarkan PHP atau Python melakukan bagian smtp, Anda harus melakukan semua pekerjaan (antrian, penanganan kesalahan) yang akan ditangani oleh MTA. 2) pada akhirnya Anda menentang apa yang Anda katakan di awal
Beberapa aplikasi linux disiapkan untuk diharapkan mailatau sendmaildinamai executable. Pemberitahuan sistem. Itulah intinya bukan? Untuk hal lain tidak ada kendala.
Craig Hicks