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编程中对线程锁的使用
Jul 12 Python
基于python socketserver框架全面解析
Sep 21 Python
Python之两种模式的生产者消费者模型详解
Oct 26 Python
python实现简单五子棋游戏
Jun 18 Python
python输入多行字符串的方法总结
Jul 02 Python
pytorch 输出中间层特征的实例
Aug 17 Python
python程序 线程队列queue使用方法解析
Sep 23 Python
python3用urllib抓取贴吧邮箱和QQ实例
Mar 10 Python
python手机号前7位归属地爬虫代码实例
Mar 31 Python
Jupyter notebook运行Spark+Scala教程
Apr 10 Python
python 实现图片修复(可用于去水印)
Nov 19 Python
matplotlib事件处理基础(事件绑定、事件属性)
Feb 03 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使用数组实现队列
2012/02/05 PHP
使用YUI+Ant 实现JS CSS压缩
2014/09/02 PHP
php实现的Captcha验证码类实例
2014/09/22 PHP
php实现多维数组中每个单元值(数字)翻倍的方法
2015/02/16 PHP
PHP设计模式之简单投诉页面实例
2016/02/24 PHP
PHP 计算两个时间段之间交集的天数示例
2019/10/24 PHP
Jquery Ajax学习实例7 Ajax所有过程事件分析示例
2010/03/23 Javascript
jQuery 常见操作实现方式和常用函数方法总结
2011/05/06 Javascript
使用Post提交时须将空格转换成加号的解释
2013/01/14 Javascript
自定义函数实现IE7与IE8不兼容js中trim函数的问题
2015/02/03 Javascript
jquery实现聚光灯效果的方法
2015/02/06 Javascript
JS组件Bootstrap Table布局详解
2016/05/27 Javascript
JS实用的带停顿的逐行文本循环滚动效果实例
2016/11/23 Javascript
深入理解Vue transition源码分析
2017/07/30 Javascript
Vue循环组件加validate多表单验证的实例
2018/09/18 Javascript
微信小程序与后台PHP交互的方法实例分析
2018/12/10 Javascript
使用p5.js临摹动态图片
2019/11/04 Javascript
[48:48]完美世界DOTA2联赛PWL S3 Magama vs GXR 第一场 12.19
2020/12/24 DOTA
[原创]教女朋友学Python3(二)简单的输入输出及内置函数查看
2017/11/30 Python
python实现简单http服务器功能
2018/09/17 Python
python 将字符串完成特定的向右移动方法
2019/06/11 Python
Python 中PyQt5 点击主窗口弹出另一个窗口的实现方法
2019/07/04 Python
Python 点击指定位置验证码破解的实现代码
2019/09/11 Python
Python迭代器模块itertools使用原理解析
2019/12/11 Python
Python hashlib模块实例使用详解
2019/12/24 Python
Python3爬虫里关于Splash负载均衡配置详解
2020/07/10 Python
Pycharm中如何关掉python console
2020/10/27 Python
Ever New加拿大官网:彰显女性美
2018/10/05 全球购物
Europcar美国/加拿大:预订汽车或卡车租赁服务
2018/11/13 全球购物
通信工程毕业生求职信
2013/11/16 职场文书
数控技术学生的自我评价
2014/02/15 职场文书
爱国演讲稿500字
2014/05/04 职场文书
师德师风培训感言
2015/08/03 职场文书
民政局2016年“六一”儿童节慰问活动总结
2016/04/06 职场文书
Redis Cluster集群动态扩容的实现
2021/07/15 Redis
解决springboot druid数据库连接失败后一直重连的方法
2022/04/19 Java/Android