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遍历目录并批量更换文件名和目录名的方法
Sep 19 Python
python网络爬虫之如何伪装逃过反爬虫程序的方法
Nov 23 Python
Matplotlib 生成不同大小的subplots实例
May 25 Python
python爬取酷狗音乐排行榜
Feb 20 Python
Python实现简单查找最长子串功能示例
Feb 26 Python
Python实现字符型图片验证码识别完整过程详解
May 10 Python
Python 一键制作微信好友图片墙的方法
May 16 Python
在Python中画图(基于Jupyter notebook的魔法函数)
Oct 28 Python
Python如何优雅获取本机IP方法
Nov 10 Python
nginx搭建基于python的web环境的实现步骤
Jan 03 Python
Python异常继承关系和自定义异常实现代码实例
Feb 20 Python
解决pycharm不能自动保存在远程linux中的问题
Feb 06 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
判断是否为指定长度内字符串的php函数
2010/02/16 PHP
对PHP PDO的一些认识小结
2015/01/23 PHP
php基于curl重写file_get_contents函数实例
2016/11/08 PHP
JavaScript获取GridView选择的行内容
2009/04/14 Javascript
深入浅析AngularJS和DataModel
2016/02/16 Javascript
正则表达式替换html元素属性的方法
2016/11/26 Javascript
轻松玩转BootstrapTable(后端使用SpringMVC+Hibernate)
2017/09/06 Javascript
vue组件发布到npm简单步骤
2017/11/30 Javascript
vue加载自定义的js文件方法
2018/03/13 Javascript
React中的render何时执行过程
2018/04/13 Javascript
解决vuecli3中img src 的引入问题
2020/08/04 Javascript
Node.js fs模块原理及常见用途
2020/10/22 Javascript
[40:13]Ti4 冒泡赛第二天 iG vs NEWBEE 2
2014/07/15 DOTA
使用beaker让Facebook的Bottle框架支持session功能
2015/04/23 Python
Python的Flask开发框架简单上手笔记
2015/11/16 Python
Python入门教程之运算符与控制流
2016/08/17 Python
python 对象和json互相转换方法
2018/03/22 Python
在python带权重的列表中随机取值的方法
2019/01/23 Python
python 实现交换两个列表元素的位置示例
2019/06/26 Python
django 信号调度机制详解
2019/07/19 Python
Django Haystack 全文检索与关键词高亮的实现
2020/02/17 Python
python中setuptools的作用是什么
2020/06/19 Python
英国最大的电子产品和家电零售企业:Currys PC World
2016/09/24 全球购物
Clarks英国官方网站:全球领军鞋履品牌
2016/11/26 全球购物
德国运动营养和健身网上商店:Myprotein.de
2018/07/18 全球购物
法国体育用品商店:GO Sport
2019/10/23 全球购物
学习新党章思想汇报
2014/01/09 职场文书
客户接待方案
2014/02/26 职场文书
学校督导评估方案
2014/06/10 职场文书
临床专业自荐信
2014/06/22 职场文书
优秀团员事迹材料
2014/12/25 职场文书
学生会生活部工作总结2015
2015/03/31 职场文书
东京审判观后感
2015/06/01 职场文书
2015秋季开学典礼主持词
2015/07/16 职场文书
英语教学课后反思
2016/02/15 职场文书
golang 语言中错误处理机制
2021/08/30 Golang