试着写成文档格式~~~,写着玩哈,别喷!

需求来源

疫情期间,公司要求每天上下班邮件打卡,由于重复性强,且内容基本不变,可以考虑用程序一键完成。

需求描述

  • 能一键完成,明显节省时间
  • 主送人和抄送人固定为XXX
  • 主题内容:年月日+部门+姓名+到/离岗,姓名由用户从命令行输入,其它内容要自动给出。例:2020年03月08日-软件开发部-寒尘-离岗
  • 正文内容固定为“上下班打卡”

实现逻辑

用户通过bat脚本来执行程序,首次使用,需要用姓名替换bat脚本中的name字符串。
outlook_auto.bat

python outlook_auto.py name
pause

python程序中可以读取sys.argv[1]获得用户姓名。将主送和抄送写成列表,然后用分号连接成字符串,方便以后扩展。通过time.strftime()获取当前时间,根据AM/PM判断是到岗还是离岗。由于strftime()方法貌似不支持中文,所以需要通过format()将时间格式化成年月日的形式,最后连接成需求所要求的主题样式。
所有变量设置好后,就可以调用pywin32模块中的Windows API,实现一个函数去发送邮件,后续内容参考连接:Python调用outlook发送邮件,发送给多人、抄送给多人并带上附件

具体代码

outlook_auto.py

#! python3
import win32com.client as win32
import time, sysname = sys.argv[1] #通过命令行参数输入姓名addressee_list = ['addr1@123.com','addr2@123.com','addr3@123.com']
addressee_str = ';'.join(addressee_list) #主送人列表cc_list = ['addr4@123.com','addr5@123.com','addr6@123.com']
cc_str = ';'.join(cc_list) #抄送人列表time_str = time.strftime("%Y{}%m{}%d{}%p",time.localtime())
time_subgect = time_str.format('年','月','日')
stat = '到岗' if time_str[-2:] == 'AM' else '离岗'
subgect_str = time_subgect[:-2] + '-软件开发部-' + name + '-' + stat #主题内容content = '上下班打卡' #正文内容def outlook():olook = win32.Dispatch("outlook.Application")mail = olook.CreateItem(0)mail.To = addressee_strmail.CC = cc_strmail.Subject = subgect_strmail.Body = contentmail.Send()if __name__ == '__main__':outlook()print("send email ok!!!!!!!!!!")

python实用脚本1:一键发送上下班打卡邮件相关推荐

  1. Python实用脚本实践

    Python实用脚本实践 一.文件相关 查找文件 import os path = 'xxx' files = os.listdir(path)for f in files:if f.endswith ...

  2. 8 个 Python 实用脚本,赶紧收藏备用!

    脚本写的好,下班下得早!程序员的日常工作除了编写程序代码,还不可避免地需要处理相关的测试和验证工作. 例如,访问某个网站一直不通,需要确定此地址是否可访问,服务器返回什么,进而确定问题在于什么.完成这 ...

  3. python实用脚本 知乎_停课不停学|38 个免费 Python 项目合集,从小白到老司机!...

    1665 年,牛顿在剑桥三一学院就读期间,伦敦发生了著名的鼠疫.这场鼠疫几乎摧毁了整个伦敦城,无论是下层人民还是王室贵族都难逃魔掌,几乎五分之一的伦敦人都在这场鼠疫中丧生. 牛顿被迫回家进行自我隔离, ...

  4. python 实现使用163邮箱发送有图片的邮件

    周末温习下python,正好最近在做监控,想着 给163邮箱发邮件,记录下来,方便备查. 邮件发送必须要知道邮件的 传输协议 SMTP SMTP (Simple Mail Transfer Proct ...

  5. 8个Python实用脚本

    例如,访问某个网站一直不通,需要确定此地址是否可访问,服务器返回什么,进而确定问题在于什么.完成这个任务,如果一味希望采用编译型语言来编写这样的代码,实践中的时间和精力是不够的,这个时候就需要发挥脚本 ...

  6. python parser count_8 个 Python 实用脚本,早掌握早下班!

    脚本写的好,下班下得早!程序员的日常工作除了编写程序代码,还不可避免地需要处理相关的测试和验证工作. 例如,访问某个网站一直不通,需要确定此地址是否可访问,服务器返回什么,进而确定问题在于什么.完成这 ...

  7. python部署脚本_vsftp一键部署脚本

    vsftp一键创建脚本#!/bin/sh #OS: Centos7.2 #filename: auto_install_vsftp.sh users=/etc/vsftpd/vftpuser.txt  ...

  8. python实用脚本-获取软件md5值

    我们下载软件过程中,为了确保下载的软件没有被修改过,可以通过python脚本校验md5值,若与官方给出的md5不一致,则表示该软件被修改过,不安全,若一致,则软件是可信的.举例如下,下载python软 ...

  9. Python实用脚本/算法集合, 附源代码下载

    学习编程.学习Python最好的方式就是练习,哪怕是新手,只要不断地敲代码输出,肯定会有神效. Python的练手项目很多,特别是Github上,建议不管新手.老司机都去看看. 这里推荐给大家两个Gi ...

最新文章

  1. Linux mail 命令参数
  2. ajax 省市级联项目中的实现
  3. win7系统自带截图工具快捷键是什么?怎么设置快捷键
  4. keepalived 安装和配置
  5. 3.1.6 基本分页存储管理的基本概念
  6. C#模拟MSN窗体抖动[原创]
  7. memset()函数详解
  8. Navicat Error 2003 - can't connect to mysql server 'localhost' (10061)
  9. JavaScript与HTML交互——事件
  10. 【C++ STL学习之八】逆向迭代器reverse_iterator
  11. C++ typedef小结(转载)
  12. 将Linux代码移植到Windows的简单方法
  13. Java线程安全队列Queue实现原理
  14. java 格式化 浮点数_DecimalFormat的用法 Java 浮点数 Float Double 小数 格式化 保留小数位后几位等...
  15. 数字IC设计工程师笔试面试经典题
  16. Python 100例
  17. 节奏大师闪退android,安卓节奏大师进不去的原因以及详细解决办法
  18. 量化投资学sql还是mysql_新人如何学习量化投资
  19. 解决centos7安装wps后的光标跟随问题
  20. 200plc与施耐德ATV610变频器modbus通讯

热门文章

  1. 全屋智能调光模块接线图
  2. 谈笑间 樯橹灰飞烟灭
  3. 次坐标从0开始_全站仪使用方法及坐标计算讲解
  4. matlab 十倍频程,Matlab关于三分之一倍频程程序的问题
  5. banner图,常用背景样式
  6. python - 输出列表自动对齐(支持中英文混合)
  7. NBT:可重复交互式的微生物组分析平台QIIME 2(2021.4发布)
  8. 类型多样的食品 食物免抠摄影素材,速来收藏
  9. 这个夏天,北美小伙伴们是如何吃上来自大胡建的荔枝的?
  10. 计算机系统综述3000字,计算机系统试验综述.doc