使用python发工资条邮件的自动化方法

在现代企业中,每个月都需要发送工资条给员工,这项任务可能会非常繁琐。但是,你可以使用自动化工具来简化这个过程,提高效率。在本篇文章中,我将向你介绍如何使用Python编写一个工具,以自动发送工资条邮件给员工。

开篇故事

假设你是一家企业的财务部门负责人,每个月都要发送工资条给员工。这项任务需要耗费大量的时间和精力,而且容易出现错误。但是,有一天,你听说了一种自动化方法,可以让你轻松地完成这项任务,从此告别了繁琐的手工操作。这个方法就是使用Python编写一个自动发送工资条邮件的脚本。

准备工作

在开始之前,你需要进行一些准备工作:

  1. Python安装:确保你的计算机上已经安装了Python。如果没有安装,你可以从 Python官网 下载并安装最新版本的Python。

  2. 安装所需的库:你需要安装一些Python库,包括 openpyxl 用于处理Excel文件,以及 smtplibemail 用于发送邮件。你可以使用以下命令安装这些库:

    pip install openpyxl
    pip install secure-smtplib
  3. 准备工资数据:确保你有一个Excel文件,其中包含了员工的工资数据。这个文件应该按照一定的格式组织,包括员工姓名、部门、工资信息等。

  4. 邮件服务器信息:你需要知道你的企业邮件服务器的地址和登录信息,以便通过脚本发送邮件。

编写Python脚本

接下来,让我们开始编写Python脚本来自动发送工资条邮件。以下是一个示例脚本,你可以根据你的需求进行修改和扩展:

import os
import smtplib
from email.mime.text import MIMEText
from email.header import Header
import datetime
import time
from openpyxl import load_workbook

# 获取当前时间和支付月份
now_time = datetime.datetime.now()
pay_month = datetime.datetime.now() - datetime.timedelta(28)
sent_time = time.time()

# 打印使用说明
print(f'''
****************************************************************************************
使用说明:
1、用于财务部门发送工资条。
2、Excel模板 文件名和文件格式不能更改(不能加列可以加行,不能出现合并单元格)
3、执行完成后会自动退出,并生成log.log 日志文件和 X年X月记录X.xls文件。
   生成文件目的是用于记录和检测正确性,可以删除或移走备份。
4、使用过程中如有问题请联系管理员 ytfty
                                                 Create by ytfty
****************************************************************************************
''')

# 判断文件是否存在
if os.path.exists("test.xlsx"):
    wb = load_workbook("test.xlsx", data_only=True)
    sheet = wb.active
else:
    input("数据文件 test.xlsl 不存在,请检查后重新运行本程序,程序结束,按回车退出程序")
    exit()

# 登录邮件服务器
smtp_obj = smtplib.SMTP_SSL("smtp.exmail.qq.com", 465)
smtp_obj.login("财务邮箱或专门发工资的人的邮箱@企业邮箱.com", "授权码")

# 从第2行开始按行循环遍历数据到内存
for row in sheet.iter_rows(min_row=2):
    row_text = ""
    mail_content = ""
    for cell in row:
        # 绑定内容单元格
        num = row[0]
        department = row[1]
        name = row[2]
        join_time = row[3]
        join_time_day = join_time.value
        work_age = row[4]
        work_level = row[5]
        base_pay = row[6]
        age_pay = row[7]
        # ...(省略其他工资信息)

        # 构建邮件内容
        mail_content = f'''
            <p> {name.value} 你好!{pay_month.year}年{pay_month.month}月工资表 </p>
            <!-- 添加工资信息表格 -->
            <!-- ...(省略表格内容) -->
        '''

    # 设置邮件头信息
    msg = MIMEText(mail_content, "html", "utf-8")
    msg["From"] = Header("财务发件人名", "utf-8")
    msg["To"] = Header(f"{personal_email}", "utf-8")
    msg["Cc"] = Header("这里写财务或是老板的邮箱@qq.com", "utf-8")
    msg["Subject"] = Header(f"{name.value} {pay_month.year}年{pay_month.month}月份工资条", "utf-8")

    # 发送邮件
    smtp_obj.sendmail("财务邮箱@qq.com", [personal_email, '抄送人的邮箱@qq.com'], msg.as_string())

    # 写日志
    f = open(file='sentlog.log',

 mode='a', encoding='utf-8')
    f.write(f"发送时间:{now_time}  收件人:{name.value} 邮件地址:{personal_email} 邮件主题:{pay_month.year}年{pay_month.month}月份工资表记录 已发送\n")
    f.close()
    print(f'''发送时间 {now_time}  收件人:{name.value} 邮件地址:{personal_email}  邮件主题:{pay_month.year}年{pay_month.month}月份工资表记录 已发送''')

# 另存一份记录
wb.save(f"{pay_month.year}年{pay_month.month}月份工资表记录{sent_time}.xlsx")
wait = input("程序执行完毕,按回车键退出!")

结语

使用这个自动化工具,你可以轻松地发送工资条邮件给员工,节省时间和减少错误。记得根据你的实际需求和企业环境对脚本进行适当的定制和配置。希望这个方法能够对你的工作有所帮助!

本文由作者 王大神 原创发布于 大神网的AI博客。

转载请注明作者:王大神

原文出处:使用python发工资条邮件的自动化方法

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 2023年9月24日
下一篇 2023年9月24日

相关推荐

  • 教程:使用Python爬取抖音用户的视频

    嗨,各位技术爱好者和数据挖掘狂热者们!你是否曾经在抖音上看到一个超赞的用户,想要保存他们的视频以便离线观看?或者你是一位研究者,需要获取某个用户在一段时间内发布的所有视频?今天,我将带你进入一个令人…

    2023年10月24日
    00
  • 从汇率到Python:如何查询和换算港币对人民币汇率

    有一天,小明计划去香港旅游,但他对港币对人民币的汇率一无所知。他不想在旅行中被坑,所以决定学习如何查询和换算港币对人民币的汇率。在他的学习过程中,他发现了Python这个有趣的工具,可以帮助他轻松查询汇率…

    2023年10月20日
    00
  • 如何使用Python搜索并获取音乐信息

    在数字时代,音乐已经成为我们日常生活中不可或缺的一部分。有时候,我们迫切地想要找到某首歌曲或了解某位歌手的作品,但是如何高效地搜索和获取音乐信息呢?本教程将教你如何使用Python编写一个程序来搜索并获取…

    2023年10月19日
    00
  • 教程:使用Python批量注册自建邮箱账户

    有时候,我们可能需要大量的邮箱账户,用于各种目的,比如测试、订阅、或者是其他项目。在这种情况下,手动一个一个注册邮箱账户会非常繁琐和耗时。但幸运的是,我们可以利用Python编写脚本来自动化这个过程,而且…

    2023年11月2日
    00
  • 使用Python下载并合并M3U8视频

    在互联网时代,视频内容丰富多样,M3U8是一种常见的视频流媒体格式,例如在线直播、视频网站等。有时候,我们可能想要下载并保存这些M3U8格式的视频供离线观看,或者进行其他处理。本教程将向你展示如何使用Python…

    2023年9月21日
    00
  • 如何高效地将Jupyter笔记本转换为Markdown文件:一个Python教程

    记得那个周末,我参加了一个hackathon。团队里有个小伙伴突然意识到,他想把所有Jupyter笔记本快速地转换成Markdown文件,以便在GitHub上展示或者写博客。但问题是,他对Python不熟,更别说操作nbconvert库了。就在…

    2023年9月24日
    00
  • 如何使用Python和Shell脚本创建定时任务备份和数据库压缩工具

    有一天,你突然意识到你的数据库中存储着宝贵的数据,但你不确定这些数据是否安全。你开始考虑如何创建一个自动化的备份和数据库压缩工具,以确保数据的安全性和可用性。本文将向您介绍如何使用Python和Shell脚本创…

    2023年10月13日
    00
  • 如何使用OpenAI的Web UI API进行文本到图像生成

    嗨,大家好!如果你对使用OpenAI的Web UI API进行文本到图像生成感到困惑,不用担心,我将为你提供一份详细的教程。在这个教程中,我将向你介绍如何设置API,构建请求,获取生成的图像以及如何修改一些重要的参数。…

    2023年9月22日
    00
  • 使用FastAPI和Edge TTS创建自定义文本转语音应用

    有时候,你可能需要一个自定义的文本转语音(TTS)应用,以将文字转化为声音。这可以用于语音助手、有声书、自动化通知等各种应用场景。在这篇教程中,我们将介绍如何使用FastAPI和Edge TTS创建一个简单但功能强大…

    2023年9月14日
    06
  • 马丁格尔策略:用Python在虚拟货币市场上实现稳健的量化交易

    对于许多虚拟货币投资者来说,市场的波动性常常令人感到不安。然而,有一种被称为马丁格尔策略的量化交易方法,它可以帮助投资者在波动的市场中实现稳健的回报。在本教程中,我们将探讨如何使用Python编写和实施马…

    2023年12月28日
    00