[gitec] Script para tratar bouces de newsletter

Fabiano Weimar dos Santos xirumacanudo em gmail.com
Sexta Dezembro 3 11:22:26 BRST 2010


Fica a vontade :)

Se quiserem integrar/empacotar com o SAAP também, sem problema.

-- Fabiano Weimar


Em 3 de dezembro de 2010 11:17, Angelo Marcondes de Oliveira Neto <
angelomarcondes em gmail.com> escreveu:

> Fabiano,
>
> Muito legal esta implementação, podemos postar a mesma no colab?
>
> Abraços
>
> Angelo Marcondes De Oliveira Neto
> http://uaigeek.blogspot.com
> angelomarcondes em gmail.com
>
> Em dez 3, 2010 9:38 AM, "Fabiano Weimar dos Santos" <
> xirumacanudo em gmail.com>escreveu:
>
>
> Oi Pessoal,
>
> no encontro do gitec, durante a apresentação sobre o SAAP, eu falei que
> tinha um script que ajudava a tratar as mensagens que d√£o bounce quando
> enviamos uma newsletter. O script parte do pressuposto que a newsletter é
> enviada com um endereço from que, no meu caso, acaba caindo em um label do
> gmail. Eu acabei adotando essa estratégia pq é fácil criar uma conta no
> gmail para coletar lixo de newsletter, escrever regras que filtram as
> mensagens que essa conta recebe e atribuir um label a todas aquelas
> mensagens que acreditamos ser um erro (como uma tentativa de envio de
> newsletter para um endereço de e-mail que não existe ou que está com a caixa
> postal cheia, por exemplo).
>
> O script é trivial: ele usa o protocolo IMAP, conecta-se no servidor de
> e-mail, abre o label (que do ponto de vista do IMAP é uma pasta), baixa as
> mensagens e extrai todos os endereços de e-mail que são potencialmente
> problemáticos. Depois, basta usar a saída desse script para limpar a lista
> de e-mails que é utilizada para fazer o envio da newsletter.
>
> Segue o script:
>
> import imaplib
>
> USUARIO = "xxx"
> SENHA = "xxx"
> LABEL = "xxx"
> IGNORAR = [USUARIO]
>
> def extrai_emails(num, msg):
>  for l in msg.split('\n'):
>    l = l.strip()
>    if l.startswith('To: '):
>      emails = [e.strip() for e in l[4:].split(',') if e.strip() not in
> IGNORAR]
>      if emails:
>        print "\n".join(emails)
>
> def run():
>  M = imaplib.IMAP4_SSL("imap.gmail.com")
>  M.login(USUARIO, SENHA)
>  M.select(LABEL)
>  typ, data = M.search(None, 'ALL')
>  for num in data[0].split():
>    typ, data = M.fetch(num, '(RFC822)')
>    extrai_emails(num, data[0][1])
>  M.close()
>  M.logout()
>
> if __name__ == '__main__':
>  run()
>
> Espero que seja √ļtil :)
>
> --
> Fabiano Weimar dos Santos [Xiru]
> http://www.pytown.com
> Blog: http://blog.xiru.org
> Twitter: xiru
> Buzz: xirumacanudo
> Skype: xirumacanudo
> MSN: xirumacanudo
>
>
>
>
> --
> Site da Comunidade GITEC:
> http://colab.interlegis.gov.br/wiki
>
> Regras de participação:
> http://colab.interlegis.gov.br/wiki/ComoParticiparComunidade
>
> Para pesquisar o histórico da lista visite:
> http://colab.interlegis.gov.br/wiki/PesquisaListas
>
> Para administrar sua conta visite:
> http://listas.interlegis.gov.br/mailman/listinfo/gitec
>
>
> --
> Site da Comunidade GITEC:
> http://colab.interlegis.gov.br/wiki
>
> Regras de participação:
> http://colab.interlegis.gov.br/wiki/ComoParticiparComunidade
>
> Para pesquisar o histórico da lista visite:
> http://colab.interlegis.gov.br/wiki/PesquisaListas
>
> Para administrar sua conta visite:
> http://listas.interlegis.gov.br/mailman/listinfo/gitec
>



-- 
Fabiano Weimar dos Santos [Xiru]
http://www.pytown.com
Blog: http://blog.xiru.org
Twitter: xiru
Buzz: xirumacanudo
Skype: xirumacanudo
MSN: xirumacanudo
-------------- Průxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://listas.interlegis.gov.br/pipermail/gitec/attachments/20101203/0528f527/attachment.htm 


Mais detalhes sobre a lista de discuss„o GITEC