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


Posted in Python onMay 10, 2021

一、excel的内容

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

二、效果

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

三、需要用的库:

  • 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开启多个子进程并行运行的方法
Apr 18 Python
python读取word文档的方法
May 09 Python
在Python的Django框架中simple-todo工具的简单使用
May 30 Python
Python实现字典按照value进行排序的方法分析
Dec 23 Python
Python使用pyodbc访问数据库操作方法详解
Jul 05 Python
Python中文件的写入读取以及附加文字方法
Jan 23 Python
详解Python做一个名片管理系统
Mar 14 Python
Django forms表单 select下拉框的传值实例
Jul 19 Python
Python docutils文档编译过程方法解析
Jun 23 Python
利用Python中的Xpath实现一个在线汇率转换器
Sep 09 Python
python matplotlib工具栏源码探析三之添加、删除自定义工具项的案例详解
Feb 25 Python
Python中递归以及递归遍历目录详解
Oct 24 Python
在Django中使用MQTT的方法
May 10 #Python
十个Python自动化常用操作,即拿即用
May 10 #Python
Django开发RESTful API实现增删改查(入门级)
May 10 #Python
Python中X[:,0]和X[:,1]的用法
May 10 #Python
Python Django搭建文件下载服务器的实现
详解python的内存分配机制
May 10 #Python
python-for x in range的用法(注意要点、细节)
May 10 #Python
You might like
php中的观察者模式
2010/03/24 PHP
PHP中根据IP地址判断城市实现城市切换或跳转代码
2012/09/04 PHP
php的$_FILES的临时储存文件与回收机制实测过程
2013/07/12 PHP
php实现两表合并成新表并且有序排列的方法
2014/12/05 PHP
PHP中的使用curl发送请求(GET请求和POST请求)
2017/02/08 PHP
PHP实现图的邻接矩阵表示及几种简单遍历算法分析
2017/11/24 PHP
PHP生成加减算法方式的验证码实例
2018/03/12 PHP
9个JavaScript评级/投票插件
2010/01/18 Javascript
Jquery的hover方法让鼠标经过li时背景变色
2013/09/06 Javascript
为jQuery添加Webkit的触摸的方法分享
2014/02/02 Javascript
jQuery通过deferred对象管理ajax异步
2016/05/20 Javascript
前端js实现文件的断点续传 后端PHP文件接收
2016/10/14 Javascript
浅析JS中常用类型转换及运算符表达式
2017/07/23 Javascript
vue父组件向子组件(props)传递数据的方法
2018/01/02 Javascript
[01:06:42]VP vs NewBee Supermajor 胜者组 BO3 第二场 6.5
2018/06/06 DOTA
python中的函数用法入门教程
2014/09/02 Python
Python设计足球联赛赛程表程序的思路与简单实现示例
2016/06/28 Python
python中将字典形式的数据循环插入Excel
2018/01/16 Python
使用requests库制作Python爬虫
2018/03/25 Python
python numpy 一维数组转变为多维数组的实例
2018/07/02 Python
Pytorch修改ResNet模型全连接层进行直接训练实例
2019/09/10 Python
pandas参数设置的实用小技巧
2020/08/23 Python
python smtplib发送多个email联系人的实现
2020/10/09 Python
澳大利亚领先的在线美容商店:Facial Co
2017/10/22 全球购物
施华洛世奇新加坡官网:SWAROVSKI新加坡
2020/10/06 全球购物
大学生演讲稿范文
2014/01/11 职场文书
2014社区三八妇女节活动方案
2014/03/30 职场文书
打架赔偿协议书范本
2014/10/26 职场文书
专家推荐信怎么写
2015/03/25 职场文书
法律意见书范文
2015/05/20 职场文书
入党团支部推荐意见
2015/06/02 职场文书
大队委员竞选稿
2015/11/20 职场文书
pytorch MSELoss计算平均的实现方法
2021/05/12 Python
python中sqllite插入numpy数组到数据库的实现方法
2021/06/21 Python
SpringBoot2零基础到精通之异常处理与web原生组件注入
2022/03/22 Java/Android
python+pyhyper实现识别图片中的车牌号思路详解
2022/12/24 Python