smtproutes to lekki serwer SMTP zbudowany na bezpiecznej-smtpd.
To, co można dostać, jeśli Sinatra i SMTP urodziła dziecko.
Trasy
Trasy są określone poprzez regex przewidzianego w kwarg trasy.
z smtproutes importować trasy
Klasa ExampleRoute (Trasa):
& Nbsp; def my_route (self, trasa = r'myroute @ * ".):
& Nbsp; wydruku self.mailfrom.email
Wywołany trasa będzie mieć dostęp do następujących zmiennych instancji:
- Self.message przeanalizowany wiadomość e-mail.
- Self.mailfrom obiektu kontakt ze wskazaniem, który odebrany został od.
- Self.tos tablicę obiektów kontaktowych pochodzących z polu.
- Self.ccs tablicę obiektów kontaktowych pochodzących z pola DW.
- Self.bccs tablicę obiektów kontaktowych pochodzących z pola UDW.
Wszelkie wymienione grupy określone w regex trasy będą one dostępne jako zmienne instancji.
Klasa ExampleRoute (Trasa):
& Nbsp; def open_route (self, trasa = r '(Popen) @ (P. *)? "):
& Nbsp; print "% s% s wysłał wiadomość: n n% s"% (
& Nbsp; self.prefix,
& Nbsp; self.suffix,
& Nbsp; self.message
& Nbsp;)
Uwierzytelnianie nadawcy
E-mail jest podatny na ataki spoofing. Smtproutes pozwala na zapewnienie przedmiotu uwierzytelniania w celu ochrony przed nich.
Klasa uwierzytelniania może być dostarczone w sender_auth kwarg z trasy.
def spf_route (self, trasa = r '(Pspf) @ (P. *)? ", sender_auth = SPFAuth):
& Nbsp; print "% s% s wysłał wiadomość: n n% s"% (
& Nbsp; self.prefix,
& Nbsp; self.suffix,
& Nbsp; self.message
& Nbsp;)
Obecnie obsługiwane są następujące metody uwierzytelniania nadawcy:
- DKIMAuth uwierzytelnia przy użyciu podpisu DKIM.
- SPFAuth uwierzytelnia przy użyciu rekordu SPF.
- GmailSPFAuth uwierzytelnia przeciwko SPF Google, niezależnie od nadawcy (przydatne dla Google Apps).
Można podać wiele metod uwierzytelniania w sender_auth kwarg, jeśli przejdzie trasa będzie nazwane:
def google_apps_spf_route (samodzielne trasy = r '(Pspf_google) @ (P. *)? ", sender_auth = [SPFAuth, GmailSPFAuth]):
& Nbsp; print "% s% s wysłał wiadomość: n n% s"% (
& Nbsp; self.prefix,
& Nbsp; self.suffix,
& Nbsp; self.message
& Nbsp;)
Uruchamianie Server
Serwer jest cienka abstrakcji na górze Secure-smtpd (https://github.com/bcoe/secure-smtpd) stąd:
- SSL jest obsługiwane.
- Podstawowe uwierzytelnianie SMTP jest obsługiwany.
Tworzenie instancji serwera przy użyciu tych samych opcji określonych w projekcie bezpieczne-smtpd.
z smtproutes importu Server
Serwer serwer = (("0.0.0.0", 25), Brak)
Gdy serwer jest tworzony, możesz zarejestrować trasy z nim i uruchomić go w ruchu:
z example_route importu ExampleRoute
server.add_route (ExampleRoute)
server.start ()
. Serwer będzie teraz nasłuchuje na porcie 25 dla przychodzących wiadomości SMTP
Wymagania :
- Python
Komentarze nie znaleziono