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 strip()函数 介绍
May 24 Python
解析Python中的二进制位运算符
May 13 Python
利用Python批量压缩png方法实例(支持过滤个别文件与文件夹)
Jul 30 Python
Python基于Socket实现的简单聊天程序示例
Aug 05 Python
Python实现对一个函数应用多个装饰器的方法示例
Feb 09 Python
Python 中 function(#) (X)格式 和 (#)在Python3.*中的注意事项
Nov 30 Python
在Python中居然可以定义两个同名通参数的函数
Jan 31 Python
Python编写带选项的命令行程序方法
Aug 13 Python
Pytorch训练过程出现nan的解决方式
Jan 02 Python
pytorch载入预训练模型后,实现训练指定层
Jan 06 Python
python中threading和queue库实现多线程编程
Feb 06 Python
关于python爬虫应用urllib库作用分析
Sep 04 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
很温暖很温暖的Lester Young
2021/03/03 冲泡冲煮
php中substr()函数参数说明及用法实例
2014/11/15 PHP
PHP结合Mysql数据库实现留言板功能
2016/03/04 PHP
PHP判断表达式中括号是否匹配的简单实例
2016/10/22 PHP
基于PHP实现栈数据结构和括号匹配算法示例
2017/08/10 PHP
PHP简单实现防止SQL注入的方法
2018/03/13 PHP
框架页面高度自动刷新的Javascript脚本
2013/11/01 Javascript
javascript移动设备Web开发中对touch事件的封装实例
2014/06/05 Javascript
jQuery DataTables插件自定义Ajax分页实例解析
2020/04/28 Javascript
jQuery EasyUI提交表单验证
2016/07/19 Javascript
微信小程序通过api接口将json数据展现到小程序示例
2017/01/20 Javascript
Js apply方法详解
2017/02/16 Javascript
jquery+ajaxform+springboot控件实现数据更新功能
2018/01/22 jQuery
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【凹多边形的分离轴检测算法】
2018/12/13 Javascript
针对Vue路由history模式下Nginx后台配置操作
2020/10/22 Javascript
js 数据类型判断的方法
2020/12/03 Javascript
python ElementTree 基本读操作示例
2009/04/09 Python
Python实现partial改变方法默认参数
2014/08/18 Python
10个易被忽视但应掌握的Python基本用法
2015/04/01 Python
Django中的“惰性翻译”方法的相关使用
2015/07/27 Python
Python中的多行注释文档编写风格汇总
2016/06/16 Python
Python的CGIHTTPServer交互实现详解
2018/02/08 Python
利用Python求阴影部分的面积实例代码
2018/12/05 Python
Python语言检测模块langid和langdetect的使用实例
2019/02/19 Python
将labelme格式数据转化为标准的coco数据集格式方式
2020/02/17 Python
Python子进程subpocess原理及用法解析
2020/07/16 Python
python实现xml转json文件的示例代码
2020/12/30 Python
CSS3制作半透明边框(Facebox)类似渐变
2012/12/09 HTML / CSS
美国大码时尚女装购物网站:ELOQUII
2017/12/28 全球购物
英国第一的市场和亚马逊替代品:OnBuy
2019/03/16 全球购物
Chemist Warehouse中文网:澳洲连锁大药房
2021/02/05 全球购物
路由表示做什么用的?在linux环境中怎么来配置一条默认路由?
2013/06/07 面试题
幼儿园儿童节主持词
2014/03/21 职场文书
遗嘱范文
2015/08/07 职场文书
关于教师节的广播稿
2015/08/19 职场文书
Python下opencv库的安装过程及问题汇总
2021/06/11 Python