python实现定时发送邮件


Posted in Python onDecember 23, 2020

本文实例为大家分享了python实现定时发送邮件的具体代码,供大家参考,具体内容如下

一、发送邮件

import smtplib 
from email.mime.text import MIMEText
from email.header import Header
#引入smtplib、MIMETex和Header

mailhost='smtp.qq.com'
#把qq邮箱的服务器地址赋值到变量mailhost上,地址应为字符串格式
qqmail = smtplib.SMTP()
#实例化一个smtplib模块里的SMTP类的对象,这样就可以调用SMTP对象的方法和属性了
qqmail.connect(mailhost,25)
#连接服务器,第一个参数是服务器地址,第二个参数是SMTP端口号。
#以上,皆为连接服务器。

account = input('请输入你的邮箱:')
#获取邮箱账号,为字符串格式
password = input('请输入你的密码:')
#获取邮箱密码,为字符串格式
qqmail.login(account,password)
#登录邮箱,第一个参数为邮箱账号,第二个参数为邮箱密码
#以上,皆为登录邮箱。

receiver=input('请输入收件人的邮箱:')
#获取收件人的邮箱。

content=input('请输入邮件正文:')
#输入你的邮件正文,为字符串格式
message = MIMEText(content, 'plain', 'utf-8')
#实例化一个MIMEText邮件对象,该对象需要写进三个参数,分别是邮件正文,文本格式和编码
subject = input('请输入你的邮件主题:')
#输入你的邮件主题,为字符串格式
message['Subject'] = Header(subject, 'utf-8')
#在等号的右边是实例化了一个Header邮件头对象,该对象需要写入两个参数,分别是邮件主题和编码,然后赋值给等号左边的变量message['Subject']。
#以上,为填写主题和正文。

try:
 qqmail.sendmail(account, receiver, message.as_string())
 print ('邮件发送成功')
except:
 print ('邮件发送失败')
qqmail.quit()
#以上为发送邮件和退出邮箱。

二、定时

import schedule
import time
#引入schedule和time

def job():
 print("I'm working...")
#定义一个叫job的函数,函数的功能是打印'I'm working...'

schedule.every(10).minutes.do(job)  #部署每10分钟执行一次job()函数的任务
schedule.every().hour.do(job)   #部署每×小时执行一次job()函数的任务
schedule.every().day.at("10:30").do(job) #部署在每天的10:30执行job()函数的任务
schedule.every().monday.do(job)   #部署每个星期一执行job()函数的任务
schedule.every().wednesday.at("13:15").do(job)#部署每周三的13:15执行函数的任务

while True:
 schedule.run_pending()
 time.sleep(1)

之前看到的一段python实现定时发送邮件的代码,分享给大家:

import schedule
import time
import smtplib
from smtplib import SMTP_SSL
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
from email.header import Header

host_server = 'smtp.qq.com' # smtp服务器的地址
sender_sina = 'xxxx@qq.com' # 发件人的邮箱
pwd = 'xxxx' # 授权密码

sender_sina_mail = 'xxxx@qq.com' # 发件人的邮箱
receiver = 'xxxx@qq.com' # 收件人邮箱

mail_title = '这是标题'
mail_content = '这是正文'
msg = MIMEMultipart()
msg['Subject'] = Header(mail_title, 'utf-8')
msg['From'] = sender_sina_mail
msg['To'] = Header(receiver, 'utf-8')
msg.attach(MIMEText(mail_content, 'html', 'utf-8'))

# 添加附件
attachment = MIMEApplication(open('xxxx.pptx', 'rb').read())
attachment.add_header('Content-Disposition', 'attachment', filename='xxxx.pptx')
msg.attach(attachment)


# 引入schedule和time模块
def job():
  try:
    smtp = SMTP_SSL(host_server)
    smtp.set_debuglevel(0)
    smtp.ehlo(host_server)
    smtp.login(sender_sina, pwd)
    smtp.sendmail(sender_sina_mail, receiver, msg.as_string())
    smtp.quit()
    print('email send success')
  except smtplib.SMTPException:
    print('email send error')


# 定义一个叫job的函数
# schedule.every(2).seconds.do(job) # 每2s执行一次job()函数
schedule.every().day.at("14:30").do(job)

while True:
  schedule.run_pending()
  time.sleep(1)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python 搭建Web站点之Web服务器网关接口
Nov 06 Python
Python爬虫_城市公交、地铁站点和线路数据采集实例
Jan 10 Python
Python文本统计功能之西游记用字统计操作示例
May 07 Python
Python基于聚类算法实现密度聚类(DBSCAN)计算【测试可用】
Dec 26 Python
pandas计算最大连续间隔的方法
Jul 04 Python
Python 使用 Pillow 模块给图片添加文字水印的方法
Aug 30 Python
pytorch中的自定义数据处理详解
Jan 06 Python
Python3 shelve对象持久存储原理详解
Mar 23 Python
解决windows上安装tensorflow时报错,“DLL load failed: 找不到指定的模块”的问题
May 20 Python
tensorflow模型转ncnn的操作方式
May 25 Python
Python之字符串的遍历的4种方式
Dec 08 Python
聊聊基于pytorch实现Resnet对本地数据集的训练问题
Mar 25 Python
python脚本定时发送邮件
Dec 22 #Python
如何用python批量调整视频声音
Dec 22 #Python
分享一个python的aes加密代码
Dec 22 #Python
解决PyCharm无法使用lxml库的问题(图解)
Dec 22 #Python
去除python中的字符串空格的简单方法
Dec 22 #Python
Python lxml库的简单介绍及基本使用讲解
Dec 22 #Python
Python中过滤字符串列表的方法
Dec 22 #Python
You might like
几种有用的变型 PHP中循环语句的用法介绍
2012/01/30 PHP
php时间戳转换的示例
2014/03/31 PHP
php中namespace及use用法分析
2016/12/06 PHP
PHP7扩展开发之基于函数方式使用lib库的方法详解
2018/01/15 PHP
可兼容php5与php7的cURL文件上传功能实例分析
2018/05/11 PHP
ThinkPHP like模糊查询,like多匹配查询,between查询,in查询,一般查询书写方法
2018/09/26 PHP
使用js正则控制input标签只允许输入的值
2013/07/29 Javascript
Javascript 构造函数详解
2014/10/22 Javascript
javascript+canvas制作九宫格小程序
2014/12/28 Javascript
JavaScript编程中容易出BUG的几点小知识
2015/01/31 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之绑定事件
2015/11/19 Javascript
jQuery mobile类库使用时加载导航历史的方法简介
2015/12/04 Javascript
AngularJS 面试题集锦
2016/09/06 Javascript
js输入框使用正则表达式校验输入内容的实例
2017/02/12 Javascript
Angular2使用Augury来调试Angular2程序
2017/05/21 Javascript
微信小程序 获取二维码实例详解
2017/06/23 Javascript
JavaScript判断输入是否为数字类型的方法总结
2017/09/28 Javascript
基于原生js运动方式关键点的总结(推荐)
2017/10/01 Javascript
一次让你了解全部JavaScript的作用域
2019/06/24 Javascript
vue中配置scss全局变量的步骤
2020/12/28 Vue.js
Python下的subprocess模块的入门指引
2015/04/16 Python
Python简单实现两个任意字符串乘积的方法示例
2018/04/12 Python
python爬取足球直播吧五大联赛积分榜
2018/06/13 Python
python中将两组数据放在一起按照某一固定顺序shuffle的实例
2019/07/15 Python
python实现梯度下降和逻辑回归
2020/03/24 Python
丹麦优惠购物网站:PLUSSHOP
2019/03/24 全球购物
Nike加拿大官网:Nike.com (CA)
2019/04/09 全球购物
List, Set, Map是否继承自Collection接口?
2016/05/16 面试题
说一下Linux下有关用户和组管理的命令
2014/08/18 面试题
大学社团活动策划书
2014/01/26 职场文书
本科毕业生求职自荐信
2014/02/03 职场文书
助学金感谢信
2015/01/20 职场文书
骨干教师个人总结
2015/02/11 职场文书
酒店销售经理岗位职责
2015/04/02 职场文书
MySQL8.0.24版本Release Note的一些改进点
2021/04/22 MySQL
Golang全局变量加锁的问题解决
2021/05/08 Golang