【发布时间】:2020-08-28 10:26:45
【问题描述】:
我编写了一个代码来使用 Python 向多个用户发送带有附件的邮件。因此,代码将访问 csv 文件,获取电子邮件地址和相应的 excel 文件并发送带有附件的邮件。
此代码运行良好,但要求已更改。新要求是,我需要将多个文件附加到一个收件人(不能发送多封邮件)。例如,我需要附上 TEST.pdf 和另一个 TEST123.pdf 文件并发送到 test1@hotmail.com(请参考图片)。
我已尽力而为,但代码中不断出现错误。有人可以帮我解决这个问题吗?
我的 Python 代码
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email import encoders
import pandas as pd
e = pd.read_csv("C:\\Users\\Hp-Pc\\Desktop\\mail.csv")
server = smtplib.SMTP_SSL('smtp.gmail.com', 465)
server.login("email", "pw")
body = ("""
Hi There
Please refer attachment
Thanks & Regards
""")
subject = ["PDF"]
fromaddr='email'
for index, row in e.iterrows():
print (row["Emails"]+row["PDF"])
msg = MIMEMultipart()
msg['From'] = fromaddr
msg['Subject'] = row["PDF"]
msg.attach(MIMEText(body, 'plain'))
filename = row["PDF"]
toaddr = row["Emails"]
attachment = open(row["PDF"], "rb")
part = MIMEBase('application', 'octet-stream')
part.set_payload((attachment).read())
encoders.encode_base64(part)
part.add_header('Content-Disposition', "attachment; filename= %s" % filename)
msg.attach(part)
text = msg.as_string()
server.sendmail(fromaddr, toaddr, text)
print("Emails sent successfully")
server.quit()
【问题讨论】: