• 您当前位置:网站首页 >> Python学习 >> Python 使用 yagmail 模块发送邮件
  • Python 使用 yagmail 模块发送邮件

    iCoA首席特工 逍遥峡谷 发布:2020-01-04 更新:2020-01-10 浏览0条评论
    内容简介

    相关关键词:Python   yagmail   发邮件  

    本文链接:https://www.icoa.cn/a/890.html

    本站文章如非注明皆为原创,未经允许禁止转载。如有问题可以给我留言或发邮件。

    使用Python发送邮件需要安装一些第三方模块,具体之前文章Python 第三方模块和安装方法有介绍,这里不再复述。

    更多点击:Python学习日志目录

    如果没有安装过的话,可以使用下面命令进行安装本文用到的 yagmail 模块:

    pip install yagmail -i https://pypi.douban.com/simple


    使用Python发送邮件之前还需要有一个支持POP3、SMTP和IMAP协议的邮箱,然后开通协议,本文是发送邮件,所以开通SMTP协议即可。

    如果你使用的是网易或者腾讯邮箱,开通邮箱的POP3、SMTP和IMAP协议,这时候网易或腾讯会给你一个安全码,使用这个安全码当密码就可以发送邮件了。文末附有腾讯和网易开通安全码的方法,以及对应SMTP服务器地址。


    如果我们只是想发邮件的话,其实可以用Python命令行存入邮箱和密码(腾讯和网易使用安全码代替密码),这样之后再调用这个邮箱的话,就不用输入密码了。

    首先打开命令行,输入 python 回车,进入Python命令行;

    然后输入 import yagmail 回车,引入yagmail模块;

    然后输入 yagmail.register('你的邮箱地址','密码或安全码') 回车。

    clipboard.png


    想要发送邮件的话,新建一个.py文件,注意文件名不能用yagmail或者email等,否则会出现错误。比如我明明为 sent_mail.py,这样就不容易报错。

    输入下面内容:

    import yagmail
    yag = yagmail.SMTP(user='[email protected]',host='smtp.163.com')
    # 后面的host取决于你使用哪家的邮箱,后面我会附上不同邮箱对应的smtp服务器
    contents = ['这份邮件你收到了吗?','收到请回复\n Email by Python']
    # 邮件正文赋值给 contents 变量,这个变量名可以自定义的
    yag.send('[email protected]','这是一封测试邮件',contents)
    # 前面填写想要发送到的邮箱,中间写邮件主题,后面是内容变量。

    运行效果如图:

    clipboard (1).png


    发送带附件的邮件

    直接在正文后面添加附件的路径即可。

    import yagmail
    yag = yagmail.SMTP(user='[email protected]',host='smtp.163.com')
    contents = ['你好,把附件发给你查收一下。',
    '收到请回复\n by <a href="https://www.icoa.cn">iCoA.cn</a>',
    'D:\\Temp\\demo.zip']
    # 把 demo.zip 放进邮件附件
    yag.send('[email protected]','这是一封带附件的邮件',contents)

    运行效果如图:

    clipboard (2).png

    大家看到了,邮件内容支持HTML代码。


    正文中插入图片

    既然邮件可以插入附件,那么同样可以把附件中的图片,插入邮件正文中。

    import yagmail
    yag = yagmail.SMTP(user='[email protected]',host='smtp.163.com')
    contents = ['你好,明天在哪儿吃饭啊?',
    '收到请回复\n by <a href="https://www.icoa.cn">iCoA.cn</a>',
    yagmail.inline('logo.png')]
    # 把当前目录下logo.png插入到正文
    yag.send('[email protected]','这是一封正文带图片的邮件',contents)

    运行效果如图:

    clipboard (3).png


    群发邮件

    群发邮件,只需要在填写收件人邮箱的地方,以列表的形式写上更多收件人邮箱就可以了。

    import yagmail
    yag = yagmail.SMTP(user='[email protected]',host='smtp.163.com')
    contents = ['你好,明天在哪儿吃饭啊?']
    yag.send(['[email protected]','[email protected]','[email protected]'],'群发邮件测试',contents)

    更多Python学习日志,点击:Python学习日志目录


    附1:下面列举常用邮箱对应SMTP和POP3服务器地址:

    QQ邮箱:

    smtp.qq.com
    pop.qq.com

    网易邮箱不同域名也是不同的:

    163邮箱:

    smtp.163.com
    pop.163.com

    126邮箱:

    smtp.126.com
    pop.126.com

    yeah.net邮箱:

    smtp.yeah.net
    pop.yeah.net

    附2:QQ邮箱如何设置SMTP服务,以及如何获取授权码的方法:

    腾讯官方文档:https://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256

    打开QQ邮箱,点击 设置 → 账户:

    clipboard (4).png

    下拉到 这个位置,将 POP3/SMTP服务 后面点击开启,然后点击下面的 生成授权码。


    clipboard (5).png

    然后会让你用邮箱绑定的手机号,发一个短信到指定号码,发完之后,点击我已发送即可。

    clipboard (6).png

    这时候会给你一串字符,这个就可以作为密码使用。

    clipboard (7).png


    附3.网易邮箱获取安全码的方法

    网易邮箱点击上面的 设置 → POP3/SMTP/IMAP,具体方法跟腾讯邮箱差不多,本文不再重复了。

    图片.png

    记得勾选上这两个选项

    图片.png


    更多Python相关文章点击:Python学习日志目录

    本文链接:https://www.icoa.cn/a/890.html
    关键词: Python   yagmail   发邮件  


    如果您愿意支持本站,欢迎点击打赏哦~



    下一篇:Python 收邮件、读邮件、标记已读和删除邮件

    上一篇:Python 学习日志目录(持续更新中)


    - 相关文章 -


    Python 数字与数字型运算 - 2020-09-08

    Python 基础知识之数据类型 - 2020-09-07

    Python 学习中非常好用的编辑器 Sublime Text 3 - 2020-09-07

    Python 基础知识之变量 - 2020-09-03

    Python 详细安装步骤图解 - 2020-09-01

    Python 数据分析模块 Pandas 之 DataFrame 数据 - 2020-02-09

    Python 数据分析模块 Pandas 之 Series 数据 - 2020-02-05

    Python 数据分析第三方库 Numpy 的安装和使用 - 2020-02-03


    - 文章评论 -




    9632

    [由于政策原因,您的留言如果提交成功后,需要审核才能展示,请改天再来查看,请不要重复提交,谢谢支持!]

    - 最新评论[0条评论] -


    [>>>点击查看更多评论]

    版权所有©逍遥峡谷 - 星际中心超自然局 · 地球总部 | 逍遥峡谷 · 酷品优选
    Copyright©Interstellar Central Occult Agency (I.C.O.A)
    本局纯属虚构,如有雷同,纯属巧合

    冀公网安备13011102001055号 · 冀ICP备06033848号