这是一个的Python办公自动化的案例。对于小公司,采用手动方式一个个发送邮件还是可以的。如果一个上百号,上千号,或者更大规模的公司,财务部门每个月都生成一份所有员工的工资明细表格,每个月发送工资条,靠人工手动一条一条的复制发送邮件,200多号员工,差不多需要耗费一天时间,我们再一个个发送工资条邮件,就太浪费时间了。鉴于此,我写了一个这样的程序,实现Python自动化群发工资条的功能。

1、需求描述

现在需求是,财务部门只提供一张工资总表和各部门邮件地址表样式如下图示,根据这张Excel工资表自动生成每个部门员工工资表格,先给各部门负责人发送相应部门的工资条附件,然后再给该部门的所有员工发当月的个人工资条,这个需求不同于群发(若是群发只能给每个员工发相同的表格),只要把所有人邮件地址加进来一键发送就可以,而是需要点对点的单发邮件,这样每个员工收到的只根自己的工资明细有关。如果部门或者收件人的数量继续增加,无非会增加工作难度、降低工作效率,因此需要 Python代码解决。

员工工资总表如下:

同时需要一份各部门的邮箱地址表:

2、程序实现

2.1 根据一份员工工资表,自动生成拆分成以部门分类的工资表

代码实现:

图片

实现效果:

图片

2.2 编写Python脚本,使用pandas、openpyxl 和 smtplib 模块完成,发送邮件为HTML格式的,部分参考如下:

图片

图片

2.3 效果展示:

图片

图片

图片

图片

图片

图片

2.4 success_log_2022年11月.txt的作用:
用来记录发送成功的数据
发送邮件之前,会先读取该txt文件,并判断要发送的email地址是否在txt里边,如果存在,则不发送,防止重复发送

图片

2.5 error_log_2022年11月.txt的作用:
error_log_2022年11月.txt
一般情况下,没有这个文件,但是由于一些不可控因素,比如邮箱地址不存在或者断网等,发送频率过高也会导致发送邮件失败
发送失败之后会把当前发送的数据记录下来,就会生成这个文件
如果该文件有数据,则首先检查是否是邮箱不正确导致的,如果不是,重新运行exe文件

这个Python办公自动化之批量自动群发工资条的小项目的强大之处,200封左右的邮件,几分钟就可以发完了(当然前提是使用企业级邮箱,若是免费邮箱有限制,比如网易邮箱单次登录最多发送11封邮件,而且每天发送封数也有限制,要采用规避措施:在程序增加判断每发送10封重新登录一次),重点是你啥都不用干,只需双击一下exe文件就行了,其它事情全部交给python程序帮你完成,你说爽不爽?!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。