SMTPRoutes é um servidor SMTP leve construído em cima do Secure-smtpd.
É o que você obteria se Sinatra e SMTP teve um bebê.
Rotas
As rotas são especificadas através de um regex fornecido no kwarg rota.
de smtproutes importar Route
classe ExampleRoute (Rota):
& Nbsp; def my_route (self, rota = r'myroute @ * '.):
& Nbsp; self.mailfrom.email impressão
Quando chamado a rota terá acesso às seguintes variáveis de instância:
- Self.message a mensagem de e-mail analisado.
- Self.mailfrom um objeto de contato indicando que a mensagem foi recebida.
- Self.tos um array de objetos de contato extraídos do campo Para.
- Self.ccs um array de objetos de contato extraídos do campo CC.
- Self.bccs um array de objetos de contato extraídos do campo BCC.
Quaisquer grupos nomeados especificados no regex percurso será availble como variáveis de instância.
classe ExampleRoute (Rota):
& Nbsp; def open_route (self, rota = r '(Popen) @ (P. *)? "):
& Nbsp; print "% s em% s enviou a mensagem: n n% s"% (
& Nbsp; self.prefix,
& Nbsp; self.suffix,
& Nbsp; self.message
& Nbsp;)
Authentication Sender
Email é vulnerável a ataques de spoofing. SMTPRoutes permite que você fornecer um objeto de autenticação para proteger contra estes.
Uma classe de autenticação pode ser fornecida na kwarg sender_auth de um percurso.
def spf_route (self, rota = r '(PSPF) @ (P. *)?', sender_auth = SPFAuth):
& Nbsp; print "% s em% s enviou a mensagem: n n% s"% (
& Nbsp; self.prefix,
& Nbsp; self.suffix,
& Nbsp; self.message
& Nbsp;)
Atualmente são suportados os seguintes métodos de autenticação de remetente:
- DKIMAuth autentica utilizando a assinatura DKIM.
- SPFAuth autentica usando um registro SPF.
- GmailSPFAuth autentica contra registos SPF do Google, independentemente do remetente (útil para o Google Apps).
Você pode fornecer múltiplas abordagens de autenticação no kwarg sender_auth, se for o caso passar a rota será chamado:
def google_apps_spf_route (self, rota = r '(Pspf_google) @ (P. *)?', sender_auth = [SPFAuth, GmailSPFAuth]):
& Nbsp; print "% s em% s enviou a mensagem: n n% s"% (
& Nbsp; self.prefix,
& Nbsp; self.suffix,
& Nbsp; self.message
& Nbsp;)
executando um servidor
O servidor é uma abstração fina no topo do Secure-smtpd (https://github.com/bcoe/secure-smtpd), portanto:
- SSL é suportado.
- Autenticação SMTP básico é suportado.
Crie uma instância do servidor usando as mesmas opções especificadas no projeto seguro-smtpd.
de smtproutes importação Servidor
server = Server (('0.0.0.0', 25), None)
Uma vez que o servidor é criado, você pode registrar rotas com ele e iniciá-lo em execução:
de example_route importação ExampleRoute
server.add_route (ExampleRoute)
server.start ()
. O servidor será agora escutando na porta 25 para mensagens SMTP de entrada
Requisitos :
- Python
Comentários não encontrado