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 用户登录验证的小例子
Mar 06 Python
Python中random模块用法实例分析
May 19 Python
python查看FTP是否能连接成功的方法
Jul 30 Python
Python中在for循环中嵌套使用if和else语句的技巧
Jun 20 Python
python psutil库安装教程
Mar 19 Python
Python把对应格式的csv文件转换成字典类型存储脚本的方法
Feb 12 Python
Python面向对象程序设计构造函数和析构函数用法分析
Apr 12 Python
快速解决pyqt5窗体关闭后子线程不同时退出的问题
Jun 19 Python
python logging模块的使用总结
Jul 09 Python
python3.7 sys模块的具体使用
Jul 22 Python
快速查找Python安装路径方法
Feb 06 Python
python logging模块的使用
Sep 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
web方式ftp
2006/10/09 PHP
PHPThumb PHP 图片缩略图库
2012/03/11 PHP
PHP正则替换函数preg_replace和preg_replace_callback使用总结
2014/09/22 PHP
php中实现获取随机数组列表的自定义函数
2015/04/02 PHP
PHP实现登陆表单提交CSRF及验证码
2017/01/24 PHP
PHP基于phpqrcode类生成二维码的方法详解
2018/03/14 PHP
jquery的ajax从纯真网(cz88.net)获取IP地址对应地区名
2009/12/02 Javascript
再论Javascript下字符串连接的性能
2011/03/05 Javascript
javascript firefox 自动加载iframe 自动调整高宽示例
2013/08/27 Javascript
jquery.validate的使用说明介绍
2013/11/12 Javascript
Js实现动态添加删除Table行示例
2014/04/14 Javascript
js函数定时器实现定时读取系统实时连接数
2014/04/30 Javascript
深入理解Javascript中this的作用域
2014/08/12 Javascript
node.js中的console.assert方法使用说明
2014/12/10 Javascript
input输入框鼠标焦点提示信息
2015/03/17 Javascript
window.onload与$(document).ready()的区别分析
2015/05/30 Javascript
JavaScript的jQuery库插件的简要开发指南
2015/08/12 Javascript
JavaScript实现将文本框的值插入指定位置的方法
2015/08/13 Javascript
JS函数定义方式的区别介绍
2016/03/22 Javascript
基于javascript实现简单的抽奖系统
2020/04/15 Javascript
json与jsonp知识小结(推荐)
2016/08/16 Javascript
微信小程序 在线支付功能的实现
2017/03/14 Javascript
jQuery为某个div加入行样式
2017/06/09 jQuery
javascript实现获取一个日期段内每天不同的价格(计算入住总价格)
2018/02/05 Javascript
vue 使用自定义指令实现表单校验的方法
2018/08/28 Javascript
vue回到顶部监听滚动事件详解
2019/08/02 Javascript
利用js canvas实现五子棋游戏
2020/10/11 Javascript
python中pygame模块用法实例
2014/10/09 Python
Python中使用logging和traceback模块记录日志和跟踪异常
2019/04/09 Python
python3获取控制台输入的数据的具体实例
2020/08/16 Python
英语道歉信范文
2014/01/09 职场文书
作风整顿个人剖析材料
2014/10/06 职场文书
2015年高校图书馆工作总结
2015/04/30 职场文书
2015年暑假工作总结
2015/07/13 职场文书
会议简报格式范文
2015/07/20 职场文书
Python自然语言处理之切分算法详解
2021/04/25 Python