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网络编程之读取网站根目录实例
Sep 30 Python
一个基于flask的web应用诞生 使用模板引擎和表单插件(2)
Apr 11 Python
pip install urllib2不能安装的解决方法
Jun 12 Python
python3利用venv配置虚拟环境及过程中的小问题小结
Aug 01 Python
Python 实现数据结构中的的栈队列
May 16 Python
用python的turtle模块实现给女票画个小心心
Nov 23 Python
python绘制封闭多边形教程
Feb 18 Python
Python 获取异常(Exception)信息的几种方法
Dec 29 Python
Python页面加载的等待方式总结
Feb 28 Python
python实现腾讯滑块验证码识别
Apr 27 Python
Python实现Excel文件的合并(以新冠疫情数据为例)
Mar 20 Python
详细介绍python操作RabbitMq
Apr 12 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提交表单失败后如何保留已经填写的信息
2014/06/20 PHP
Zend Framework自定义Helper类相关注意事项总结
2016/03/14 PHP
Javascript Boolean、Nnumber、String 强制类型转换的区别详细介绍
2012/12/13 Javascript
artDialog双击会关闭对话框的修改过程分享
2013/08/05 Javascript
js自动生成的元素与页面原有元素发生堆叠的解决方法
2014/09/04 Javascript
jquery实现公告翻滚效果
2015/02/27 Javascript
JS实现的自定义网页拖动类
2015/11/06 Javascript
JS获取checkbox的个数简单实例
2016/08/19 Javascript
node.js + socket.io 实现点对点随机匹配聊天
2017/06/30 Javascript
vue左右侧联动滚动的实现代码
2018/06/06 Javascript
vue中使用sessionStorage记住密码功能
2018/07/24 Javascript
在vue项目中引入高德地图及其UI组件的方法
2018/09/04 Javascript
微信小程序搜索功能(附:小程序前端+PHP后端)
2019/02/28 Javascript
JS实现继承的几种常用方式示例
2019/06/22 Javascript
微信小程序点击图片实现长按预览、保存、识别带参数二维码、转发等功能
2019/07/20 Javascript
微信小程序 checkbox使用实例解析
2019/09/09 Javascript
基于Vue的侧边目录组件的实现
2020/02/05 Javascript
js实现点赞按钮功能的实例代码
2020/03/06 Javascript
微信小程序国际化探索实现(附源码地址)
2020/05/20 Javascript
Python文件及目录操作实例详解
2015/06/04 Python
Django Admin实现三级联动的示例代码(省市区)
2018/06/22 Python
python高级特性简介
2020/08/13 Python
CSS3绘制不规则图形的一些方法示例
2015/11/07 HTML / CSS
美国南加州的原创极限运动潮牌:Vans(范斯)
2016/08/05 全球购物
VisionPros美国站:加拿大在线隐形眼镜和眼镜零售商
2020/02/11 全球购物
zooplus德国:便宜地订购动物用品、动物饲料、动物食品
2020/05/06 全球购物
求网格中的黑点分布
2013/11/06 面试题
小学生暑假感言
2014/02/06 职场文书
家电业务员岗位职责
2014/03/10 职场文书
仓库管理员岗位职责
2015/02/03 职场文书
2015年度保密工作总结
2015/04/24 职场文书
怒海潜将观后感
2015/06/11 职场文书
关爱空巢老人感想
2015/08/11 职场文书
经典励志格言:每日一句,让你每天充满能量
2019/08/16 职场文书
利用Redis实现点赞功能的示例代码
2022/06/28 Redis
JavaScript实现九宫格拖拽效果
2022/06/28 Javascript