使用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'''
            

{name.value} 你好!{pay_month.year}年{pay_month.month}月工资表

''' # 设置邮件头信息 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日

相关推荐

  • 在VS Code中开始使用Python

    你好!在这篇教程中,你将学习如何在Visual Studio Code中使用Python 3创建、运行和调试一个Python“掷骰子”的应用程序,使用虚拟环境,使用包等等!通过使用Python扩展,你可以将VS Code变成一个出色的、轻量级的Py…

    2023年9月19日
    0067
  • 使用Python编写小说章节批量下载器

    在本教程中,我们将学习如何使用Python编写一个小说章节批量下载器。这个工具可以帮助你下载小说的所有章节并保存为文本文件,以便离线阅读。我们将使用Python的Requests库来获取网页内容,Beautiful Soup库来解析H…

    2023年9月21日
    0086
  • 正则表达式在Python爬虫中的应用与处理技巧

    在网络时代,数据是无处不在的。无论您是做市场研究、数据分析还是需要从网站中获取信息,Python爬虫是一个强大的工具,能够帮助您收集、提取和处理网页上的数据。而正则表达式是Python爬虫中不可或缺的工具之一。…

    2023年10月18日
    0099
  • 足球规则解析:为什么足球要全部过线才能进?

    足球是一项全球性的运动,拥有庞大的球迷群体。在足球比赛中,最终目标是将球踢进对方球门,但为什么规则规定足球必须全部过线才算进球呢?本文将深入探讨这个问题,同时介绍足球的基本规则以及如何使用Python创建…

    2023年10月15日
    0058
  • 适应国内网络环境:Python 项目的网络配置技巧

    当小明第一次尝试在自己的新项目中使用 pip 安装 Python 依赖时,他遭遇了让人沮丧的网络问题。下载速度缓慢、连接经常中断,让他对 Python 的开发产生了丝丝疑惑。但很快,他发现了一系列在国内网络环境下针对 Pyt…

    2023年10月9日
    00136
  • 微软将Python直接融入Excel:办公软件的双进化

    近年来,Python和Excel一直在办公软件领域扮演着重要的角色。Python以其强大的编程功能和丰富的库生态备受欢迎,而Excel则是数据处理和分析的利器,几乎成了每个办公室的标配工具。然而,最近微软带来了令人振奋的…

    2023年8月25日
    0041
  • 如何使用Python批量转换不同格式的图片为JPG格式

    在日常工作和生活中,我们可能会遇到需要将多种不同格式的图片批量转换为JPG格式的情况。本教程将向您展示如何使用Python编写代码来实现这一任务,并进一步介绍如何使用PyInstaller将代码打包成可执行文件,以便在…

    2022年12月14日
    00110
  • 掌握Python字典:你的数据存储和处理好帮手

    在编程世界中,字典(Dictionary)是一种强大的数据结构,可以帮助你高效地存储和处理各种数据。无论你是初学者还是经验丰富的开发者,了解和掌握字典都是至关重要的。本文将带你深入了解Python字典,包括如何创建…

    2023年9月19日
    00129
  • 解决Python集合计算问题的完美方案

    在Python中,有许多强大的第三方库和轮子可用于各种任务,但要找到一个能够满足您的需求的集合计算包可能会有些挑战。您需要一个能够处理不同类型的集合并保持输入顺序的解决方案。在本文中,我将为您介绍一种解决…

    2023年10月31日
    0072
  • 如何使用Python爬取豆瓣电影Top250的电影海报

    作为一位电影爱好者,你可能经常关注豆瓣电影上的Top250电影榜单,想要了解哪些电影备受推崇。而且,你可能也希望将一些你喜欢的电影的海报保存下来,以便日后欣赏或分享。但是,手动一个一个点击电影,然后下载海…

    2023年9月21日
    00130

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注