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网络编程之TCP通信实例和socketserver框架使用例子
Apr 25 Python
详解Python中最难理解的点-装饰器
Apr 03 Python
浅谈Python中的可变对象和不可变对象
Jul 07 Python
Python实现按学生年龄排序的实际问题详解
Aug 29 Python
python调用Delphi写的Dll代码示例
Dec 05 Python
解决Pycharm中import时无法识别自己写的程序方法
May 18 Python
python实现括号匹配的思路详解
Aug 23 Python
python 将json数据提取转化为txt的方法
Oct 26 Python
Python判断以什么结尾以什么开头的实例
Oct 27 Python
Django框架实现的简单分页功能示例
Dec 04 Python
Python字符串和正则表达式中的反斜杠('\')问题详解
Sep 03 Python
python实现遍历文件夹图片并重命名
Mar 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
《Re:从零开始的异世界生活 冰结之绊》
2020/04/09 日漫
php统计文件大小,以GB、MB、KB、B输出
2011/05/29 PHP
PHP之短标签开启设置
2013/06/17 PHP
php float不四舍五入截取浮点型字符串方法总结
2013/10/28 PHP
PHP简单实现“相关文章推荐”功能的方法
2014/07/19 PHP
thinkPHP5.1框架中Request类四种调用方式示例
2019/08/03 PHP
11款新鲜的jQuery插件[附所有demo下载]
2011/01/24 Javascript
固定表格行列(expression)在IE下适用
2013/07/25 Javascript
JavaScript作用域链示例分享
2014/05/27 Javascript
JQuery中属性过滤选择器用法实例分析
2015/05/18 Javascript
javascript数据类型验证方法
2015/12/31 Javascript
jQuery实现点击弹出背景变暗遮罩效果实例代码
2016/06/24 Javascript
Bootstrap插件全集
2016/07/18 Javascript
原生JS实现轮播效果+学前端的感受(防止走火入魔)
2016/08/21 Javascript
js模仿微信朋友圈计算时间显示几天/几小时/几分钟/几秒之前
2017/04/27 Javascript
详解微信小程序Page中data数据操作和函数调用
2017/09/27 Javascript
详解Vue + Vuex 如何使用 vm.$nextTick
2017/11/20 Javascript
详解基于Koa2开发微信二维码扫码支付相关流程
2018/05/16 Javascript
详解JSON和JSONP劫持以及解决方法
2019/03/08 Javascript
Vue使用.sync 实现父子组件的双向绑定数据问题
2019/04/04 Javascript
在Python中使用lambda高效操作列表的教程
2015/04/24 Python
浅谈python的深浅拷贝以及fromkeys的用法
2019/03/08 Python
linux环境下安装python虚拟环境及注意事项
2020/01/07 Python
python global和nonlocal用法解析
2020/02/03 Python
Python使用enumerate获取迭代元素下标
2020/02/03 Python
Anaconda3+tensorflow2.0.0+PyCharm安装与环境搭建(图文)
2020/02/18 Python
tensorflow从ckpt和从.pb文件读取变量的值方式
2020/05/26 Python
python实现猜数游戏(保存游戏记录)
2020/06/22 Python
用gpu训练好的神经网络,用tensorflow-cpu跑出错的原因及解决方案
2021/03/03 Python
市场营销调查计划书
2014/05/02 职场文书
乡镇党的群众路线教育实践活动剖析材料
2014/10/09 职场文书
在校证明模板
2015/06/17 职场文书
三八妇女节致辞
2015/07/31 职场文书
HR必备:超全面的薪酬待遇管理方案!
2019/07/12 职场文书
六年级上册《闻官军收河南河北》的教学设计
2019/11/15 职场文书
python神经网络 tf.name_scope 和 tf.variable_scope 的区别
2022/05/04 Python