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基于windows平台锁定键盘输入的方法
Mar 05 Python
解决Python出现_warn_unsafe_extraction问题的方法
Mar 24 Python
numpy中loadtxt 的用法详解
Aug 03 Python
python TKinter获取文本框内容的方法
Oct 11 Python
将pip源更换到国内镜像的详细步骤
Apr 07 Python
Python Pandas实现数据分组求平均值并填充nan的示例
Jul 04 Python
Python使用正则表达式分割字符串的实现方法
Jul 16 Python
Python实现基于SVM的分类器的方法
Jul 19 Python
详解Python 4.0 预计推出的新功能
Jul 26 Python
将自己的数据集制作成TFRecord格式教程
Feb 17 Python
jupyter notebook oepncv 显示一张图像的实现
Apr 24 Python
python中操作文件的模块的方法总结
Feb 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
thinkphp3.2.2实现生成多张缩略图的方法
2014/12/19 PHP
php错误日志简单配置方法
2016/07/11 PHP
基于PHP微信红包的算法探讨
2016/07/21 PHP
javascript中的array数组使用技巧
2010/01/31 Javascript
angularJS 入门基础
2015/02/09 Javascript
js实现透明度渐变效果的方法
2015/04/10 Javascript
JavaScript实现拖拽网页内元素的方法
2015/04/15 Javascript
基于jQuery通过jQuery.form.js插件实现异步上传
2015/12/13 Javascript
js右下角弹出提示框示例代码
2016/01/12 Javascript
JSONP和批量操作功能的实现方法
2016/08/21 Javascript
8 行 Node.js 代码实现代理服务器
2016/12/05 Javascript
jQuery实现鼠标滑过图片移动特效
2016/12/08 Javascript
利用jQuery实现一个简单的表格上下翻页效果
2017/03/14 Javascript
JS将网址url转化为JSON格式的方法
2018/07/02 Javascript
vue移动端项目缓存问题实践记录
2018/10/29 Javascript
vue的for循环使用方法
2019/02/12 Javascript
layer.open弹层查看缩略图的原图,自适应大小的实例
2019/09/05 Javascript
微信小程序地图绘制线段并且测量(实例代码)
2020/01/02 Javascript
[15:28]DOTA2 HEROS教学视频教你分分钟做大人-剧毒术士
2014/06/13 DOTA
[01:17]辉夜杯战队访谈宣传片—EHOME
2015/12/25 DOTA
[42:32]VP vs RNG 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.21.mp4
2020/07/19 DOTA
python发送邮件接收邮件示例分享
2014/01/21 Python
python发送邮件示例(支持中文邮件标题)
2014/02/16 Python
Python自定义线程类简单示例
2018/03/23 Python
利用Python模拟登录pastebin.com的实现方法
2019/07/12 Python
python requests更换代理适用于IP频率限制的方法
2019/08/21 Python
Python彻底删除文件夹及其子文件方式
2019/12/23 Python
python字符串判断密码强弱
2020/03/18 Python
使用OpenCV获取图像某点的颜色值,并设置某点的颜色
2020/06/02 Python
html5 canvas绘制放射性渐变色效果
2018/01/04 HTML / CSS
匡威英国官网:Converse英国
2018/12/02 全球购物
新学期校长寄语
2014/01/18 职场文书
活动总结新闻稿
2014/08/30 职场文书
保安辞职信范文
2015/02/28 职场文书
一篇文章弄懂Python中的内建函数
2021/08/07 Python
10大幻兽系恶魔果实 蝙蝠果实上榜,第一自愈能力强
2022/03/18 日漫