邮件相关模块介绍与安装 利用Python发送邮件

鳄鱼君

发表文章数:525

Vieu四代商业主题

高扩展、安全、稳定、响应式布局多功能模板。

¥69 现在购买
首页 » Python教程 » 邮件相关模块介绍与安装 利用Python发送邮件

yagmail模块,非常方便的SMTP包,超简单的Python发邮件模块。需要单独安装,不包含在python的标准模块中。官方网站:https://github.com/kootenpv/yagmail/

keyring模块,从Python访问系统密钥环服务,方便、安全地存储你的密码。需要单独安装,不属于Python的标准模块。

schedule模块,超容易理解的定时任务执行器。需要单独安装,不属于Python的标准模块。

imbox模块,简易的Python IMAP包,进行IMAP相关操作。需要单独安装,不属于Python的标准模块。官方网站:https://github.com/martinrusev/imbox/

可以使用pip命令直接安装:pip install yagmail keyring schedule imbox

邮件相关基础知识

POP3:Post Office Protocol 3简称,即邮局协议的第3个版本。它规定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的电子协议。

SMTP:Simple Mail Transfer Protocol,即简单邮件传输协议

IMAP:Internet Mail Access Protocol,即交互式邮件存取协议,它是跟POP3类似,是邮件访问标准协议之一

写代码发邮件时,一定注意不能频繁发送,容易被当作垃圾邮件屏蔽掉!

Python发邮件

163网易邮箱为例,这里可以简单注册一个用用。需要在设置中打开POP3/SMTP/IMAP,基本主流的邮箱都可以进行设置。

邮件相关模块介绍与安装 利用Python发送邮件

启用IMAP/SMTP服务,或者POP3/SMTP服务,这时候会设置客户端授权码,在代码中就是使用这个密码,而不是邮箱的密码。163网易邮箱的授权码只显示一次,所以需要保存好。

还需要知道各个服务器地址,POPS服务器:pop.163.com,SMTP服务器:smtp.163.com,IMAP服务器:imap.163.com,个平台的邮箱服务器都不相同,可自行百度!这里我们是通过SMTP服务器来发送的!

为了安全,可以先将密码存储到yagmail中,使用的时候可以直接用yagmail发送。这里是在Python自带的交互终端运行代码,在终端中打开Python也可以

import yagmail
yagmail.register('J991737441@163.com','password')

password为你的授权码,不是邮箱密码!

发送第一封邮件

由于我们已经将密码存入到yagmail中,所以在这里只需要用户名即可:

import yagmail
yag=yagmail.SMTP(user='J991737441@163.com',host='smtp.163.com')
contents=['Hello World! ','这是一封邮件,通过Python发送']
# 收件人,邮件主题,正文内容
yag.send('J991737441@163.com','邮件标题',contents)

如果出现:smtplib.SMTPAuthenticationError: (535, b’Error: authentication failed’),就是身份验证失败,密码是授权码,而不是你的邮箱密码!

发送HTML样式的邮件

可以直接将html代码放在contents的列表中:

import yagmail
yag=yagmail.SMTP(user='J991737441@163.com',host='smtp.163.com')
contents=['Hello World!','这是一封邮件,通过Python发送','<a href="https://www.e1yu.com/">鳄鱼君Ba</a>']

# 收件人,邮件主题,正文内容
yag.send('J991737441@163.com','HTML样式的邮件',contents)

将图片作为附件发送

将图片作为附件发送,只需要将图片添加到contents列表中即可,如果想展示在邮件正文,可使用下面的方法:

import yagmail
yag=yagmail.SMTP(user='J991737441@163.com',host='smtp.163.com')
contents=['Hello World!','这是一封邮件,通过Python发送',yagmail.inline('1.jpg')]
# 收件人,邮件主题,正文内容
yag.send('J991737441@163.com','嵌入图片的邮件',contents)

群发邮件

在发送的时候,可以将收件人修改为列表,可以添加多个

import yagmail
yag=yagmail.SMTP(user='J991737441@163.com',host='smtp.163.com')
contents=['Hello World!','这是一封邮件,通过Python发送','<a href="https://www.e1yu.com/">鳄鱼君Ba</a>','1.jpg']
# 收件人,邮件主题,正文内容
yag.send(['J991737441@163.com','',''],'群发邮件',contents)

schedule定时任务

import  schedule
import time
# 定义一个执行的函数
def job():
    print('我在干活呢')
# 注册任务
schedule.every(10).minutes.do(job) # 每10分钟运行job
schedule.every().hour.do(job) # 每个小时
schedule.every().day.at("10:30").do(job) # 每天10:30执行job
schedule.every(5).to(10).minutes.do(job) # 每5到10分钟
schedule.every().monday.do(job)# 每个星期一
schedule.every().wednesday.at("13:15").do(job) # 每周3的一点半
schedule.every().minute.at(":17").do(job) # 每分钟的17秒
# 死循环 
while True:
    schedule.run_pending()
    time.sleep(1)

也就是说你这个程序需要一致运行才可以,感觉没什么用!

未经允许不得转载:作者:鳄鱼君, 转载或复制请以 超链接形式 并注明出处 鳄鱼君
原文地址:《邮件相关模块介绍与安装 利用Python发送邮件》 发布于2020-05-18

分享到:
赞(0) 赏杯咖啡

评论 抢沙发

5 + 7 =


文章对你有帮助可赏作者一杯咖啡

支付宝扫一扫打赏

微信扫一扫打赏

Vieu4.6主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。
切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录
切换登录

注册