SMTPRoutes är en lätt SMTP-server byggd ovanpå Secure-smtpd.
Det är vad du skulle få om Sinatra och SMTP hade en baby.
Rutter
Rutter specificeras via ett regex tillhandahålls i rutten kwarg.
från smtproutes importera Rutt
klass ExampleRoute (Route):
& Nbsp; def my_route (själv, route = r'myroute @ * ".):
& Nbsp; print self.mailfrom.email
När åberopas en rutt kommer att ha tillgång till följande instansvariabler:
- Self.message den tolkas e-postmeddelandet.
- Self.mailfrom en kontaktobjekt som anger vem meddelandet mottogs från.
- Self.tos en rad kontaktobjekt som extraherats från fältet.
- Self.ccs en rad kontaktobjekt extraherade från CC fältet.
- Self.bccs en rad kontaktobjekt extraherade från BCC fältet.
Eventuella namngivna grupper som anges i rutten regex blir availble som instansvariabler.
klass ExampleRoute (Route):
& Nbsp; def open_route (själv, route = r '(popen) @ (P. *)? "):
& Nbsp; print "% s på% s skickade meddelandet: n n% s"% (
& Nbsp; self.prefix,
& Nbsp; self.suffix,
& Nbsp; self.message
& Nbsp;)
Avsändare Authentication
E-post är sårbar för spoofing attacker. SMTPRoutes kan du ge en autentiserings objekt för att skydda mot dessa.
En verifieringsklass kan tillhandahållas i sender_auth kwarg av en rutt.
def spf_route (själv, route = r '(Pspf) @ (P. *)? ", sender_auth = SPFAuth):
& Nbsp; print "% s på% s skickade meddelandet: n n% s"% (
& Nbsp; self.prefix,
& Nbsp; self.suffix,
& Nbsp; self.message
& Nbsp;)
För närvarande följande avsändare autentiseringsmetoder stöds:
- DKIMAuth autentiserar med hjälp av en DKIM signatur.
- SPFAuth autentiserar använder en SPF-post.
- GmailSPFAuth autentiserar mot Googles SPF-poster, oavsett avsändare (användbart för Google Apps).
Du kan ge flera metoder autentiserings i sender_auth kwarg, om någon passerar sträckan kommer att kallas:
def google_apps_spf_route (själv, route = r '(Pspf_google) @ (P. *)? ", sender_auth = [SPFAuth, GmailSPFAuth]):
& Nbsp; print "% s på% s skickade meddelandet: n n% s"% (
& Nbsp; self.prefix,
& Nbsp; self.suffix,
& Nbsp; self.message
& Nbsp;)
Köra en server
Servern är en tunn abstraktion ovanpå Secure-smtpd (https://github.com/bcoe/secure-smtpd) därmed:
- SSL stöds.
- Grundläggande SMTP-autentisering stöds.
Skapa en instans av servern med samma alternativ som anges i den säkra-smtpd projekt.
från smtproutes import Server
server = server (("0.0.0.0", 25), Inga)
När servern har skapats kan du registrera vägar med det och börja den igång:
från example_route import ExampleRoute
server.add_route (ExampleRoute)
server.start ()
. Servern kommer nu att lyssna på port 25 för inkommande SMTP-meddelanden
Krav :
- Python
Kommentarer hittades inte