Python3实现带附件的定时发送邮件功能


Posted in Python onDecember 22, 2020

本文实例为大家分享了Python3定时发送邮件功能的具体代码,供大家参考,具体内容如下

1、 导入模块

import os
import datetime #定时发送,以及日期
import shutil #文件操作
import smtplib #邮件模块
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.header import Header
import time
import xlwt #excel写入

2、写入EXCEL

def eWrite(fLocate,file_sheet,file_subject,style0):
 try:
  if os.path.exists(fLocate):
   os.remove(fLocate) # 如果文件存在,则删除
  f = xlwt.Workbook(encoding='utf-8') #打开excel文件
  fs = f.add_sheet(file_sheet) #sheet名
  subject = list(file_subject) #列表化
  for i in range(len(subject)): #找到日期列
   if '日期' in subject[i]:
    col_num=i
  for i in range(len(subject)): #sheet标题
   fs.write(0, i, subject[i])

  for i in range(10): #单元格宽度为
   fs.col(i).width=3333

  print("WRITE FINISHED")
  f.save(fLocate)
 except :
  print ("WRITE FAILED")

3、发送邮件

def eSend(sender,receiver,username,password,smtpserver,subject,e_content,file_path,file_name):
 try:
#邮件头
  message = MIMEMultipart()
  message['From'] = sender#发送
  message['To'] = ",".join(receiver)#收件
  message['Subject'] = Header(subject, 'utf-8')
  message.attach(MIMEText(e_content, 'plain', 'utf-8'))# 邮件正文

# 构造附件
  att1 = MIMEText(open(file_path+file_name,'rb').read(), 'base64', 'utf-8')
  att1["Content-Type"] = 'application/octet-stream'
  att1["Content-Disposition"] = "attachment;filename="+file_name
  message.attach(att1)

#执行
  smtp = smtplib.SMTP()
  smtp.connect(smtpserver) #连接服务器
  smtp.login(username, password) #登录
  smtp.sendmail(sender, receiver, message.as_string()) #发送
  smtp.quit()
  print("SEND")
 except:
  print("SEND FAILED")

4、配置与执行

while True:
#配置
 #__time_____
 ehour=11#定时小时
 emin=49#定时分钟
 esec=50#定时秒
 current_time = time.localtime(time.time())  #当前时间date
 cur_time = time.strftime('%H%M', time.localtime(time.time()))    #当前时间str
 #__mysql_____

 #__email_____
 sender = '' # 发件人邮箱
 receiver = ['453032441@qq.com'] # 收件人邮箱,可以多个(列表形式)群发
 username = '' # 发件人姓名
 password = '' # smtp密码,qq是给你分配一串,163是自己设置
 smtpserver = '' # 邮箱服务器

 subject = "Hey,here's something interesting"  #邮件标题
 e_content = '{0:^27}\n{1:^27}\n{2:^25}\n{3:^25}'.format('i','/ \\','(-----)','(--------)') #邮件正文
 #__file_____
 file_path = "D:/" #文件位置
 file_name="shit.xls" #文件名
 fLocate = file_path + file_name  #文件路径
 file_subject='I', 'MISS', 'U' #sheet标题
 file_sheet='ok' #sheet名
 style0=xlwt.XFStyle()
 style0.num_format_str='YYYY-MM-DD'
#操作
 if ((current_time.tm_hour == ehour) and (current_time.tm_min == emin) and (current_time.tm_sec == esec)):
  print ("START")
  eWrite(fLocate, file_sheet, file_subject,style0)
  eSend(sender, receiver, username, password, smtpserver, subject, e_content, file_path,file_name)
  print(cur_time)
 time.sleep(1)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python list语法学习(带例子)
Nov 01 Python
Python中单、双下划线的区别总结
Dec 01 Python
python微信跳一跳游戏辅助代码解析
Jan 29 Python
python 自定义异常和异常捕捉的方法
Oct 18 Python
浅谈Python中的bs4基础
Oct 21 Python
使用Python3+PyQT5+Pyserial 实现简单的串口工具方法
Feb 13 Python
python实现简单日期工具类
Apr 24 Python
python处理excel绘制雷达图
Oct 18 Python
Python 实现递归法解决迷宫问题的示例代码
Jan 12 Python
序列化Python对象的方法
Aug 01 Python
python+pygame实现坦克大战小游戏的示例代码(可以自定义子弹速度)
Aug 11 Python
Python 打印自己设计的字体的实例讲解
Jan 04 Python
python正则实现提取电话功能
Feb 24 #Python
python3实现公众号每日定时发送日报和图片
Feb 24 #Python
详解如何在python中读写和存储matlab的数据文件(*.mat)
Feb 24 #Python
使用python和pygame绘制繁花曲线的方法
Feb 24 #Python
python3操作微信itchat实现发送图片
Feb 24 #Python
python自动12306抢票软件实现代码
Feb 24 #Python
浅谈Python中的zip()与*zip()函数详解
Feb 24 #Python
You might like
使用Composer安装Yii框架的方法
2016/03/15 PHP
PHP实现的一致性Hash算法详解【分布式算法】
2018/03/31 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
2019/11/21 PHP
JavaScript 全面解析各种浏览器网页中的JS 执行顺序
2009/02/17 Javascript
jQuery 表单验证插件formValidation实现个性化错误提示
2009/06/23 Javascript
Mootools 1.2教程 正则表达式
2009/09/15 Javascript
JavaScript 类似flash效果的立体图片浏览器
2010/02/08 Javascript
用js写了一个类似php的print_r输出换行功能
2013/02/18 Javascript
Javascript 命名空间模式
2013/11/01 Javascript
jQuery中parents()和parent()的区别分析
2014/10/28 Javascript
JavaScript数组去重的3种方法和代码实例
2015/07/01 Javascript
jQuery遮罩层效果实例分析
2016/01/14 Javascript
异步加载JS、CSS代码(推荐)
2016/06/15 Javascript
jquery实现ajax加载超时提示的方法
2016/07/23 Javascript
Javascript 判断两个IP是否在同一网段实例代码
2016/11/28 Javascript
vue-cli项目配置多环境的详细操作过程
2018/10/30 Javascript
Laravel 如何在blade文件中使用Vue组件的示例代码
2020/06/28 Javascript
vue v-for 点击当前行,获取当前行数据及event当前事件对象的操作
2020/09/10 Javascript
python爬虫框架scrapy实现模拟登录操作示例
2018/08/02 Python
Python基于OpenCV库Adaboost实现人脸识别功能详解
2018/08/25 Python
celery4+django2定时任务的实现代码
2018/12/23 Python
python sort、sort_index方法代码实例
2019/03/28 Python
Python调用接口合并Excel表代码实例
2020/03/31 Python
python数据处理——对pandas进行数据变频或插值实例
2020/04/22 Python
django 模版关闭转义方式
2020/05/14 Python
完美解决Django2.0中models下的ForeignKey()问题
2020/05/19 Python
Python Opencv实现单目标检测的示例代码
2020/09/08 Python
css3实现文字扫光渐变动画效果的示例
2017/11/07 HTML / CSS
Darphin迪梵官网: 来自巴黎,植物和精油调制的护肤品牌
2016/10/11 全球购物
幼师求职信
2014/06/23 职场文书
党政领导班子群众路线对照检查材料思想汇报
2014/09/27 职场文书
涉及车辆房产分割的离婚协议书范文
2014/10/12 职场文书
雷锋的观后感
2015/06/10 职场文书
《狮子和鹿》教学反思
2016/02/16 职场文书
python爬虫之爬取笔趣阁小说
2021/04/22 Python
php实例化对象的实例方法
2021/11/17 PHP