【发布时间】:2021-12-30 23:19:48
【问题描述】:
我正在尝试使用 for 循环向多个收件人发送电子邮件,如果在主题或正文中找到“”,则会将其动态替换为收件人姓名。
我正在遍历{"name": "email"} 形式的收件人字典
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
import smtplib
def send(recipients, subject, message):
for name, email in recipients.items():
edited_subject = subject.replace("<>", name)
edited_message = message.replace("<>", name)
mail = MIMEMultipart()
mail['from'] = 'Tomas'
mail['to'] = email
mail['subject'] = edited_subject
mail.attach(MIMEText(edited_message, "plain"))
with smtplib.SMTP(host="smtp.gmail.com", port=587) as smtp:
smtp.ehlo()
smtp.starttls()
smtp.login(username, password)
smtp.send_message(mail)
循环似乎只发送给第一个收件人。
【问题讨论】:
标签: python python-3.x loops email smtplib