você está aqui: Home  → Arquivo de Mensagens Você sabia que o bitcoin valorizou 102% só em 2020?

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"
.
.
.


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