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中使用gzip模块压缩文件的简单教程
Apr 08 Python
python实现按行切分文本文件的方法
Apr 18 Python
python使用matplotlib绘图时图例显示问题的解决
Apr 27 Python
python 禁止函数修改列表的实现方法
Aug 03 Python
Python模拟脉冲星伪信号频率实例代码
Jan 03 Python
浅谈Python中的作用域规则和闭包
Mar 20 Python
详解Python正则表达式re模块
Mar 19 Python
详解Python绘图Turtle库
Oct 12 Python
关于Python3 lambda函数的深入浅出
Nov 27 Python
Python如何使用函数做字典的值
Nov 30 Python
详解Tensorflow不同版本要求与CUDA及CUDNN版本对应关系
Aug 04 Python
Python+OpenCV实现图片中的圆形检测
Apr 07 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判断所处服务器操作系统的类型
2013/06/20 PHP
PHP 中常量的知识整理
2017/04/14 PHP
laravel在中间件内生成参数并且传递到控制器中的2种姿势
2019/10/15 PHP
js no-repeat写法 背景不重复
2009/03/18 Javascript
6款新颖的jQuery和CSS3进度条插件推荐
2013/03/05 Javascript
你的 mixin 真的兼容 ECMAScript 5 吗?
2013/04/11 Javascript
innerHTML,outerHTML,innerText,outerText的用法及区别解析
2013/12/16 Javascript
详解JavaScript ES6中的Generator
2015/07/28 Javascript
jquery-tips悬浮提示插件分享
2015/07/31 Javascript
jquery实现简单实用的弹出层效果代码
2015/10/15 Javascript
jQuery中的Deferred和promise 的区别
2016/04/03 Javascript
AngularJS实现单一页面内设置跳转路由的方法
2017/06/28 Javascript
Angular4表单验证代码详解
2017/09/03 Javascript
浅谈js的解析顺序 作用域 严格模式
2017/10/23 Javascript
JavaScript实现求最大公共子串的方法
2018/02/03 Javascript
Webpack4+Babel7+ES6兼容IE8的实现
2019/04/10 Javascript
python双向链表实现实例代码
2013/11/21 Python
详细解读Python中的__init__()方法
2015/05/02 Python
python实现自动登录人人网并采集信息的方法
2015/06/28 Python
浅谈Python生成器generator之next和send的运行流程(详解)
2017/05/08 Python
python中scikit-learn机器代码实例
2018/08/05 Python
值得收藏的10道python 面试题
2019/04/15 Python
python脚本之一键移动自定格式文件方法实例
2019/09/02 Python
opencv resize图片为正方形尺寸的实现方法
2019/12/26 Python
Python之字典添加元素的几种方法
2020/09/30 Python
德国最大的网上足球商店:11teamsports
2019/09/11 全球购物
英国在线购买轮胎、预订汽车、汽车维修和装配网站:Protyre
2020/04/12 全球购物
《夏夜多美》教学反思
2014/02/17 职场文书
2014年寒假社会实践活动心得体会
2014/04/07 职场文书
模具专业自荐信
2014/05/29 职场文书
个人四风问题对照检查材料
2014/09/26 职场文书
2014年政风行风工作总结
2014/11/22 职场文书
学生病假条范文
2015/08/17 职场文书
2016计划生育先进个人事迹材料
2016/02/29 职场文书
公司与个人合作协议书
2016/03/19 职场文书
创业计划书之家教中心
2019/09/25 职场文书