Python 重复最后一个附件
我正在尝试使用python smtp库发送电子邮件。一切正常,但我重复了最后一个附件,同时尝试发送两个附件,最后一个附件重复了三个。我正在尝试解决这个问题,但无法解决。以下是我的邮件撰写函数代码片段:Python 重复最后一个附件,python,email,python-2.7,email-attachments,smtplib,Python,Email,Python 2.7,Email Attachments,Smtplib,我正在尝试使用python smtp库发送电子邮件。一切正常,但我重复了最后一个附件,同时尝试发送两个附件,最后一个附件重复了三个。我正在尝试解决这个问题,但无法解决。以下是我的邮件撰写函数代码片段: def create_email_message(sender_address, recipient_address, subject, body, filesin=[]): ''' Creates a ready to go email message along with th
def create_email_message(sender_address, recipient_address, subject, body, filesin=[]):
'''
Creates a ready to go email message along with the headers.
@param: filesin
A list of tuples. Example:
[(file1_name,file1_data),(file2_name,file2_data),.......]
'''
msg = MIMEMultipart('alternative')
msg['Subject'] = "%s" % Header(subject, 'utf-8')
msg['From'] = sender_address
msg['To'] = recipient_address
htmlpart = MIMEText(body, 'html', 'UTF-8')
msg.attach(htmlpart)
for file_obj in filesin:
data = file_obj[1]
name = file_obj[0]
attach_obj = MIMEBase("application", "octet-stream")
attach_obj.set_payload(data)
Encoders.encode_base64(attach_obj)
attach_obj.add_header('Content-Disposition', 'attachment',
filename=name)
msg.attach(attach_obj)
return msg.as_string()
filesin参数是一个元组,如函数定义中所示。最奇怪的是,当我查看原始电子邮件时,gmail只显示两个内容处置标题。无法理解为什么重复上一个附件
注意。不确定这是否是问题的原因,但您可能需要修复如何定义
filesin
,cf的默认值,因为我自己正在传递filesin的值;我猜你共享的好链接不在这里的图片中。但是,谢谢你的好东西。你如何生成filesin
变量?你能把它粘贴到这里吗?我没能在你的代码片段中发现任何明显的错误(除了已经提到的filesin
)的默认值。最后我把:msg=MIMEMultipart(“替代”)改为msg=MIMEMultipart(),错误得到了修复,但为什么?