python发邮件--中文附件报错问题

# -*- coding: utf-8 -*-
"""
Created on Thu Apr 11 14:01:30 2019

@author: zhang-peng
"""

#coding: utf-8  

import os
import sys
import smtplib
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication 
 
if __name__ == '__main__':
        fromaddr = '183********@163.com'
        password = '***'
        toaddrs = [''183********@163.com']
 
        content = '''
        发送excel文件时,编码需要改为gbk,不然会报错
        554, b'DT:SPM 163 smtp8
                  '''
        textApart = MIMEText(content)
        path = r'D:/zp/uzfacy/2019-04'
        
        
        imageFile = '捕获1.PNG'
        imageApart = MIMEImage(open(os.path.join(path, imageFile), 'rb').read(), imageFile.split('.')[-1])
        imageApart.add_header('Content-Disposition', 'attachment', filename=imageFile)
            
        
        pdfFile = '***04110948.xls'
        pdfApart = MIMEText(open(os.path.join(path, pdfFile), 'rb').read(), 'base64', 'gbk')
        pdfApart.add_header('Content-Disposition', 'attachment', filename=('gbk','',pdfFile))
    
 
        zipFile = '四月打包.rar'
        zipApart = MIMEApplication(open(os.path.join(path, pdfFile), 'rb').read())
        zipApart.add_header('Content-Disposition', 'attachment', filename=zipFile)
 
        m = MIMEMultipart()
        m.attach(textApart)
        m.attach(imageApart)
        m.attach(pdfApart)
        m.attach(zipApart)
        m['Subject'] = '标题'
 
        try:
            server = smtplib.SMTP('smtp.163.com')
            server.login(fromaddr,password)
            server.sendmail(fromaddr, toaddrs, m.as_string())
            print('success')
            server.quit()
        except smtplib.SMTPException as e:
            print('error:',e) #打印错误

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值