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语言中的按位运算符
Nov 26 Python
python实现apahce网站日志分析示例
Apr 02 Python
Python中实现字符串类型与字典类型相互转换的方法
Aug 18 Python
跟老齐学Python之关于循环的小伎俩
Oct 02 Python
Python3 能振兴 Python的原因分析
Nov 28 Python
Python装饰器的函数式编程详解
Feb 27 Python
使用Python实现一个简单的项目监控
Mar 31 Python
Python利用matplotlib.pyplot绘图时如何设置坐标轴刻度
Apr 09 Python
Python一个简单的通信程序(客户端 服务器)
Mar 06 Python
详解Matplotlib绘图之属性设置
Aug 23 Python
python pyecharts 实现一个文件绘制多张图
May 13 Python
python与idea的集成的实现
Nov 20 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来改写404错误页让你的页面更友好
2013/01/24 PHP
javascript 函数速查表
2010/02/07 Javascript
window.location.hash 属性使用说明
2010/03/20 Javascript
js 有框架页面跳转(target)三种情况下的应用
2013/04/09 Javascript
js函数模拟显示桌面.scf程序示例
2014/04/20 Javascript
Javascript遍历table中的元素示例代码
2014/07/08 Javascript
JavaScript通过select动态更换图片的方法
2015/03/23 Javascript
如何利用JSHint减少JavaScript的错误
2016/08/23 Javascript
浅谈js对象的创建和对6种继承模式的理解和遐想
2016/10/16 Javascript
javascript常用经典算法详解
2017/01/11 Javascript
vue2.0实现倒计时的插件(时间戳 刷新 跳转 都不影响)
2017/03/30 Javascript
JavaScript闭包和回调详解
2017/08/09 Javascript
webpack3之loader全解析
2017/10/26 Javascript
vue 中filter的多种用法
2018/04/26 Javascript
详解如何使用微信小程序云函数发送短信验证码
2019/03/13 Javascript
深入学习JavaScript 高阶函数
2019/06/11 Javascript
JS代码屏蔽F12,右键,粘贴,复制,剪切,选中,操作实例
2019/09/17 Javascript
5分钟快速看懂ES6中的反射与代理
2019/12/19 Javascript
[04:19]DOTA2完美大师赛第四天精彩集锦
2017/11/26 DOTA
跟老齐学Python之模块的加载
2014/10/24 Python
Python中执行存储过程及获取存储过程返回值的方法
2017/10/07 Python
解决csv.writer写入文件有多余的空行问题
2018/07/06 Python
Python访问MongoDB,并且转换成Dataframe的方法
2018/10/15 Python
Face++ API实现手势识别系统设计
2018/11/21 Python
Python根据当前日期取去年同星期日期
2019/04/14 Python
Django网络框架之创建虚拟开发环境操作示例
2019/06/06 Python
pandas 空数据处理方法详解
2019/11/02 Python
Django框架ORM数据库操作实例详解
2019/11/07 Python
Python中Subprocess的不同函数解析
2019/12/10 Python
Python 实现日志同时输出到屏幕和文件
2020/02/19 Python
canvas实现扭蛋机动画效果的示例代码
2018/10/17 HTML / CSS
唤醒头发毛囊的秘密武器:Grow Gorgeous
2016/08/28 全球购物
公务员培训自我鉴定
2014/02/01 职场文书
护理学应聘自荐书范文
2014/02/05 职场文书
民主生活会整改措施(党员)
2014/09/18 职场文书
通讯稿格式及范文
2015/07/22 职场文书