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实现根据窗口标题调用窗口的方法
Mar 13 Python
Win10下Python环境搭建与配置教程
Nov 18 Python
django admin添加数据自动记录user到表中的实现方法
Jan 05 Python
python基于http下载视频或音频
Jun 20 Python
对numpy.append()里的axis的用法详解
Jun 28 Python
Django框架使用富文本编辑器Uedit的方法分析
Jul 31 Python
pytorch对可变长度序列的处理方法详解
Dec 08 Python
用uWSGI和Nginx部署Flask项目的方法示例
May 05 Python
Python 日期时间datetime 加一天,减一天,加减一小时一分钟,加减一年
Apr 16 Python
如何基于Python和Flask编写Prometheus监控
Nov 25 Python
Python代码覆盖率统计工具coverage.py用法详解
Nov 25 Python
Python3+Django get/post请求实现教程详解
Feb 16 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 mysql数据库操作分页类
2008/06/04 PHP
PHP编实现程动态图像的创建代码
2008/09/28 PHP
php 无极分类(递归)实现代码
2010/01/05 PHP
php array的学习笔记
2012/05/10 PHP
php中的注释、变量、数组、常量、函数应用介绍
2012/11/16 PHP
详解在YII2框架中使用UEditor编辑器发布文章
2018/11/02 PHP
PHP中->和=>的含义及使用示例解析
2020/08/06 PHP
PHP 实现重载
2021/03/09 PHP
PPK 谈 JavaScript 的 this 关键字 [翻译]
2009/09/29 Javascript
js 未结束的字符串常量错误解决方法
2010/06/13 Javascript
js实现按钮控制图片360度翻转特效的方法
2015/02/17 Javascript
最流行的Node.js精简型和全栈型开发框架介绍
2015/02/26 Javascript
JavaScript使用concat连接数组的方法
2015/04/06 Javascript
js表单元素checked、radio被选中的几种方法(详解)
2016/08/22 Javascript
通过sails和阿里大于实现短信验证
2017/01/04 Javascript
vue中echarts3.0自适应的方法
2018/02/26 Javascript
boostrap模态框二次弹出清空原有内容的方法
2018/08/10 Javascript
express如何解决ajax跨域访问session失效问题详解
2019/06/20 Javascript
在vue项目中封装echarts的步骤
2020/12/25 Vue.js
[34:39]Secret vs VG 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
Django Admin 实现外键过滤的方法
2017/09/29 Python
Python实现螺旋矩阵的填充算法示例
2017/12/28 Python
详解Python下ftp上传文件linux服务器
2018/06/21 Python
Python爬虫之正则表达式的使用教程详解
2018/10/25 Python
keras分类之二分类实例(Cat and dog)
2020/07/09 Python
Python 如何对文件目录操作
2020/07/10 Python
Pythonic版二分查找实现过程原理解析
2020/08/11 Python
PyCharm2019.3永久激活破解详细图文教程,亲测可用(不定期更新)
2020/10/29 Python
教你打造完美的创业计划书
2014/01/06 职场文书
大学生军训感想
2014/02/16 职场文书
机关道德讲堂实施方案
2014/03/15 职场文书
总经理秘书岗位职责
2014/03/17 职场文书
公司优秀员工获奖感言
2014/08/14 职场文书
市直属机关2016年主题党日活动总结
2016/04/05 职场文书
如何在CSS中绘制曲线图形及展示动画
2021/05/24 HTML / CSS
Java基础之this关键字的使用
2021/06/30 Java/Android