Python 重复最后一个附件

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

我正在尝试使用python smtp库发送电子邮件。一切正常,但我重复了最后一个附件,同时尝试发送两个附件,最后一个附件重复了三个。我正在尝试解决这个问题,但无法解决。以下是我的邮件撰写函数代码片段:

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(),错误得到了修复,但为什么?