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获取CPU和内存信息的思路与实现(linux系统)
Jan 03 Python
django通过ajax发起请求返回JSON格式数据的方法
Jun 04 Python
Python中列表元素转为数字的方法分析
Jun 14 Python
Python读写Json涉及到中文的处理方法
Sep 12 Python
老生常谈python的私有公有属性(必看篇)
Jun 09 Python
django 常用orm操作详解
Sep 13 Python
python3.6.3安装图文教程 TensorFlow安装配置方法
Jun 24 Python
python爬虫获取百度首页内容教学
Dec 23 Python
Python 类方法和实例方法(@classmethod),静态方法(@staticmethod)原理与用法分析
Sep 20 Python
tensorflow之获取tensor的shape作为max_pool的ksize实例
Jan 04 Python
Python中的min及返回最小值索引的操作
May 10 Python
用Python爬取各大高校并可视化帮弟弟选大学,弟弟直呼牛X
Jun 11 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原理之变量(Variables inside PHP)
2013/08/09 PHP
PHP中模糊查询并关联三个select框
2017/06/19 PHP
PHP实现基于栈的后缀表达式求值功能
2017/11/10 PHP
PHP使用PDO 连接与连接管理操作实例分析
2020/04/21 PHP
List Installed Software Features
2007/06/11 Javascript
纯JavaScript实现HTML5 Canvas六种特效滤镜示例
2013/06/28 Javascript
checkbox选中与未选中判断示例
2014/08/04 Javascript
如何用javascript计算文本框还能输入多少个字符
2015/07/29 Javascript
用AngularJS来实现监察表单按钮的禁用效果
2016/11/02 Javascript
浅析 NodeJs 的几种文件路径
2017/06/07 NodeJs
微信小程序动态显示项目倒计时效果
2017/06/13 Javascript
Javascript中的getter和setter初识
2017/08/17 Javascript
微信小程序实现获取自己所处位置的经纬度坐标功能示例
2017/11/30 Javascript
webpack热模块替换(HMR)/热更新的方法
2018/04/05 Javascript
vue 项目中使用Loading组件的示例代码
2018/08/31 Javascript
vue elementui form表单验证的实现
2018/11/11 Javascript
微信小程序实现星级评价效果
2018/12/28 Javascript
vue如何截取字符串
2019/05/06 Javascript
element-ui组件中input等的change事件中传递自定义参数
2019/05/22 Javascript
vue2.x数组劫持原理的实现
2020/04/19 Javascript
js 实现碰撞检测的示例
2020/10/28 Javascript
uni-app使用countdown插件实现倒计时
2020/11/01 Javascript
python基础教程之数字处理(math)模块详解
2014/03/25 Python
Python实现简单查找最长子串功能示例
2019/02/26 Python
Python3 venv搭建轻量级虚拟环境的步骤(图文)
2019/08/09 Python
python Dijkstra算法实现最短路径问题的方法
2019/09/19 Python
对python中 math模块下 atan 和 atan2的区别详解
2020/01/17 Python
Django如何使用redis作为缓存
2020/05/21 Python
python实现凯撒密码、凯撒加解密算法
2020/06/11 Python
python 通过exifread读取照片信息
2020/12/24 Python
亚马逊中国官方网站:amazon.cn
2017/05/25 全球购物
Casadei卡萨蒂官网:意大利奢侈鞋履品牌
2017/10/28 全球购物
JDO的含义
2012/11/17 面试题
复兴之路观后感3000字
2015/06/02 职场文书
2015年度女工工作总结
2015/10/22 职场文书
golang的文件创建及读写操作
2022/04/14 Golang