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 相关文章推荐
用smtplib和email封装python发送邮件模块类分享
Feb 17 Python
Python脚本文件打包成可执行文件的方法
Jun 02 Python
浅谈Python中带_的变量或函数命名
Dec 04 Python
详解PyCharm配置Anaconda的艰难心路历程
Aug 13 Python
解决python opencv无法显示图片的问题
Oct 28 Python
python实现二维插值的三维显示
Dec 17 Python
浅析Python 实现一个自动化翻译和替换的工具
Apr 14 Python
Python 如何优雅的将数字转化为时间格式的方法
Sep 26 Python
python系统指定文件的查找只输出目录下所有文件及文件夹
Jan 19 Python
logging level级别介绍
Feb 21 Python
python实现ftp文件传输功能
Mar 20 Python
Python Pandas pandas.read_sql_query函数实例用法分析
Jun 21 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
星际争霸秘籍
2020/03/04 星际争霸
PhpMyAdmin中无法导入sql文件的解决办法
2010/01/08 PHP
php 验证码(倾斜,正弦干扰线,黏贴,旋转)
2013/06/29 PHP
php的数组与字符串的转换函数整理汇总
2013/07/18 PHP
Session的工作机制详解和安全性问题(PHP实例讲解)
2014/04/10 PHP
PHP编写文件多服务器同步程序
2016/07/02 PHP
JavaScript prototype属性深入介绍
2012/11/27 Javascript
JavaScript中获取高度和宽度函数总结
2014/10/08 Javascript
前端必备神器 Snap.svg 弹动效果
2014/11/10 Javascript
js实现ctrl+v粘贴上传图片(兼容chrome、firefox、ie11)
2016/03/09 Javascript
Vue.js实战之组件的进阶
2017/04/04 Javascript
详解JavaScript中return的用法
2017/05/08 Javascript
NodeJS简单实现WebSocket功能示例
2018/02/10 NodeJs
基于Express框架使用POST传递Form数据
2019/08/10 Javascript
通过滑动翻页效果实现和移动端click事件问题
2021/01/26 Javascript
Pyhthon中使用compileall模块编译源文件为pyc文件
2015/04/28 Python
解密Python中的描述符(descriptor)
2015/06/03 Python
在Windows系统上搭建Nginx+Python+MySQL环境的教程
2015/12/25 Python
详解Python自建logging模块
2018/01/29 Python
在Python中居然可以定义两个同名通参数的函数
2019/01/31 Python
python3实现钉钉消息推送的方法示例
2019/03/14 Python
Python猴子补丁知识点总结
2020/01/05 Python
Python图像处理库PIL的ImageFilter模块使用介绍
2020/02/26 Python
python如何删除文件、目录
2020/06/23 Python
Python with语句用法原理详解
2020/07/03 Python
Python绘制组合图的示例
2020/09/18 Python
HTML5新增的Css选择器、伪类介绍
2013/08/07 HTML / CSS
日本热销NO.1胶原蛋白冻:Aishitoto爱希特多
2019/06/20 全球购物
莫斯科隐形眼镜网上商店:Linzi
2019/07/22 全球购物
.NET里面什么时候需要调用垃圾回收
2015/06/01 面试题
毕业生的求职信范文分享
2013/12/04 职场文书
环境工程专业个人求职信
2013/12/05 职场文书
公积金单位接收函
2014/01/11 职场文书
教师个人教学总结
2015/02/11 职场文书
法院执行局工作总结
2015/08/11 职场文书
Windows server 2022创建创建林、域树、子域的步骤
2022/06/25 Servers