gpt4 book ai didi

Python邮件: encoded attachments are truncated

转载 作者:行者123 更新时间:2023-11-30 23:50:23 25 4
gpt4 key购买 nike

我在 python 脚本中使用以下函数发送带有两个附件的电子邮件:

import smtplib
from email.MIMEMultipart import MIMEMultipart
from email.MIMEBase import MIMEBase
from email.MIMEText import MIMEText
from email.Utils import COMMASPACE, formatdate
from email import Encoders

...

def sendMail(sender_name, to, subject, text, files=None,server="localhost"):
assert type(to)==list
if files:
assert type(files)==list
print "Files: ",files
fro = sender_name

msg = MIMEMultipart()
msg['From'] = fro
msg['To'] = COMMASPACE.join(to)
msg['Date'] = formatdate(localtime=True)
msg['Subject'] = subject

msg.attach( MIMEText(text) )

if files:
for file in files:
# ************** File attaching - Start **************
part = MIMEBase('application', "octet-stream")
part.set_payload( open(file,"rb").read() )
Encoders.encode_base64(part)
part.add_header('Content-Disposition', 'attachment; filename="%s"' % os.path.basename(file))
msg.attach(part)
# ************** File attaching - End **************

server.set_debuglevel(1)
server.ehlo()
server.starttls()
server.ehlo()
server.sendmail(fro, to, msg.as_string())
server.quit()

我收到邮件,附件也在那里,但由于某种原因,它们被截断了一点。我的猜测是我在编码过程中遗漏了一些东西。

例如:

附件1:原文件字节数为1433902,新文件字节数为1433600

附件2:原文件字节数为2384703,新文件字节数为2383872

有什么想法吗?

最佳答案

发现问题了。结果我尝试在写入过程的缓冲区完全刷新之前发送文件。

所以,这是一个同步问题,而不是编码问题。

抱歉,感谢大家的帮助!

关于Python邮件: encoded attachments are truncated,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7172700/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com