百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

简化日常工作系列之四 ---- 定时发送带附件的工作汇报邮件

off999 2024-12-13 15:37 33 浏览 0 评论

很久没有更新博客了,从6月初开始接手了公司项目组的管理工作,一直忙于各种开发计划和统筹安排,手里也积攒了一些实践。 简化日常工作其中有一项是给相关工作伙伴或者上级发送每日(或每周)工作情况汇报的邮件,这是一个略微让人很烦躁的工作,你得输入对方邮箱地址,添加相关附件,然后发送。实际上我们可以用脚本去完成这些任务,每当接近下班的时候,定时发送附件邮件。我以python为实现语言,写了一个基本的脚本。

不多说,show the code:

# -*- coding: utf-8 -*-
import smtplib
import email.MIMEMultipart# import MIMEMultipart
import email.MIMEText# import MIMEText
import email.MIMEBase# import MIMEBase
import os.path
import mimetypes
import time

From = "fffs@sss.com"
To = "xxx@163.com"
dateStr = time.strftime("%Y-%m-%d", time.localtime(time.time))
file_name = "C:\Users\Thinkpad\Desktop\dailyFiles" + "\\" + dateStr + "\work.txt"
print file_name


server = smtplib.SMTP_SSL("smtp.exmail.qq.com", 465)
server.login(From,"xxx") #仅smtp服务器需要验证时

# 构造MIMEMultipart对象做为根容器
main_msg = email.MIMEMultipart.MIMEMultipart

# 判断是否是空内容
file_context = open(file_name).read.strip
if (file_context == 'today work is:'):
    # 相当于内容为空,给自己发一份提示邮件
    text_msg = email.MIMEText.MIMEText("你今日的工作情况还未做记录,请检查后手动运行该脚本发送邮件。",_charset="utf-8")
    main_msg.attach(text_msg)
    main_msg['From'] = From
    main_msg['To'] = From
    main_msg['Subject'] = "今日工作汇报发送失败"
    main_msg['Date'] = email.Utils.formatdate
    # 得到格式化后的完整文本
    fullText = main_msg.as_string
    # 用smtp发送邮件
    try:
        server.sendmail(From, From, fullText)
    finally:
        print 'success!'
        server.quit

    print u"你今日的工作情况还未做记录,请检查后手动运行该脚本发送邮件。"
    exit


# 构造MIMEText对象做为邮件显示内容并附加到根容器
text_msg = email.MIMEText.MIMEText("你好,今日的工作情况见附件",_charset="utf-8")
main_msg.attach(text_msg)

# 构造MIMEBase对象做为文件附件内容并附加到根容器

## 读入文件内容并格式化 
data = open(file_name, 'rb')
ctype,encoding = mimetypes.guess_type(file_name)
if ctype is None or encoding is not None:
    ctype = 'application/octet-stream'
maintype,subtype = ctype.split('/',1)
file_msg = email.MIMEBase.MIMEBase(maintype, subtype)
file_msg.set_payload(data.read)
data.close
email.Encoders.encode_base64(file_msg)#把附件编码

## 设置附件头
basename = os.path.basename(file_name)
file_msg.add_header('Content-Disposition','attachment', filename = basename)#修改邮件头
main_msg.attach(file_msg)

# 设置正文内容
# # 设置根容器属性
main_msg['From'] = From
main_msg['To'] = To
main_msg['Subject'] = "今日工作汇报"
main_msg['Date'] = email.Utils.formatdate

# 得到格式化后的完整文本
fullText = main_msg.as_string

# 用smtp发送邮件
try:
    server.sendmail(From, To, fullText)
finally:
    print 'success!'
    server.quit

简单讲就是利用stmp服务,把之前博客里讲的每日生成的工作日志以附件形式添加到邮件里(http://www.cnblogs.com/freephp/p/5148320.html),邮件里的正文一般也是固定的内容或者格式,这也是可以用脚本定时发送的原因。我们只需在固定的文本文件(就是附件文件)里写我们的工作情况即可。在程序最开头的地方我有去判断是否附件里没有写内容,若因为忘记写内容而直接发送出去会比较囧,所以加以判断,无内容则用邮件方式给自己邮箱发送一封提示邮件,督促自己补上内容,再手动run一下这个脚本吧。

当然有人会提出一个问题:干嘛不封装成类?

答:对于这样简单的功能,函数式的调用可读性更强。且功能不够多,封装优势不太明显。面向对象只是一种代码组装的方式,它从来不是在任何时候都是最佳选择。

其实很多自动化的实践都来源于实际工作,这个脚本我以应用到自己的项目组内,效果还不错。邮件不能完全代替及时的沟通,但它是一种正式和归纳的信息反馈。对于这样的交流方式,我更关注于内容,而不是花时间在繁琐地操作上。

对于这个小脚本我还可以深入思考关于邮件方面的是:

1.群发抄送联系人的功能也是很实用的,可以新增该功能。

2.对邮件内容的审核过滤,防止发生意外(侧漏)。

3.对邮箱中新增邮件进行的关键字遍历,这样不用每次一个一个去点,直接找到需要的功能。

4.自动回复邮件,对一些特定需回复的邮件,可以解析内容然后自动回复。

最后:

人生苦短,快用python.

相关推荐

office2010不激活可以用吗(window10中office不激活可以吗)

可以购买正版授权码激活或激活工具,不激活也可以一直用,但是每一次打开都会弹框。可以使用。因为Office2010不激活后,只会出现一个提醒框,并不影响软件的正常使用。但是未激活的Office2010不...

雨林木风在线重装系统(雨林木风系统安装教程win10)

一,一般雨林木风番茄花园之类的盗版系统重装系统后都是自动激活的,不需要再重新激活。二,如果偶尔系统提示没有激活的话,上系统之家等网站可以下载激活码,按提示激活即可。三,不建议安装雨林木风之类的盗版系统...

系统镜像文件放在哪里(系统镜像文件放在哪里好)

镜像文件路径在安装的U盘内有显示,如果没有显示,那是文件不对,或被解压了。镜像文件是一些压缩文件的统称。常见的有img格式的文件(例如,文本文件的格式是txt),它通常是用特定的软件,将本身自带启动文...

mtu设置多少最好(mtu设置多少最好 4g)

路由器MTU的设置应根据网络情况决定,各种网络环境建议使用的MTU值如下:1.1500—以太网信息包最大值,也是默认值,是没有PPPoE和虚拟专用网络的网络连接的典型设置。是大部分路由器,网络适配器和...

u盘最便宜多少钱一个(u盘最低价格)

一般情况下,一分钱,一分货;没有又便宜,货又好的事情。1、扩容盘。扩容盘是用PC技术,在量产时运用容量优先,输入了固定的容量,但它真实的容量只有标称容量的10倍左右。512M没人要的U盘扩容成4G,它...

小白三步装机教程(小白三步装机法)

下面给大家整理了一份小白装机的详细教程,有需要的朋友们快来看看吧!1、我们下载一个小白软件,然后选择了安装win7系统。2、在下载界面,下载速度取决于您的网络您只需要耐心等待即可。3、软件下载完成后会...

winpe下载官网下载iso(winpe.iso下载)

你好,以winpe装win7iso系统说明安装步骤:  1、根据教程制作好winpe启动盘,然后将下载的win7iso系统文件直接复制到U盘的GHO目录下;  2、在需要装系统的电脑上...

把系统装在u盘(把系统装在u盘里的缺点)

系统装进U盘有效的方法。1、下载并且安装好大白菜装机版,打开安装好的大白菜装机版,插入u盘等待软件成功读取到u盘之后,点击“一键制作启动u盘”进入下一步操作:2、弹出的信息提示窗口中,选择自己下载的的...

恢复出厂设置对电脑有影响吗

电脑恢复出厂设置,对系统没有影响,原因如下:1、系统还原是电脑在使用中的一种正常运作,不还原电脑无法正常运行,系统还原是对电脑的维护,不会对电脑或系统造成损害。2、系统还原是一次大容量的数据读写、清除...

注册邮箱163免费登录入口官网

注册网易邮箱账号步骤如下:1、在浏览器的地址栏输入http://email.163.com/进入网易邮箱的登录页面,点击页面下方的立即注册2、点击立即注册进入邮箱的注册页面,点击页面上面的注册字母邮箱...

产品密钥win10专业版激活密钥免费

1不存在永久激活密钥,但可以使用一些有效期长的密钥去激活Win10专业版。2Windows10的激活方式是基于数字权利,当你购买Windows10时,系统会将您电脑的硬件信息和购买记录绑定在一起...

ghostxp系统下载怎么安装教程

系统之家下载的XP系统通常是一个ISO镜像文件,安装这个系统需要通过一些步骤来制作可启动安装介质并进行系统安装。以下是安装的基本步骤:准备安装介质:使用工具如Rufus或AnyBurn将下载的ISO文...

无线网桥监控安装方法(无线网桥怎么连接监控)

网桥连接无线路由器安装的设置方法如下1.主路由器上网正常,副路由器LAN口插一根网线,另一头连接电脑。主副路由器不需要用网线连接。2.电脑开机输入副路由器背面的设置地址,进入登录界面输入背面的账号密码...

怎么对电脑文件夹加密(怎么对电脑文件夹加密码)

1.右键点要加密的文件或文件夹,然后单击“属性”;2.在“常规”选项卡,点击“高级”。选中“加密内容以便保护数据”复选框;3.在加密文件夹时,系统将询问是否要同时加密它的子文件夹。要如果选择是,那它的...

windows系统下载手机(win10下载手机)

OPPO手机重新下载安装系统:先备份好重要数据!然后手机连接电脑把下载的固件存入手机。然后再长按电源键十秒钟进入关机状态(可拆卸电板的需取下电板然后重新安装)。再同时按住电源键跟音量减键,进入reco...

取消回复欢迎 发表评论: