查看原文
其他

Yagmail | 命令行发送电子邮件竟变得如此容易……

mculover666 Mculover666 2021-01-31


. 0. 命令行发送邮件应用场景

当服务器自动完成一个任务后,难道我们要手动登录服务器去查看吗?

No,No,No~

如果服务器完成后自动给我们发送一封邮件提醒多好,可是服务器脚本只会执行命令,不能向我们一样在浏览器登录邮箱,然后写信发送,这可怎么办呢?

俗话说,人生苦短,我用Python!Python大法在任何时候都是非常有效的哈哈~

Yagmail 这个开源项目可以帮我们很好的完成这项工作,只用四行代码即可完成邮件发送,听着是不是很爽,mculover666 来带你一起体验这个神奇的库~

温馨提示:学会之后,可以编写一个脚本,每天早上爬取天气情况发送邮件给女朋友哦~做一个贴心小男友哈哈(斜眼笑.jpg)

. 1. 发信邮箱准备工作

首先我申请一个新的邮箱账号作为发信账号,用于演示:

申请发信邮箱

这里我使用QQ邮箱申请一个专门用于自动化发送邮件的账号:

设置授权码并开启SMTP服务

进入设置 -> 账户 -> POP3/SMTP/IMAP页面:


开启 POP3/SMTP 服务:

开启时,邮箱要求进行验证,发送短信验证即可:

接下来QQ邮箱会给出授权码,一定要保存好:

这样 SMTP 服务开启成功,授权码获取成功,接下来进入今天的主题~


. 2. 安装Yagmail库

pip3 install yagmail

. 3. 四行代码搞定邮件发送

编写如下的 Python 代码:

# 导入库
import yagmail

# 登录SMTP服务器
# user - 邮箱账号
# password - 邮箱登录授权码
# host - 邮箱SMTP服务器地址
yag = yagmail.SMTP(user = "发信邮箱登录账号", password='之前获取的授权码', host = 'smtp.qq.com')

# 编辑邮件内容
contents = [
    'Hello, i am sent by yagmail!'
    'Here is a test mail!'
    ]

# 发送邮件
# to - 收信邮箱
# subject - 邮件主题
# contents - 邮件内容
yag.send(to = '2412828003@qq.com', subject = 'SendHelloTest', contents = contents)

在目的邮箱中可以看到成功发送的邮件:

. 4. 邮件内容内嵌图片

在邮件内容中内嵌图片的方法如下:

# 编辑邮件内容
contents = [
    'Hello, i am sent by yagmail!'
    'Here is a test mail!',
    yagmail.inline('E://avator.png'# 邮件内容中内嵌图片
    ]

# 发送邮件
yag.send(to = '2412828003@qq.com', subject = 'SendPicture', contents = contents)

接收到的邮件内容如下:

. 5. 发送邮件附件

将图片以附件发送的方法如下:

# 编辑邮件内容
contents = [
    'Hello, i am sent by yagmail!'
    'Here is a test mail!',
    'E://avator.png' #以附件方式发送
    ]

# 发送邮件
yag.send(to = '2412828003@qq.com', subject = 'SendPicture', contents = contents)

接收到的邮件内容如下:

至此,学会如何用命令行发送邮件了吗?赶快试试吧~

更多精彩文章及资源,欢迎关注我的微信公众号:『mculover666』。


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存