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爬取网站数据保存使用的方法
Nov 20 Python
列举Python中吸引人的一些特性
Apr 09 Python
详解python并发获取snmp信息及性能测试
Mar 27 Python
Python 机器学习库 NumPy入门教程
Apr 19 Python
python opencv实现图片旋转矩形分割
Jul 26 Python
Python实现随机创建电话号码的方法示例
Dec 07 Python
PyQt5内嵌浏览器注入JavaScript脚本实现自动化操作的代码实例
Feb 13 Python
Python日期时间Time模块实例详解
Apr 15 Python
DataFrame.groupby()所见的各种用法详解
Jun 14 Python
python连接mysql有哪些方法
Jun 24 Python
python virtualenv虚拟环境配置与使用教程详解
Jul 13 Python
asyncio异步编程之Task对象详解
Mar 13 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获取网址的顶级域名函数代码
2012/09/24 PHP
解析Extjs与php数据交互(增删查改)
2013/06/25 PHP
利用php下载xls文件(自己动手写的)
2014/04/18 PHP
PHP之uniqid()函数用法
2014/11/03 PHP
PHP实现的策略模式示例
2019/03/20 PHP
TP5(thinkPHP框架)实现后台清除缓存功能示例
2019/05/29 PHP
jQuery cdn使用介绍
2013/05/08 Javascript
JS取request值以及自动执行使用示例
2014/02/24 Javascript
JavaScript通过Date-Mask将日期转换成字符串的方法
2015/06/04 Javascript
jQuery实现简单的列表式导航菜单效果代码
2015/08/31 Javascript
基于JavaScript代码实现随机漂浮图片广告
2016/01/05 Javascript
JS动态改变浏览器标题的方法
2016/04/06 Javascript
nodejs之get/post请求的几种方式小结
2017/07/26 NodeJs
layui 设置table 行的高度方法
2018/08/17 Javascript
Vue项目中ESlint规范示例代码
2019/07/04 Javascript
微信小程序实现Swiper轮播图效果
2019/11/22 Javascript
javaScript中indexOf用法技巧
2019/11/26 Javascript
vue自定义组件(通过Vue.use()来使用)即install的用法说明
2020/08/11 Javascript
JavaScript实现图片放大预览效果
2020/11/02 Javascript
python中尾递归用法实例详解
2015/04/28 Python
python绘图方法实例入门
2015/05/19 Python
使用pyqt5 tablewidget 单元格设置正则表达式
2019/12/13 Python
解决numpy矩阵相减出现的负值自动转正值的问题
2020/06/03 Python
django haystack实现全文检索的示例代码
2020/06/24 Python
win10安装python3.6的常见问题
2020/07/01 Python
利用纯css3实现的文字亮光特效的代码演示
2014/11/27 HTML / CSS
校园门卫岗位职责
2013/12/09 职场文书
大学四年职业生涯规划书范文
2014/01/02 职场文书
简历上的自我评价怎么写
2014/01/28 职场文书
委托书怎样写
2014/08/30 职场文书
2014年党小组工作总结
2014/12/20 职场文书
三峡大坝导游词
2015/01/31 职场文书
2015年大学辅导员工作总结
2015/05/12 职场文书
消防演习感想
2015/08/10 职场文书
中学音乐课教学反思
2016/02/18 职场文书
Win11局域网共享权限在哪里设置? Win11高级共享的设置技巧
2022/04/05 数码科技