Python使用yagmail超简单发送邮件、keyring读取密钥、schedule定时任务、imbox操作

yagmail 实现发邮件,以网页邮箱为例

 

 

 

 

 

 

yagmail 可以超简单的来实现自动发邮件功能。

 

 

安装

pip install yagmail   
pip install keyring
pip install schedule
pip install imbox

或者
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/  包名称
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple/  包名称

 

发送邮件例子

import yagmail

#链接邮箱服务器
yag = yagmail.SMTP( user="user@126.com", password="1234", host='smtp.126.com')

# 邮箱正文
contents = ['第一段内容',
            '第二段内容'
            ]

# 发送邮件
yag.send('test@126.com', '邮件主题',  contents)
#关闭
yag.close()

 

给多个用户群发送邮件

# 群发邮件、只需要将接收邮箱 变成一个list即可
yag.send(['aa@126.com','bb@qq.com','cc@gmail.com'], '群发邮件',  contents)

 

读取密钥形式发送,代码中不明文密码(安全,推荐)

打开Python shell将账号密码注册到系统(只需要操作一次)

 

定时任务scedule

python中有一个轻量级的定时任务调度的库:schedule。他可以完成每分钟,每小时,每天,周几,特定日期的定时任务。因此十分方便我们执行一些轻量级的定时任务。

代码如下:

import schedule
import time

def job():
    print("I'm working...")

schedule.every(10).minutes.do(job)
schedule.every().hour.do(job)
schedule.every().day.at("09:30").do(job)
schedule.every(5).to(10).days.do(job)
schedule.every().monday.do(job)
schedule.every().wednesday.at("13:15").do(job)
 
while True:
    schedule.run_pending()
    time.sleep(1)

 

上面的意思就是:

每隔十分钟执行一次任务

每隔一小时执行一次任务

每天的10:30执行一次任务

每隔5到10天执行一次任务

每周一的这个时候执行一次任务

每周三13:15执行一次任务

run_pending:运行所有可以运行的任务

当然,如果函数中带有参数怎么办呢?

很简单,如下所示:

import schedule
import time

def job(name):
    print("her name is : ", name)
 
name = 'MyJob'
schedule.every(10).minutes.do(job, name)
schedule.every().hour.do(job, name)
schedule.every().day.at("10:30").do(job, name)
schedule.every(5).to(10).days.do(job, name)
schedule.every().monday.do(job, name)
schedule.every().wednesday.at("13:15").do(job, name)
 
while True:
    schedule.run_pending()
    time.sleep(1)

 

posted @ 2020-08-20 17:27  zwnsyw  阅读(1312)  评论(0编辑  收藏  举报