V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
meloncrashed
V2EX  ›  Python

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

  •  
  •   meloncrashed · 2015-11-17 02:09:22 +08:00 · 5207 次点击
    这是一个创建于 3301 天前的主题,其中的信息可能已经有所发展或是发生改变。
    ...
    # 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)
    ...
    第 1 条附言  ·  2015-11-17 14:02:33 +08:00
    中文搞得我头大了,哪位朋友若给出例句经我实验确认可以正确发送 qq 邮件,该邮件附带中文 excel 附件,且附件名也为中文。

    支付包答谢 50 元。 我恨中文!!!!!
    14 条回复    2015-11-17 17:59:49 +08:00
    FrankFang128
        1
    FrankFang128  
       2015-11-17 09:18:17 +08:00
    zip
    meloncrashed
        2
    meloncrashed  
    OP
       2015-11-17 13:53:06 +08:00
    @FrankFang128 谢谢

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

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

    楼主是要这样吗?




    代码是这么贴吗?写得丑见笑了:
    https://gist.github.com/anonymous/f734d4a12f18c7ac0886
    从我用的程序里截取的可能有点奇怪,不过测试了一下正常工作,供参考
    meloncrashed
        8
    meloncrashed  
    OP
       2015-11-17 15:51:21 +08:00
    @WhiteLament 请问你的 python 版本是多少? 我的是 3.4 ,系统是 ubuntu.
    WhiteLament
        9
    WhiteLament  
       2015-11-17 16:10:49 +08:00
    @meloncrashed windows 7 , python 2.7 ……
    meloncrashed
        10
    meloncrashed  
    OP
       2015-11-17 16:15:28 +08:00
    @WhiteLament 谢谢,我先改改哈。 搞定给你汇款哈 ^_^5
    WhiteLament
        11
    WhiteLament  
       2015-11-17 16:18:30 +08:00   ❤️ 1
    @meloncrashed 当时我也折腾了挺久的,似乎就是把附件封进 mime 时指定编码的问题,你参考下吧
    钱就不用啦,小事情,能帮上忙就好。
    FrankFang128
        12
    FrankFang128  
       2015-11-17 17:56:15 +08:00 via Android   ❤️ 1
    第三方就是 sendCloud 之类
    meloncrashed
        13
    meloncrashed  
    OP
       2015-11-17 17:59:19 +08:00
    @WhiteLament 我搞定了,你把账号给我哈。
    再次感谢了。 话说 2.7 里面用中文好像更痛苦呀。
    meloncrashed
        14
    meloncrashed  
    OP
       2015-11-17 17:59:49 +08:00
    @FrankFang128 谢谢你 已经搞定了。
    感谢大家, 感谢 v2ex
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1012 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 19:36 · PVG 03:36 · LAX 11:36 · JFK 14:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.