1. import smtplib
  2. from email.mime.text import MIMEText
  3. from email.mime.multipart import MIMEMultipart
  4. from email.header import Header
  5.  
  6. def send_email(sender, receiver, text, subject):
  7. """
  8. 发送纯文本邮件
  9. :param sender:
  10. :param receiver:
  11. :param text:
  12. :param subject:
  13. :return:
  14. """
  15. mail_host = 'smtp.qq.com' # qq邮箱服务地址
  16. smt = smtplib.SMTP() # #实例化SMTP类,这样就可以调用SMTP对象的方法和属性
  17. smt.connect(mail_host, '25') # 连接服务器,第二个参数为端口号
  18. password = "mmmmmm" # 邮箱登录密码(需要进入qq邮箱->设置->账号->获取密码)
  19. try:
  20. smt.login(sender, password) # 登录邮箱,第一参数是发件人邮箱账号、第二个为邮箱登录密码
  21. message = MIMEText(text, 'plain', 'utf-8') # 实例化一个MIMEText邮件对象,该对象需要写进三个参数,分别是邮件正文,文本格式和编码
  22. message['Subject'] = Header(subject, 'utf-8') # 邮件标题
  23. try:
  24. smt.sendmail(sender, receiver, message.as_string()) # 发送邮件操作
  25. print("邮件发送成功")
  26. except:
  27. print("邮件发送失败")
  28. except:
  29. print("登录失败,请检测邮箱、密码是否正确")
  30. smt.quit() # 退出邮箱
  1. import smtplib
  2. from email.mime.text import MIMEText
  3. from email.mime.multipart import MIMEMultipart
  4. from email.header import Header
  5.  
  6. def send_file(sender, receiver, file, subject):
  7. """
  8. 发送带附件的邮件
  9. :param sender:
  10. :param receiver:
  11. :param data:
  12. :param subject:
  13. :return:
  14. """
  15. addr = 'smtp.qq.com'
  16. smt = smtplib.SMTP()
  17. smt.connect(addr, '25')
  18. password = "mmmmmm"
  19. smt.login(sender, password)
  20.  
  21. message = MIMEMultipart()
  22. message['Subject'] = Header(subject, 'utf-8')
  23. message['From'] = Header(sender, 'utf-8')
  24. message['To'] = Header(receiver, 'utf-8')
  25. message.attach(MIMEText("最近一周天气情况", 'plain', 'utf-8'))
  26. att1 = MIMEText(open(file, 'rb').read(), 'base64', 'utf-8')
  27. att1['Content-Type'] = 'application/octet-stream'
  28. att1["Content-Disposition"] = 'attachment, filename="weather.txt'
  29. message.attach(att1)
  30.  
  31. smt.sendmail(sender, receiver, message.as_string())
  1. import smtplib
  2. from email.mime.text import MIMEText
  3. from email.mime.multipart import MIMEMultipart
  4. from email.header import Header
  5. import schedule
  6. import time
  7.  
  8. def job():
  9. """
  10. 定时发送邮件
  11. :return:
  12. """
  13. file = writer_data(get_data())
  14. send_file(sender, receiver, file, subject)
  15.  
  16. schedule.every(2).minutes.do(job)
  17.  
  18. while True:
  19. schedule.run_pending()
  20. time.sleep(2)

python 定时发送邮件的更多相关文章

  1. python (18)在linux中如何实现定时发送邮件

    最近要用到,定时发送邮件功能: 如何定时,当然要用到linux中crontab了 如下的代码能够定时发送邮件 #!/usr/bin/env python # -*- coding=utf-8 -*- ...

  2. python (18)在linux中如何实现定时发送邮件到指定邮箱,监测任务

    最近要用到,定时发送邮件功能: 如何定时,当然要用到linux中crontab了 如下的代码能够定时发送邮件 #!/usr/bin/env python # -*- coding=utf-8 -*- ...

  3. python定时利用QQ邮件发送天气预报

    大致介绍 好久没有写博客了,正好今天有时间把前几天写的利用python定时发送QQ邮件记录一下 1.首先利用request库去请求数据,天气预报使用的是和风天气的API(www.heweather.c ...

  4. odoo定时发送邮件

    采购订单延迟或者存在部分到货的情况,定时发送邮件给相关人员 包含,采购订单明细,订单数量,已到货数量,未到货数量 <?xml version="1.0" encoding=& ...

  5. VBS实现定时发送邮件

    原理:建立CDO.Message对象,设置好参数后直接Send就可以了 代码如下: NameSpace = "http://schemas.microsoft.com/cdo/configu ...

  6. 用python定时文章发布wordpress

    用python定时文章发布wordpress: 流程: 采集 - 筛选文章 - wordpress文章发布. wordpress文章发布代码:python利用模块xmlrpclib发布文章非常便捷,省 ...

  7. spring利用javamail,quartz定时发送邮件 <转>

    原文地址:spring利用javamail,quartz定时发送邮件 <转>作者:物是人非 spring提供的定时发送邮件功能,下面是一个简单的例子以供大家参考,首先从spring配置文件 ...

  8. java实现qq邮箱每天定时发送邮件

    本周四的时候去学校的某机构值班,主要工作是帮老师送文件,干一些杂活.那天没有什么活儿,于是想起用Java实现发送邮件和接收邮件的功能.前几天接触过一点quartz框架,用来实现定时开始任务的功能.于是 ...

  9. python大法好——Python SMTP发送邮件

    Python SMTP发送邮件 SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式. py ...

  10. Python——SMTP发送邮件

    一.定义 SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式.python的smtplib ...

随机推荐

  1. 小程序uni-app发起网络异步请求

    // uni.request({ // url: 'api/boxs/search', // // 使用监听函数防止this指向改变 // success: res => { // // 判断是 ...

  2. VideoPipe可视化视频结构化框架开源了!

    完成多路视频并行接入.解码.多级推理.结构化数据分析.上报.编码推流等过程,插件式/pipe式编程风格,功能上类似英伟达的deepstream和华为的mxvision,但底层核心不依赖复杂难懂的gst ...

  3. liunx之expect操作详解

    导航: 一.expect安装.介绍.使用场景二.expect使用原理三.expect使用语法四.expect使用举例五.expect相关错误处理 - - - - - - - - - 分割线 - - - ...

  4. 【JavaScript排序】 sort()方法(解决null、undefined、0之间的排序(混乱)问题)

    JavaScript排序 - sort()方法 --解决null.undefined.0之间的排序(混乱)问题 一.普通的数组排序 ​ JavaScript中用方法sort()为数组排序.sort() ...

  5. Linux、Windows下Redis的安装即Redis的基本使用详解

    前言 什么是Redis Redis是一个基于内存的key-value结构数据库.Redis 是互联网技术领域使用最为广泛的存储中间件,它是「Remote Dictionary Service」的首字母 ...

  6. 创建线程的方式三:实现Callable接口。 --- JDK 5.0新增

    如何理解实现Callable接口的方式创建多线程比实现Runnable接口创建多线程方式强大? call()可以有返回值的.call()可以抛出异常,被外面的操作捕获,获取异常的信息Callable是 ...

  7. `<jsp:getProperty>`动作和`<jsp:setProperty>`动作的使用在一个静态页面填写图书的基本信息,页面信息提交给其他页面,并且在其页面显示。要去将表单元素的值赋值给Java

    <jsp:getProperty>动作和<jsp:setProperty>动作的使用 1.<jsp:getProperty>动作 语法格式: <jsp:get ...

  8. MinGW配置C语言编译器gcc和g++

    首先,在 https://sourceforge.net/projects/mingw/files/latest/download 下载安装MinGW,如下图所示: 点Installation-> ...

  9. 33.ModelSerializer详解

    ModelSerializer特点 根据Model模型的定义,自动生成字段 自动生成相应的验证器 实现create和update 自动默认将关系字段映射成PrimaryKeyRelatedField主 ...

  10. 三、docker镜像管理

    一.docker镜像管理 1.1.镜像搜索-search 从docker镜像仓库模糊搜索镜像 用法: docker search 镜像关键字 [root@zutuanxue ~]# docker se ...