【发布时间】:2018-11-19 08:16:03
【问题描述】:
我已经编写了一个代码来向多个收件人发送电子邮件。但是,每个收件人都会收到所有邮件而不是自己的邮件。
数据框:
email content
mark@gmail.com Hi Mark, bla bla
eve@gmail.com Hi Eve, bla bla
john@gmail.com Hi, John bla bla
for content in df['content']:
for email in df['email']:
message = MIMEMultipart()
message['Subject'] = "Subject"
message['From'] = 'my email'
message['Reply-to'] = 'my email'
message['To'] = '{}'.format(email)
text = MIMEText(mail)
message.attach(text)
server = smtplib.SMTP ('smtp.gmail.com',587)
server.ehlo()
server.starttls()
server.login(login, password)
server.sendmail(message['From'], message['To'], message.as_string())
server.quit()
【问题讨论】:
-
您正在迭代两次。一次是内容,一次是电子邮件。基本上,您正在发送内容与电子邮件的所有可能组合。要使用 for 循环执行此操作,只需对所有行迭代一次。看看这个答案:stackoverflow.com/questions/16476924/…
-
感谢@RafaelC!
标签: python pandas email for-loop smtplib