【发布时间】:2021-03-11 09:47:26
【问题描述】:
我目前有一个使用 pandas 操作 .csv 文件的脚本。我正在尝试发送带有已修改文件的最新 .csv 版本的 MIMEMultipart 电子邮件,但由于某种原因,电子邮件收件人不断收到我尝试发送的未更改的较旧版本的 .csv。我试图在脑海中理解它,因为 .csv 文件的旧版本在发送之前已被覆盖,但 .csv 的原始版本会发送给收件人。
也许我需要为 smtplib 指定一个路径来获取文件,而不是仅仅给出文件的名称。有没有办法做到这一点,或者有没有其他方法可以解决我的问题?我已经尝试将名称更改为其他名称,以便 smtplib 能够区分旧的 .csv 和新的。
这不起作用,因为文件放在目录中,但我的脚本说新文件不存在
这是我当前的代码:
email_user = 'Bot@gmail.com'
email_password = 'Business101'
email_send = ('myemail@gmail.com', 'myfriendsemail@gmail.com')
subject = 'TOP 5 CONTRACTS'
msg = MIMEMultipart()
msg['From'] = email_user
msg['To'] = ",".join(email_send)
msg['Subject'] = subject
body = 'These are the latest contracts for this week!'
msg.attach(MIMEText(body,'plain'))
filename='CC.csv'
attachment =open(filename,'rb')
part = MIMEBase('application','octet-stream')
part.set_payload((attachment).read())
encoders.encode_base64(part)
part.add_header('Content-Disposition',"attachment; filename= "+filename)
msg.attach(part)
text = msg.as_string()
server = smtplib.SMTP('smtp.gmail.com',587)
server.starttls()
server.login(email_user,email_password)
server.sendmail(email_user,email_send,text)
server.quit()
print("Emailed Recipients")
值得一提的是,这个过程是自动化的,所以脚本是从我的 mac 上的 Unix 可执行文件运行的。
如果您能提供帮助,我将不胜感激!
【问题讨论】:
标签: python pandas csv executable smtplib