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 相关文章推荐
在Linux上安装Python的Flask框架和创建第一个app实例的教程
Mar 30 Python
python开发中module模块用法实例分析
Nov 12 Python
Python3之文件读写操作的实例讲解
Jan 23 Python
利用Python读取txt文档的方法讲解
Jun 23 Python
在python中以相同顺序shuffle两个list的方法
Dec 13 Python
python之pexpect实现自动交互的例子
Jul 25 Python
Python使用Pandas对csv文件进行数据处理的方法
Aug 01 Python
python中下标和切片的使用方法解析
Aug 27 Python
python实现坦克大战
Apr 24 Python
Python填充任意颜色,不同算法时间差异分析说明
May 16 Python
详解Tensorflow不同版本要求与CUDA及CUDNN版本对应关系
Aug 04 Python
Python django中如何使用restful框架
Jun 23 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+DBM的同学录程序(2)
2006/10/09 PHP
php 引用(&)详解
2009/11/20 PHP
php学习之 数组声明
2011/06/09 PHP
PHP中使用mktime获取时间戳的一个黑色幽默分析
2012/05/31 PHP
PHP与服务器文件系统的简单交互
2016/10/21 PHP
根据key删除数组中指定的元素实现方法
2017/03/02 PHP
Prototype中dom对象方法汇总
2008/09/17 Javascript
javascript中打印当前的时间实现思路及代码
2013/12/18 Javascript
Js与Jq获取浏览器和对象值的方法
2016/03/18 Javascript
JavaScript实现时间倒计时跳转(推荐)
2016/06/28 Javascript
jQuery+ajax读取并解析XML文件的方法
2016/09/09 Javascript
js评分组件使用详解
2017/06/06 Javascript
浅谈Angular4中常用管道
2017/09/27 Javascript
vue+element的表格实现批量删除功能示例代码
2018/08/17 Javascript
详解微信小程序中组件通讯
2018/10/30 Javascript
js尾调用优化的实现
2019/05/23 Javascript
JS使用new操作符创建对象的方法分析
2019/05/30 Javascript
PyMongo安装使用笔记
2015/04/27 Python
老生常谈Python基础之字符编码
2017/06/14 Python
Python 高级专用类方法的实例详解
2017/09/11 Python
Python3 读、写Excel文件的操作方法
2018/10/20 Python
详解Python字符串切片
2019/05/20 Python
Python使用os.listdir和os.walk获取文件路径
2020/05/21 Python
Python接口自动化测试的实现
2020/08/28 Python
教你使用Sublime text3搭建Python开发环境及常用插件安装另分享Sublime text3最新激活注册码
2020/11/12 Python
英国女鞋购物网站:Moda in Pelle
2019/02/18 全球购物
办公室主任职责范文
2013/11/08 职场文书
业务部经理岗位职责
2014/01/04 职场文书
年级组长自我鉴定
2014/02/22 职场文书
青蓝工程实施方案
2014/03/27 职场文书
2014入党积极分子批评与自我批评思想汇报
2014/09/20 职场文书
2015年秋季小学开学典礼主持词
2015/07/16 职场文书
2015年度工程师评职称工作总结
2015/10/14 职场文书
Python基础之元编程知识总结
2021/05/23 Python
MySQL连表查询分组去重的实现示例
2021/07/01 MySQL
带你了解CSS基础知识,样式
2021/07/21 HTML / CSS