×

邮件 python yagmail 乱码 附件

借助yagmail发邮件

鹭岛小千 鹭岛小千 发表于2021-05-16 00:32:51 浏览676 评论1

1人参与发表评论

Python提供了用于发送邮件的标准库smtplib,但是第三方库yagmail使用更简单。

安装yagmail库:

pip install yagmail

SMTP类和send方法的说明:

8-1.png

8-2.png


===1 单个收件人,邮件内容使用默认样式===

示例代码:

import yagmail

yag = yagmail.SMTP('shaoqian9527@163.com','xqoffice','smtp.163.com')
yag.send('29947277@qq.com','mail测试','Just a test mail.')

注意:密码xqoffice是指邮箱的授权密码,不是网页登录密码。如果使用企业邮箱发信,则是用登录密码。

效果:

8-3.png


===2 多个收件人,邮件内容为HTML格式===

示例代码:

import yagmail

yag = yagmail.SMTP('shaoqian9527@163.com','xqoffice','smtp.163.com')
receiver = ['29947277@qq.com','313129791@qq.com']
issue = '邮件 by yagmail'
content = '<h1>欢迎语</h1><p>小千办公欢迎您!</p>'
yag.send(receiver,issue,content)

效果:

8-4.png



===3 设置抄送,添加单个附件===

示例代码:

import yagmail

yag = yagmail.SMTP('shaoqian9527@163.com','xqoffice','smtp.163.com',encoding='gbk')
receiver = '29947277@qq.com'
issue = 'yagmail邮件'
content = '<h1>欢迎语</h1><p>xqoffice欢迎您!</p>'
yag.send(
    to=receiver,
    cc='313129791@qq.com',
    subject=issue,
    contents=content,
    attachments='D:/py/镜像.txt'
    )

效果:

8-5.png

备注:如果发现发往qq邮箱的中文附件名显示乱码,则需要设置encoding='gbk'。



===4 同时添加多个附件===

示例代码:

import yagmail

yag = yagmail.SMTP('29947277@qq.com','xqoffice','smtp.qq.com',encoding='gbk')
receiver = 'shaoqian9527@163.com'
issue = '邮件demo'
content = '<h1>这是一封派森邮件</h1>'
yag.send(
    to=receiver,
    cc='313129791@qq.com',
    subject=issue,
    contents=content,
    attachments=['D:/py/国内源.txt',
             'D:/py/xqoffice.png']
    )

效果:

8-6.png



===5 正文为富文本,添加多个附件,同时图片既作为附件之一,又嵌入正文===

示例代码:

import yagmail
yag = yagmail.SMTP('29947277@qq.com','xqoffice','smtp.qq.com',encoding='gbk')
receiver = 'shaoqian9527@163.com'
issue = '邮件demo'
content = ['<h1>自我简介</h1>',
           '<p><a href="https://xqoa.taobao.com">小千办公</a>的LOGO如下:</p>',
            yagmail.inline('D:/py/xqoffice.png')]
yag.send(
    to=receiver,
    cc='313129791@qq.com',
    subject=issue,
    contents=content,
    attachments=['D:/py/国内源.txt',
             'D:/py/invoice.xlsx',
             'D:/py/xqoffice.png']
    )

效果:

8-7.png


打赏码.png



参考资料:

  1. 什么是授权码,它又是如何设置?

  2. python基础:用yagmail模块发邮件

  3. 邮件协议POP3/IMAP/SMTP学习总结 SSL/TLS介绍 常用邮箱服务器设置

  4. SSL与TLS的区别以及介绍

  5. 为什么用网易163邮箱的SMTP服务时要关闭TLS才能发送邮件?

  6. python邮件yagmail库好用,但中文附件名乱码怎么破?

  7. UTF-8 GBK UTF8 GB2312之间的区别和关系

  8. 企业退信的常见问题?


群贤毕至

访客