Python Envio de e-mail em massa, lote com lista
Utilizei no exemplo o UV
-- UV INIT
-- UV RUN main.py
main.py
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
# Configurações de conexão SMTP
MAIL_MAILER="smtp"
MAIL_HOST="XXX.com.br"
MAIL_PORT=465
MAIL_USERNAME="[email protected]"
MAIL_PASSWORD="WWWWWWW"
MAIL_ENCRYPTION="ssl"
MAIL_FROM_ADDRESS="[email protected]"
MAIL_FROM_NAME="Veio email daqui"
# Lista de destinatários (exemplo)
cTitulo = "Vai la"
aDest = [
{"Nome": "XXX Rapelli", "Email": "[email protected]"},
{"Nome": "AAA Rapelli", "Email": "[email protected]"},
]
# Corpo do e-mail (modelo)
cMessage = """
Caro(a) {NOME},
Este é um e-mail de teste enviado automaticamente.
Atenciosamente,
"""
def fSendMail():
try:
# Conexão SMTP SSL
with smtplib.SMTP_SSL(MAIL_HOST, MAIL_PORT) as oServer:
oServer.login(MAIL_USERNAME, MAIL_PASSWORD)
for oPessoa in aDest:
cCorpo = cMessage.format(NOME=oPessoa["Nome"])
cMsg = MIMEText(cCorpo, "plain", "utf-8")
cMsg["From"] = formataddr((MAIL_FROM_NAME, MAIL_FROM_ADDRESS))
cMsg["To"] = oPessoa["Email"]
cMsg["Subject"] = cTitulo
try:
oServer.sendmail(MAIL_FROM_ADDRESS, oPessoa["Email"], cMsg.as_string())
print(f"✅ E-mail enviado para {oPessoa['Nome']} <{oPessoa['Email']}>")
except Exception as e:
print(f"❌ Erro ao enviar para {oPessoa['Email']}: {e}")
except Exception as e:
print("Erro ao conectar ao servidor SMTP:", e)
if __name__ == "__main__":
fSendMail()
Gostou? Compartilhe com seus amigos e deixe um comentário! 😎