python 发邮件

用python 发送带zip格式的邮件,邮件发送成功了,但是附件打不开是,代码如下

import smtplib
from email import encoders
from email.mime.base import MIMEBase
from email.mime.multipart import MIMEMultipart

def send_file_zipped(the_file):

themsg = MIMEMultipart()
themsg['Subject'] = the_file
themsg['to'] = 'xxx'
themsg['from'] = 'xxx'
themsg.preamble = the_file
msg = MIMEBase('application', 'zip')
zf = open(the_file + '.zip', 'rb')
msg.set_payload(zf.read())
encoders.encode_base64(msg)
msg.add_header('Content-Disposition', 'attachment',
               filename=the_file + '.zip')
themsg.attach(msg)
themsg = themsg.as_string()

try:
    server = smtplib.SMTP()
    server.timeout = 30
    server.connect('smtp.exmail.qq.com')

    server.login('xxx', 'xxx')
    server.sendmail('xxx', 'xxx', themsg)
    server.quit()
    print '发送成功'
except Exception, e:
    print str(e)

if name == "__main__":

file = '20170305'
send_file_zipped(file)

找了好多方法,都是这个结果,请教各位是哪里出了问题,邮件附件显示如下:

clipboard.png

阅读 3k
1 个回答

你可以试一下我写的这个,用的是新浪邮箱发的,在我这儿是无论什么附件格式都可以发

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题