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

最新文章

  1. The Safe Navigation Operator (&.) in Ruby
  2. python模块介绍- collections(5)-OrderedDict 有序字典
  3. uTenux\AT91SAM3S4C开发套件———硬件电路介绍
  4. WinForm 弹框确认后执行
  5. [Hapi.js] Managing State with Cookies
  6. VMware的CentOS无法上网的解决方法
  7. 聊天系统Demo,增加文件传送功能(附源码)-- ESFramework 4.0 快速上手(14)
  8. Effective前端6:避免页面卡顿
  9. 使用VMware Workstation安装win7镜像文件时遇见的错误
  10. java语言实现树
  11. Hive 自定义函数
  12. 分别使用POI和JXL导出数据到Excel
  13. WebSocket(5)---多人聊天系统
  14. mysql监控每一条执行的sql语句
  15. 洛谷 P1443 马的遍历
  16. Python进阶(三)
  17. MySQL的用户的创建以及远程登录配置
  18. Chap5:数字货币交易[《区块链中文词典》维京&甲子]
  19. Interrupt handler
  20. 常用工具说明--Java的常用工具

热门文章

  1. InetAddress.getLocalHost() 执行很慢?
  2. P6189 [NOI Online #1 入门组] 跑步 (DP/根号分治)
  3. 分布式存储系统之Ceph集群启用Dashboard及使用Prometheus监控Ceph
  4. 从0开始写一个简单的vite hmr 插件
  5. uoj348【WC2018】州区划分
  6. NOI2011阿狸的打字机
  7. Hudi 数据湖的插入,更新,查询,分析操作示例
  8. 第二阶段:高级核心基础知识·第4章shell特性·2
  9. SpringBoot 阶段测试 1
  10. iOS- 最全的真机测试教程