在训练网络模型的时候,往往需要好几个小时,甚至十几个小时,由于时间不固定,所以有时候我去查看了好几次都没训练完,有时候训练结束很久了我才想起去看,所以我就想训练结束后自动给我发个邮件,这样我就可以专心工作,训练完又能马上知道。
网上找了两个可以发送邮件的 Python 库:smtplib 和 yagmail,对比了一下,还是 yagmail 香一点,简单容易上手,可以实现的功能也不少,本文就主要介绍如何使用 yagmail 发送电子邮件。
yagmail 的主页在此:kootenpv/yagmailgithub.com
首先当然是安装这个库:
pip install yagmail
然后三行实现发送邮件的功能!
import yagmail
# initializing the yagmail instance
yag = yagmail.SMTP(user='sender@163.com', password='mypassword', host='smtp.163.com')
# sending the email
yag.send(to='receiver@163.com', subject='Testing Yagmail', contents='Hello Yagmai l!')
第一行导入 yagmail 库,第二行创建 yagmail.SMTP 实例,需要设置三个参数:user:发送方邮箱
password:发送方的密码
host:设置发送邮件服务器地址,其中的163.com需要和发送方邮箱后缀相同
这里跑题一下,POP3 和 SMTP 都是与邮件传输相关的协议,可以简单理解为 SMTP 是发送协议,POP3 是接收协议。
第三行通过 send() 来将邮件发送出去,也需要设置三个参数:to:接收方邮箱
subject:邮件的主题
contents:邮件的正文内容
这是 yagmail 最简单的使用方法,下面讲一些其他进阶功能。
1、有时候我们想把邮件发送给多个人
只需要指定 send() 函数中的 to 参数为一个列表:
yag.send(to=['receiver1@163.com', 'receiver2@163.com'],
subject='Testing Yagmail',
contents='Hello Yagmai l!')
2、发送邮件正文的同时,我们也想发送附件,比如图片,文件之类的。
只需要在 send() 函数中多设置一个 attachments 参数即可:
yag.send(to='receiver@163.com',
subject='Testing Yagmail',
contents='Hello Yagmai l!',
attachments='hello.jpg')
attachments 参数用于指定文件的路径,和接收人一样,想发送多个附件的话,也是指定 attachments 参数为一个列表:
yag.send(to='receiver@163.com',
subject='Testing Yagmail',
contents='Hello Yagmai l!',
attachments=['hello.jpg', 'world.jpg'])
3、而且 yagmail 还支持发送邮件的时候抄送其他人,其中抄送包括 cc(Carbon Copy)和 bcc(Blind Carbon Copy)两种方式,
也是在 send() 函数中指定参数 cc 和 bcc 即可:
yag.send(to='receiver@163.com',
cc='user1@gmail.com',
bcc='user2@gmail.com',
subject='Testing Yagmail',
contents='Hello Yagmai l!')
总的来说,yagmail 可以算是一个非常方便的 Python 库,以后我会在这个专栏中多多记录 Python 中功能强大而且容易上手的库。
如果觉得有用,点个赞吧(ง •̀_•́)ง。