python 发送带附件的邮件,收到的附件名都变成了tcmime.1774.1903.2076.bin格式,怎么回事呢? 5

#!/usr/bin/envpython#coding=utf-8importsmtplibimportsysfromemail.mime.multipartimport... #!/usr/bin/env python
#coding=utf-8
import smtplib
import sys
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
def sendEmail(sub,content,path):
#收件人/发给谁
mailto_list = ["563290405@qq.com"]
#设置发送邮件的服务器、用户名、口令及邮箱后缀
mail_host = "mail.sf-auto.com"
mail_user = "yaopeiyun"
mail_pass = "woyigeren7799@"
mail_postfix = "sf-auto.com"
#构建附件实例
msg = MIMEMultipart()
#邮件头
me = mail_user+"<"+mail_user+"@"+mail_postfix+">"
msg['Subject'] = sub
msg['From'] = me
msg['To'] = ";".join(mailto_list)
#构造MIMEText对象为邮件显示内容
text = MIMEText(content,_subtype='plain',_charset='gb2312')
msg.attach(text)
#添加附件
f = open(path,'rb')
img = MIMEText(f.read(),'base64','gb2312')
img["Content-Type"] = 'application/octet-stream'
img["Content-Disposition"] = 'attachment,filename="hdrCount.txt"'
f.close()
msg.attach(img)

#发送邮件
try:
mysmtp = smtplib.SMTP()
mysmtp.connect(mail_host)
mysmtp.login(mail_user,mail_pass)
mysmtp.sendmail(me,mailto_list,msg.as_string())
print 'send sucess'
mysmtp.close()
except Exception,e:
print str(e)
if __name__ == '__main__':
sendEmail('test mail','its a python test email','D:\\csgc3000\\var\\log\\netserver.log')
我只需要发送.txt的文件就行
展开
 我来答
百度网友7b9c77d
推荐于2018-03-01
知道答主
回答量:1
采纳率:100%
帮助的人:1006
展开全部
img["Content-Disposition"] = 'attachment,filename="hdrCount.txt"'这行改为:
img["Content-Disposition"] = 'attachment,filename=%s' % string.encode("uff-8")
也就是说对你发送的内容需要进行uft-8编码。
小菜814
2018-05-28
知道答主
回答量:21
采纳率:0%
帮助的人:1.7万
展开全部
img["Content-Disposition"] = 'attachment,filename="hdrCount.txt"'
这句话改为:img["Content-Disposition"] = 'attachment;filename="hdrCount.txt"'
ps:attachment后面是分号不是逗号~细心很重要啊~我也是检查了好久才发现。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xuniuer2014
2014-06-13 · TA获得超过170个赞
知道小有建树答主
回答量:131
采纳率:62%
帮助的人:76.7万
展开全部

如果只是文本文件,可以不用构造MIME对象。

# read the text file
msg = open(your_text_file, 'r').read()

# maybe you need to add some splitter letter 
# at the front and at the end of text file

# here to prepare for smtp connection
mysmtp.sendmail(me, mailto_list,msg)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式