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

本文档介绍了如何使用Python编写脚本,一键发送上下班打卡邮件。脚本接收命令行参数获取姓名,自动填充日期、部门等信息,并通过pywin32模块调用Outlook发送邮件,实现自动化流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

需求来源

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

需求描述
  • 能一键完成,明显节省时间
  • 主送人和抄送人固定为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, sys

name = 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_str
    mail.CC = cc_str
    mail.Subject = subgect_str
    mail.Body = content
    mail.Send()

if __name__ == '__main__':
    outlook()
    print("send email ok!!!!!!!!!!")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值