Bagaimana cara mengatur server SMTP palsu untuk menangkap semua surat?


50

Saya mencari layanan smtp yang pada dasarnya mematuhi RFC, kecuali daripada mengirim surat, cukup log ke file

[date] sent mail to <address>

Atau terserah. Saya bisa bash ini bersama dengan fungsionalitas minimal yang saya butuhkan dalam python dalam waktu sekitar setengah jam saya rasa tetapi jika ada proyek yang ada yang bekerja lebih baik saya lebih suka menggunakannya.

Alasan untuk membutuhkannya adalah debugging aplikasi yang terus mengirim 7 * jumlah surat yang seharusnya.

EDIT: Dan sudah bertanya: https://stackoverflow.com/questions/1006650/dummy-smtp-server-for-testing-apps-that-send-email


Ya, pertanyaan ini dijawab pada stackoverflow, tetapi saya tidak melihat jawaban berdasarkan python di sana.
BitwiseMan

Ini juga dijawab di stackoverflow: stackoverflow.com/questions/48653699/…
realbart

Jawaban:


58

Jika Anda memiliki python yang terbaring di sekitar, ini akan menulis percakapan SMTP ke stdout.

sudo python -m smtpd -n -c DebuggingServer localhost:25

http://docs.python.org/library/smtpd.html#debuggingserver-objects


Saya ambil kembali, itu mendukung email HTML.
HTTP500

2
masih cara terbaik untuk debug!
MarZab

Tidak ada dukungan untuk starttls :(
Att Righ

1
@AttRigh smtplib telah menerapkan TLS tetapi menggunakan itu tidak akan sesederhana ini. Posting pertanyaan; mungkin seseorang sudah memiliki skrip?
John Mee

11

Anda harus melihat smtp-sinkyang merupakan bagian dari Postfix. Anda tidak harus menjalankan Postfix untuk membuatnya berfungsi. Cukup instal untuk memiliki executable. Semua yang Anda butuhkan dapat dikonfigurasi melalui parameter baris perintah:

http://www.postfix.org/smtp-sink.1.html


Terima kasih mailq. Ini kurang lebih persis seperti apa yang saya kejar!
richo

8

Ada juga permata ruby ​​yang disebut mailcatcher .

Anda dapat membaca surel langsung di peramban melalui antarmuka web terintegrasi, ada tangkapan layar dari beranda di bawah.

Antarmuka pengirim surat


1
Saat ini kami menggunakan mailcatcher, terlalu banyak crash.
Jacob Evans

6

Kami menggunakan layanan web http://mailtrap.io dalam lingkungan pengembangan dan pementasan. Ini adalah platform-independen dan tidak mengharuskan Anda untuk menjalankan SMTP Anda sendiri.

Menawarkan:

  • Semua email di satu tempat
  • Akses bersama untuk tim dev ke kotak masuk
  • Alat pengembang untuk menganalisis email
  • Konfigurasi yang fleksibel

Ini hebat dan jauh lebih kuat dari apa yang saya lakukan! Terima kasih.
richo

Saya suka mereka menawarkan paket gratisan yang murah hati (untuk saat ini).
David

3

smtp4dev telah bekerja dengan baik untuk saya. (Khusus Windows)


Saya baru saja menginstal dan menggunakan alat kecil yang mengagumkan ini. Sempurna untuk kebutuhan saya (tidak ada java dan UI yang bagus)
Nick.McDermaid


2

Penafian: Ini adalah jawaban yang terlambat, tapi saya benar-benar percaya itu akan membantu pemirsa di masa depan. Perhatikan juga bahwa saya mengerjakan produk ini.

Kami membangun Mailosaur untuk menyelesaikan masalah yang sebenarnya ini. Kami telah membangunnya untuk menambahkan alamat email pengujian serta SMTP.



1

Saya hanya membayar apa saja layanan smtp kemudian mengirim hasilnya ke ember sedikit!


Saya berbicara tentang email massal, dan dengan data pelanggan langsung yang terlibat. Saya harus yakin bahwa saya tidak akan membanjiri intertron dengan surat.
richo

Saya akhirnya memperluas kelas smtpd.SMTPServer python, saya akan merilis proyek secara publik dalam seminggu atau lebih ketika saya senang dengan itu (saya bundel dengan suite tes httpd yang saya tulis beberapa waktu lalu). Untuk sementara saya menamai suite sdb.
richo

@Richo: ada banyak cara untuk menghentikan server SMTP mengirim email - sebagian besar memungkinkan Anda mematikan koneksi keluar atau mengalihkan semua pesan, atau Anda dapat memblokir koneksi keluar ke port 25 .... tidak ada yang mau repot-repot menulis mailserver dummy whwn itu sepele untuk mengkonfigurasi yang asli untuk berperilaku dengan cara ini.
symcbean

@symcbean: itu semua adalah poin yang valid. Secara pribadi saya merasa lebih mudah untuk menghentikan layanan surat biasa, memulai layanan debug saya, melakukan debugging saya dan kemudian jalankan lagi lingkungan hidup. Kludges suka membuang semua lalu lintas port 25 lalu mencegah hal lain mengirim email. Terima kasih atas bantuannya,
richo

semua ini tidak masuk akal, semua gateway smtp akan memberi Anda fungsi yang tepat ini tanpa kehilangan email langsung yang keluar!
tony roth
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.