smtproutes is een lichtgewicht SMTP-server gebouwd op de top van Secure-SMTPD.
Het is wat je zou krijgen als Sinatra en SMTP had een baby.
Routes
Routes worden aangegeven door middel van een reguliere expressie die in de route kwarg.
van smtproutes importeren Route
klasse ExampleRoute (Route):
& Nbsp; def my_route (zelf, route = r'myroute @ * '.):
& Nbsp; druk self.mailfrom.email
Wanneer aangeroepen een route zal de toegang tot de volgende instantie variabelen hebben:
- Self.message de ontleed e-mailbericht.
- Self.mailfrom een contact voorwerp aanduiden wie het bericht is ontvangen uit.
- Self.tos een array van contact objecten gewonnen uit het veld.
- Self.ccs een array van contact voorwerpen uit het veld CC.
- Self.bccs een array van contact voorwerpen uit het veld BCC.
Elke naam die worden vermeld in de route regex zal Kinderzitjes als bijvoorbeeld variabelen zijn.
klasse ExampleRoute (Route):
& Nbsp; def open_route (zelf, route = r '(popen) @ (P. *)?'):
& Nbsp; print "% s op% s stuurde het bericht: n n% s"% (
& Nbsp; self.prefix,
& Nbsp; self.suffix,
& Nbsp; self.message
& Nbsp;)
Afzender Authentication
E-mail is kwetsbaar voor spoofing-aanvallen. Smtproutes kunt u een authenticatie object te beschermen tegen deze te verstrekken.
Een authenticatie-klasse kan worden verstrekt in de sender_auth kwarg van een route.
def spf_route (zelf, route = r '(Pspf) @ (P. *)?', sender_auth = SPFAuth):
& Nbsp; print "% s op% s stuurde het bericht: n n% s"% (
& Nbsp; self.prefix,
& Nbsp; self.suffix,
& Nbsp; self.message
& Nbsp;)
Momenteel zijn de volgende afzender verificatiemethoden worden ondersteund:
- DKIMAuth verifieert met behulp van een DKIM handtekening.
- SPFAuth verifieert met behulp van een SPF-record.
- GmailSPFAuth verifieert tegen Google's SPF-records, ongeacht de afzender (handig voor Google Apps).
U kunt meerdere authenticatie benaderingen in de sender_auth kwarg eventuele langs de route zal worden genoemd:
def google_apps_spf_route (zelf, route = r '(Pspf_google) @ (P. *)?', sender_auth = [SPFAuth, GmailSPFAuth]):
& Nbsp; print "% s op% s stuurde het bericht: n n% s"% (
& Nbsp; self.prefix,
& Nbsp; self.suffix,
& Nbsp; self.message
& Nbsp;)
Het runnen van een server
De server is een dunne abstractie op de top van Secure-SMTPD (https://github.com/bcoe/secure-smtpd) vandaar:
- SSL wordt ondersteund.
- Basic SMTP-verificatie wordt ondersteund.
Maak een instantie van de server met dezelfde opties die zijn opgegeven in de beveiligde-smtpd project.
van smtproutes import Server
server = Server (('0.0.0.0', 25), Geen)
Zodra de server is gemaakt, kunt u routes inschrijven bij het en start het draaien:
van example_route import ExampleRoute
server.add_route (ExampleRoute)
server.start ()
. De server zal nu luisteren op poort 25 voor binnenkomende SMTP-berichten
Eisen
- Python
Reacties niet gevonden