python 给 qq 发送邮件 excel 附件无法识别,且乱码。如何解决?

2015-11-17 02:09:22 +08:00
 meloncrashed
...
# attachment
mimetype, encoding = guess_type('test.xlsx')
print(mimetype, encoding)
mimetype = mimetype.split('/', 1)
print(mimetype)
fp = open('test.xlsx', 'rb')
attachment = MIMEBase(mimetype[0], mimetype[1])
attachment.set_payload(fp.read())
fp.close()
encoders.encode_base64(attachment)
attachment.add_header('Content-Disposition', 'attachment', filename='test.xlsx')
msg.attach(attachment)
...
5042 次点击
所在节点    Python
14 条回复
FrankFang128
2015-11-17 09:18:17 +08:00
zip
meloncrashed
2015-11-17 13:53:06 +08:00
@FrankFang128 谢谢

请问如何直接发送中文的 excel 附件,且附件名也为中文嘛,中文问题实在是头大了。
FrankFang128
2015-11-17 14:04:52 +08:00
@meloncrashed SMTP 协议是个很复杂的协议,建议你要么用第三方,要么用 ascii.
meloncrashed
2015-11-17 14:04:54 +08:00
第一位能够正确提供帮助的朋友,我支付宝转账 50 元给您。

哎要是全世界都用英语多好( ⊙ o ⊙ )啊!
meloncrashed
2015-11-17 14:06:09 +08:00
@FrankFang128 谢谢,可是这个需求就是要原发中文 excel 附件。呜呜~~~~(>_<)~~~~
meloncrashed
2015-11-17 14:07:57 +08:00
@FrankFang128 请问第三方具体指什么?
WhiteLament
2015-11-17 14:55:10 +08:00
刚好之前也有这个需求,每周都在用它发中文文件名的报表,应该是正常的。

楼主是要这样吗?




代码是这么贴吗?写得丑见笑了:
https://gist.github.com/anonymous/f734d4a12f18c7ac0886
从我用的程序里截取的可能有点奇怪,不过测试了一下正常工作,供参考
meloncrashed
2015-11-17 15:51:21 +08:00
@WhiteLament 请问你的 python 版本是多少? 我的是 3.4 ,系统是 ubuntu.
WhiteLament
2015-11-17 16:10:49 +08:00
@meloncrashed windows 7 , python 2.7 ……
meloncrashed
2015-11-17 16:15:28 +08:00
@WhiteLament 谢谢,我先改改哈。 搞定给你汇款哈 ^_^5
WhiteLament
2015-11-17 16:18:30 +08:00
@meloncrashed 当时我也折腾了挺久的,似乎就是把附件封进 mime 时指定编码的问题,你参考下吧
钱就不用啦,小事情,能帮上忙就好。
FrankFang128
2015-11-17 17:56:15 +08:00
第三方就是 sendCloud 之类
meloncrashed
2015-11-17 17:59:19 +08:00
@WhiteLament 我搞定了,你把账号给我哈。
再次感谢了。 话说 2.7 里面用中文好像更痛苦呀。
meloncrashed
2015-11-17 17:59:49 +08:00
@FrankFang128 谢谢你 已经搞定了。
感谢大家, 感谢 v2ex

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/236649

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX