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)