发工资啦!教你用Python实现邮箱自动群发工资条

 更新时间:2021年05月10日 14:29:59   作者:Harris-H  
这篇文章主要介绍了发工资啦!教你用Python实现邮箱自动群发工资条,文中有非常详细的代码示例,对正在学习python的小伙伴们有很好地帮助,需要的朋友可以参考下

一、excel的内容

在这里插入图片描述

二、效果

在这里插入图片描述

三、需要用的库:

  • openpyxl
  • smptlib
  • email.mime.text
  • email.header

四、实现步骤

4.1 获取excel表的数据

wb = load_workbook('数据表.xlsx')
sheet = wb.active
for row in sheet:
	for cell in row:
        print(cell.value)

4.2 编写邮件内容

使用字符串拼接成html

for row in sheet:
        tbody = '<tr>'
        cnt += 1
        if cnt == 1:
            for cell in row:
                thead += f'<th>{cell.value}</th>'
            thead += '</thead>'
        else:
            for cell in row:
                tbody += f'<td>{cell.value}</td>'
            tbody += '</tr>'
        name = row[0].value
        mail = row[1].value
        #  2.编写邮件内容
        content = f'''
            <h3>{name},你好</h3>
            <p>请查收你在2025年 5月1日 - 5月31 日的工资</p>
            <table border='1px solid black'>
            {thead}
            {tbody}
            </table>
        '''

4.3 发送邮件

# 发送邮件
class Test:
    def ck_log(self):
        pass

    def send_email(self, econtent, ename, mail):
        host = 'smtp.qq.com'
        user = '你的邮箱'
        password = '你的授权码'
        receivers = [mail]
        subject = '员工工资表'
        msg = MIMEText(econtent, 'html', 'utf-8')
        msg['From'] = Header('有限公司')
        msg['To'] = Header(ename)
        msg['Subject'] = Header(subject, 'utf-8')

        try:
            obj = smtplib.SMTP_SSL(host, 465)
            obj.login(user, password)
            obj.sendmail(user, receivers, msg.as_string())
            print("邮件发送成功!")
        except smtplib.SMTPException as e:
            print("Error: 无法发送邮件")
            print(e)

五、所有代码

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

'''
1.获取excel表的数据
2.编写邮件内容
3.发送邮件
'''


# 发送邮件
class Test:
    def ck_log(self):
        pass

    def send_email(self, econtent, ename, mail):
        host = 'smtp.qq.com'
        user = '1479898695@qq.com'
        password = 'bijoplffwqqlbaci'
        receivers = [mail]
        subject = '员工工资表'
        msg = MIMEText(econtent, 'html', 'utf-8')
        msg['From'] = Header('有限公司')
        msg['To'] = Header(ename)
        msg['Subject'] = Header(subject, 'utf-8')

        try:
            obj = smtplib.SMTP_SSL(host, 465)
            obj.login(user, password)
            obj.sendmail(user, receivers, msg.as_string())
            print("邮件发送成功!")
        except smtplib.SMTPException as e:
            print("Error: 无法发送邮件")
            print(e)


if __name__ == '__main__':
    wb = load_workbook('数据表.xlsx')
    o = Test()
    cnt = 0
    sheet = wb.active
    thead = '<thead>'
    #  1.获取excel表的数据
    for row in sheet:
        tbody = '<tr>'
        cnt += 1
        if cnt == 1:
            for cell in row:
                thead += f'<th>{cell.value}</th>'
            thead += '</thead>'
        else:
            for cell in row:
                tbody += f'<td>{cell.value}</td>'
            tbody += '</tr>'
        name = row[0].value
        mail = row[1].value
        #  2.编写邮件内容
        content = f'''
            <h3>{name},你好</h3>
            <p>请查收你在2025年 5月1日 - 5月31 日的工资</p>
            <table border='1px solid black'>
            {thead}
            {tbody}
            </table>
        '''
        #  3.发送邮件
        if cnt == 3:
            print('content:', content)
            print(name, mail)
            o.send_email(content, name, mail)

到此这篇关于发工资啦!教你用Python实现邮箱自动群发工资条的文章就介绍到这了,更多相关Python自动群发工资条内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 一文教你学会使用Python中的多处理模块

    一文教你学会使用Python中的多处理模块

    Python 多处理模块是一个强大的工具,用于实现并行处理,提高程序的性能和效率,本文将详细介绍 Python 中多处理模块的使用方法,希望对大家有所帮助
    2024-01-01
  • Python虚拟环境库virtualenvwrapper安装及使用

    Python虚拟环境库virtualenvwrapper安装及使用

    这篇文章主要介绍了Python虚拟环境库virtualenvwrapper安装及使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • 用Python制作音乐海报

    用Python制作音乐海报

    这篇文章主要介绍了如何用Python制作音乐海报,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2021-01-01
  • 用python的seaborn画数值箱型图

    用python的seaborn画数值箱型图

    大家好,本篇文章主要讲的是用python的seaborn画数值箱型图,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-01-01
  • Python入门教程之三元运算符的使用详解

    Python入门教程之三元运算符的使用详解

    三元运算符也称为条件表达式,是根据条件为真或假来评估某些内容的运算符。它在2.5 版本中被添加到 Python 中。 本文将通过示例详细说说三元运算符的使用,需要的可以参考一下
    2022-09-09
  • python3+PyQt5重新实现自定义数据拖放处理

    python3+PyQt5重新实现自定义数据拖放处理

    这篇文章主要为大家详细介绍了python3+PyQt5重新实现自定义数据拖放处理,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04
  • python中时间转换datetime和pd.to_datetime详析

    python中时间转换datetime和pd.to_datetime详析

    这篇文章主要给大家介绍了关于python中时间转换datetime和pd.to_datetime的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-08-08
  • 通过python将大量文件按修改时间分类的方法

    通过python将大量文件按修改时间分类的方法

    今天小编就为大家分享一篇通过python将大量文件按修改时间分类的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • Django序列化组件Serializers使用详解

    Django序列化组件Serializers使用详解

    本文主要系统性的讲解django rest framwork 序列化组件的使用,基本看完可以解决工作中序列化90%的问题,具有一定的参考价值,感兴趣的可以了解一下
    2021-09-09
  • Python 类中定义多个构造器方法重载与泛方法

    Python 类中定义多个构造器方法重载与泛方法

    这篇文章主要为大家介绍了Python 类中定义多个构造器方法重载与泛方法示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03

最新评论