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中使用装饰器来优化尾递归的示例
Jun 18 Python
利用Python批量生成任意尺寸的图片
Aug 29 Python
Python 常用 PEP8 编码规范详解
Jan 22 Python
pygame实现弹力球及其变速效果
Jul 03 Python
Python实现KNN邻近算法
Jan 28 Python
Python 查看list中是否含有某元素的方法
Jun 27 Python
python Selenium实现付费音乐批量下载的实现方法
Jan 24 Python
python中break、continue 、exit() 、pass终止循环的区别详解
Jul 08 Python
TensorFlow基本的常量、变量和运算操作详解
Feb 03 Python
Jupyter Notebook 文件默认目录的查看以及更改步骤
Apr 14 Python
python读取图像矩阵文件并转换为向量实例
Jun 18 Python
Python pandas对excel的操作实现示例
Jul 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
解析CodeIgniter自定义配置文件
2013/06/18 PHP
以文件形式缓存php变量的方法
2015/06/26 PHP
Centos PHP 扩展Xchche的安装教程
2016/07/09 PHP
PHP请求Socket接口测试实例
2016/08/12 PHP
js onmousewheel事件多次触发问题解决方法
2014/10/17 Javascript
jQuery实现瀑布流的取巧做法分享
2015/01/12 Javascript
JQuery boxy插件在IE中边角图片不显示问题的解决
2015/05/20 Javascript
AngularJS 依赖注入详解及示例代码
2016/08/17 Javascript
微信小程序图片自适应支持多图实例详解
2017/06/21 Javascript
Vue.js实现网格列表布局转换方法
2017/08/25 Javascript
vue2.0 自定义 饼状图 (Echarts)组件的方法
2018/03/02 Javascript
解决vue处理axios post请求传参的问题
2018/03/05 Javascript
Layui数据表格之获取表格中所有的数据方法
2018/08/20 Javascript
使用vue脚手架(vue-cli)搭建一个项目详解
2019/05/09 Javascript
jquery3和layui冲突导致使用layui.layer.full弹出全屏iframe窗口时高度152px问题
2019/05/12 jQuery
分享一款超好用的JavaScript 打包压缩工具
2020/04/26 Javascript
详解JavaScript 的执行机制
2020/09/18 Javascript
HTML元素拖拽功能实现的完整实例
2020/12/04 Javascript
使用js原生实现年份轮播选择效果实例
2021/01/12 Javascript
javascript实现数字时钟效果
2021/02/06 Javascript
利用python画一颗心的方法示例
2017/01/31 Python
pip已经安装好第三方库但pycharm中import时还是标红的解决方案
2020/10/09 Python
为您的家、后院、车库等在线购物:Spreetail
2019/06/17 全球购物
店长岗位的工作内容
2013/11/12 职场文书
八年级英语教学反思
2014/01/09 职场文书
项目计划书范文
2014/01/09 职场文书
咖啡书吧创业计划书
2014/01/13 职场文书
2014年最新学习全国两会精神心得
2014/03/17 职场文书
《海底世界》教学反思
2014/04/16 职场文书
竞选班干部演讲稿
2014/04/24 职场文书
早读课迟到检讨书
2014/09/25 职场文书
2014年乡镇安全生产工作总结
2014/12/02 职场文书
中学教代会开幕词
2016/03/04 职场文书
python实现批量移动文件
2021/04/05 Python
Python 实现定积分与二重定积分的操作
2021/05/26 Python
Python中的协程(Coroutine)操作模块(greenlet、gevent)
2022/05/30 Python