用 Python 写脚本发送工作周报
事情的起因是这样的,每周都要发送工作周报,标题是需要的固定的格式(方便规则收信),比如 【工作周报】 xxx 11.20-11.24,发送和抄送也是给固定的人,企业邮箱还没有模板,所以每次发邮件都要复制粘贴标题、发送人和抄送人,只有内容是手写,便萌发了用脚本发送邮件的想法。
用脚本只需要第一次使用的时候配置收件人、抄送人和标题的格式,之后就只需要:
1.双击脚本文件
2.输入时间,如 11.20-11.24
3.输入周报内容
配置
# 配置项 from_addr = 'wangxiubin@bbbbbbbb.com' # 发送方邮箱 password = 'passMhr22i6Uword' # 发送方邮箱的密码(企业邮箱-设置-客户端专用密码) to_addr = 'abcdefg@bbbbbbbb.com' # 收件人邮箱 cc_addr = 'abcdrfghij@bbbbbbbb.com' # 抄送人邮箱 from_name = '王修斌' # 发件人姓名 # QQ 企业邮箱不用修改 smtp_addr = 'smtp.exmail.qq.com' smtp_port = 465
构建邮件
def _build_msg(content,date): msg = MIMEText(content, 'plain', 'utf-8') msg['From'] = _format_addr('%s <%s>' % (from_name, from_addr) ) msg['To'] = _format_addr( 'zhuyue <%s>' % to_addr ) msg['CC'] = _format_addr( 'bplus-ios <%s>' % cc_addr ) msg['Subject'] = Header('【B+iOS周报】 %s %s' % (from_name, date), 'utf-8').encode() return msg
发送邮件
def send_email(msg): print try: print '初始化 SMTP...' server = smtplib.SMTP_SSL(smtp_addr, smtp_port) print '初始化 SMTP 成功' # server.set_debuglevel(1) print '开始登陆邮箱服务...' server.login(from_addr, password) print '开始发送邮件...' server.sendmail(from_addr, [to_addr], msg.as_string()) print '邮件发送成功!' except server.SMTPException,e: print '邮件发送失败 %s' % e finally: server.quit()
GUI
def sendEmailCommand(): input_date = app.dateInput.get() msg_content = app.content.get("0.0", "end") send_email(_build_msg(msg_content, input_date)) class Application(Frame): def __init__(self, master=None): Frame.__init__(self, master) self.pack() self.createWidgets() def createWidgets(self): self.header = Frame() self.dateLabel = Label(self.header, text='周报标题日期(如 11.20-11.24):') self.dateLabel.grid(row=0,column=0) self.dateInput = Entry(self.header) self.dateInput.grid(row=0,column=1) self.sendButton = Button(self.header, text='发送', command=sendEmailCommand) self.sendButton.grid(row=0,column=2) self.content = Text(self,padx=10) self.content.insert(END, '本周任务:\n\n下周任务:\n\n风险评估:\n') self.content.pack() self.header.pack() app = Application() # 设置窗口标题: app.master.title('发送周报邮件') # 主消息循环: app.mainloop()
使用
cd 脚本目录 python GUI.py
或者修改名称 GUI.command 方便双击打开。 执行时提示权限不足可在终端执行 chmod +x GUI.command
效果预览
终端输出:
初始化 SMTP... 初始化 SMTP 成功 开始登陆邮箱服务... 开始发送邮件... 邮件发送成功!
最终只需要在脚本的图形界面中输入时间段和内容,然后点击发送,美滋滋~ 以后再也不用 command+C 、command+V 了
协议/License
本作品 用 Python 写脚本发送工作周报 采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 进行许可,基于 https://iosgg.cn/2017/10/10/send-week-report-email/ 上的作品创作。
相关推荐
-
MySQL的sql_mode合理设置 python基础
2019-7-28
-
Python利用sphinx构建个人博客「文末含shell笔记」 python基础
2019-10-9
-
Python工程的文档结构 python基础
2019-11-1
-
【python系统学习14】类的继承与创新 python基础
2020-6-11
-
TypeError: unorderable types: str() >= int() python基础
2019-9-10
-
Python 的 enum 模块源码分析 python基础
2018-12-11
-
Python Scrapy 爬虫框架爬取推特信息及数据持久化 python基础
2020-6-17
-
说说Python中的单元测试 python基础
2019-2-9
-
用Python 进行深度学习 python基础
2020-7-4
-
HTTP详解 python基础
2019-8-16