补充一点,如果是txt/doc/csv/xls等plain格式的话用email.mime.MIMEApplication去发就行了,但如果是比如pdf/jpg/png等格式发的话,用email.mime.MIMEBase去发,举附件pdf为例:
msg = MIMEApplication()
fp = open(filename,"rb")
file = MIMEBase("application","pdf",filename = filename)
#务必加上必要的头,否则发送后无法正常解码
file.add_header("Content-Disposition","attachment", filename=("gbk","",filename))
file.add_header("Content-ID","<0>")
file.add_header("X-Attachment-Id","0")
file.set_payload(fp.read())
fp.close()
encode_base64(file)
msg.attach(file)
格式对应的第一个头关系如下:
txt text/plain
py text/x-python
gif image/gif
jpg image/pjpeg
png image/x-png
pdf application/pdf
doc application/msword
zip application/x-zip-compressed