python实用脚本1:一键发送上下班打卡邮件
试着写成文档格式~~~,写着玩哈,别喷!
需求来源
疫情期间,公司要求每天上下班邮件打卡,由于重复性强,且内容基本不变,可以考虑用程序一键完成。
需求描述
- 能一键完成,明显节省时间
- 主送人和抄送人固定为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:一键发送上下班打卡邮件相关推荐
- Python实用脚本实践
Python实用脚本实践 一.文件相关 查找文件 import os path = 'xxx' files = os.listdir(path)for f in files:if f.endswith ...
- 8 个 Python 实用脚本,赶紧收藏备用!
脚本写的好,下班下得早!程序员的日常工作除了编写程序代码,还不可避免地需要处理相关的测试和验证工作. 例如,访问某个网站一直不通,需要确定此地址是否可访问,服务器返回什么,进而确定问题在于什么.完成这 ...
- python实用脚本 知乎_停课不停学|38 个免费 Python 项目合集,从小白到老司机!...
1665 年,牛顿在剑桥三一学院就读期间,伦敦发生了著名的鼠疫.这场鼠疫几乎摧毁了整个伦敦城,无论是下层人民还是王室贵族都难逃魔掌,几乎五分之一的伦敦人都在这场鼠疫中丧生. 牛顿被迫回家进行自我隔离, ...
- python 实现使用163邮箱发送有图片的邮件
周末温习下python,正好最近在做监控,想着 给163邮箱发邮件,记录下来,方便备查. 邮件发送必须要知道邮件的 传输协议 SMTP SMTP (Simple Mail Transfer Proct ...
- 8个Python实用脚本
例如,访问某个网站一直不通,需要确定此地址是否可访问,服务器返回什么,进而确定问题在于什么.完成这个任务,如果一味希望采用编译型语言来编写这样的代码,实践中的时间和精力是不够的,这个时候就需要发挥脚本 ...
- python parser count_8 个 Python 实用脚本,早掌握早下班!
脚本写的好,下班下得早!程序员的日常工作除了编写程序代码,还不可避免地需要处理相关的测试和验证工作. 例如,访问某个网站一直不通,需要确定此地址是否可访问,服务器返回什么,进而确定问题在于什么.完成这 ...
- python部署脚本_vsftp一键部署脚本
vsftp一键创建脚本#!/bin/sh #OS: Centos7.2 #filename: auto_install_vsftp.sh users=/etc/vsftpd/vftpuser.txt ...
- python实用脚本-获取软件md5值
我们下载软件过程中,为了确保下载的软件没有被修改过,可以通过python脚本校验md5值,若与官方给出的md5不一致,则表示该软件被修改过,不安全,若一致,则软件是可信的.举例如下,下载python软 ...
- Python实用脚本/算法集合, 附源代码下载
学习编程.学习Python最好的方式就是练习,哪怕是新手,只要不断地敲代码输出,肯定会有神效. Python的练手项目很多,特别是Github上,建议不管新手.老司机都去看看. 这里推荐给大家两个Gi ...
最新文章
- Linux mail 命令参数
- ajax 省市级联项目中的实现
- win7系统自带截图工具快捷键是什么?怎么设置快捷键
- keepalived 安装和配置
- 3.1.6 基本分页存储管理的基本概念
- C#模拟MSN窗体抖动[原创]
- memset()函数详解
- Navicat Error 2003 - can't connect to mysql server 'localhost' (10061)
- JavaScript与HTML交互——事件
- 【C++ STL学习之八】逆向迭代器reverse_iterator
- C++ typedef小结(转载)
- 将Linux代码移植到Windows的简单方法
- Java线程安全队列Queue实现原理
- java 格式化 浮点数_DecimalFormat的用法 Java 浮点数 Float Double 小数 格式化 保留小数位后几位等...
- 数字IC设计工程师笔试面试经典题
- Python 100例
- 节奏大师闪退android,安卓节奏大师进不去的原因以及详细解决办法
- 量化投资学sql还是mysql_新人如何学习量化投资
- 解决centos7安装wps后的光标跟随问题
- 200plc与施耐德ATV610变频器modbus通讯