De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.


Envio de emails utilizando uma lista csv e anexando arquivo em Python

Colaboração: Felipe Santos

Data de Publicação: 05 de agosto de 2015

Recentemente publiquei uma dica no site: "Automatizando o envio de emails utilizando Python", devido a uma dúvida de um leitor do Dicas-L resolvi a postar outro código pra vocês.

O script seria basicamente para ler uma lista CSV de emails e enviar um email para todos contantos contidos nela, juntamente com um arquivo anexo.

  #!/usr/bin/python
  import smtplib
  from email.MIMEMultipart import MIMEMultipart
  from email.MIMEBase import MIMEBase
  from email.MIMEText import MIMEText
  from email import Encoders
  import os
  import csv
  texto_msg = '''
  Presado usuario(a) %(nome)s !!!
  Este e um email enviado por um script PYTHON =D, seu email deve ficar aqui!!
  '''
  user = "seuemail@gmail.com"
  pwd = "sua_senha"
  anexo = "/home/felipe/anexo.txt" #Caminho do anexo a ser enviado
  def process(row, to, subject, text, attach):
  msg = MIMEMultipart()
  msg['From'] = user
  msg['To'] = row[0]
  msg['Subject'] = subject
  msg.attach(MIMEText(text))
  part = MIMEBase('application', 'octet-stream')
  part.set_payload(open(attach,'rb').read())
  Encoders.encode_base64(part)
  part.add_header('Content-Disposition',
  'attachment; filename="%s"' % os.path.basename(attach))
  msg.attach(part)
  mailServer = smtplib.SMTP("smtp.gmail.com", 587)
  mailServer.ehlo()
  mailServer.starttls()
  mailServer.ehlo()
  mailServer.login(user, pwd)
  mailServer.sendmail(user, to, msg.as_string())
  mailServer.close()
  if __name__ == '__main__':
  lista = open('/home/felipe/lista.csv') #Caminho da lista de email CSV
  csv_reader = csv.reader(lista)
  for row in csv_reader:
  process(row, user,"Enviando Email com Python", texto_msg % {'nome':row[1]}, anexo)
  lista.close()

A lista de email está no seguinte formato:

  "email1@meuemail.com","Felipe"
  "email2@meuemail.com","Maria"
  "email3@meuemail.com","Joao"
  .
  .
  .

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de Felipe Santos