Tüm postaları yakalamak için sahte bir SMTP sunucusu nasıl kurulur?


50

Posta göndermek yerine, esasen RFC'ye uyan bir smtp servisi arıyorum, sadece bir dosyaya kaydeder

[date] sent mail to <address>

Ya da her neyse. Bunu yaklaşık yarım saat içinde python'da ihtiyacım olan asgari işlevsellik ile birlikte başarabilirim, sanırım ama daha iyi çalışan bir proje varsa, onu kullanmayı tercih ederim.

İhtiyaç duyma nedeni, gönderilmesi gereken postanın 7'sini * göndermeye devam eden bir uygulamada hata ayıklamadır.

EDIT: Ve zaten istedi: https://stackoverflow.com/questions/1006650/dummy-smtp-server-for-testing-apps-that-send-email


Evet, bu soru stackoverflow'ta cevaplandı, ancak oradaki python tabanlı cevabı görmedim.
BitwiseMan

Bu, stackoverflow'ta da cevaplandırılmıştır: stackoverflow.com/questions/48653699/…
realbart

Yanıtlar:


58

Bunun etrafında yatan piton varsa, SMTP konuşmasını stdout'a yazacaktır.

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

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


Onu geri alıyorum, HTML e-postalarını destekliyor.
HTTP500,

2
hala hata ayıklamak için en iyi yol!
MarZab

Starttls için destek yok :(
Att Righ

1
@AtRt smtplib TLS uygulandı ancak bunu kullanmak bu kadar basit olmayacak. Soruyu gönder; belki birisinin zaten bir senaryosu vardır?
John Mee

11

smtp-sinkPostfix'in bir parçası olana bir göz atmalısınız . Çalışması için Postfix'i çalıştırmanız gerekmez. Sadece çalıştırılabilir olması için kurun. İhtiyacınız olan her şey komut satırı parametreleri ile yapılandırılabilir:

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


Teşekkürler mailq. Bu tam olarak benim peşimde olan şey.
richo,

8

Mailcatcher denilen bir yakut mücevher de vardır .

E-postaları doğrudan tarayıcınızdan entegre web arayüzü üzerinden okuyabilirsiniz, ana sayfalarından bir ekran görüntüsü aşağıdadır.

Mailcatcher arayüzü


1
Şu anda mailcatcher kullanıyoruz, çok fazla çöküyor.
Jacob Evans

6

Geliştirme ve hazırlama ortamında http://mailtrap.io web servisini kullanıyoruz . Platformdan bağımsızdır ve kendi SMTP'nizi çalıştırmanızı gerektirmez.

Sunduğu:

  • Tüm e-postalar tek bir yerde
  • Dev ekibinin gelen kutusuna erişimi paylaşıldı
  • E-postaları analiz etmek için geliştirici araçları
  • Esnek yapılandırma

Bu harika ve yaptığımdan çok daha sağlam! Teşekkürler.
richo,

(Şimdilik) cömert bir ücretsiz plan sunmalarını seviyorum.
David,

3

smtp4dev benim için iyi çalıştı. (Yalnızca Windows)


Sadece bu küçük aracı kurdum ve kullandım. İhtiyaçlarım için mükemmel (java ve hoş bir kullanıcı arayüzü yok)
Nick.McDermaid


2

Feragatname: Bu gecikmiş bir cevap, ancak gerçekten gelecekteki izleyicilere yardımcı olacağına inanıyorum. Ayrıca bu ürün üzerinde çalıştığımı da not edin.

Bu sorunu çözmek için Mailosaur'u yaptık . O zamandan beri SMTP'nin yanı sıra test e-posta adreslerini eklemek için geliştirdik.



1

Hemen hemen herhangi bir smtp servisini doldurdum ve sonucu biraz kovaya gönderdim!


Yine de toplu e-postalardan ve canlı müşteri verilerinden söz ediyorum. İntertronları postayla doldurmayacağım konusunda pozitif olmalıyım.
richo

Python'un smtpd.SMTPServer sınıfını uzatarak kapattım, projeyi bir hafta kadar önce kamuya açıklayacağım ve ondan memnun kaldığımda (httpd test paketi ile donatıyorum). Ben geçici olarak suite sdb adını verdim.
richo,

@Richo: Bir SMTP sunucusunun e-posta göndermesini engellemenin birçok yolu vardır - çoğu, giden bağlantıları kapatmanıza veya tüm mesajları yeniden yönlendirmenize izin verir veya 25 numaralı bağlantı noktasına giden bağlantıları engelleyebilirsiniz .... hiç kimse sahte bir posta sunucusu yazarken rahatsız olmaz Bu şekilde davranması için gerçek olanı yapılandırması önemsizdir.
symcbean

@symcbean: Bunların hepsi geçerli noktalar. Şahsen normal posta servisimi durdurmayı, hata ayıklama servisimi başlatmayı, hata ayıklamayı yapmayı ve ardından canlı ortamı yeniden başlatmayı daha kolay buluyorum. Tüm 25 numaralı bağlantı noktasını atmak gibi kludges, daha sonra başka bir şeyin posta göndermesini önler. Yine de yardımın için teşekkürler,
richo

Bunların hiçbiri mantıklı değil, tüm smtp ağ geçitleri, giden canlı e-postaların hiçbirini kaybetmeden size bu tam işlevselliği sağlayacak!
tony roth
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.