发工资啦!教你用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数组过滤实现方法
Jul 27 Python
Python使用迭代器打印螺旋矩阵的思路及代码示例
Jul 02 Python
Python的collections模块中的OrderedDict有序字典
Jul 07 Python
python处理csv数据动态显示曲线实例代码
Jan 23 Python
python3 读写文件换行符的方法
Apr 09 Python
利用Python如何实现数据驱动的接口自动化测试
May 11 Python
python找出完数的方法
Nov 12 Python
详解Python字典的操作
Mar 04 Python
python and or用法详解
Jun 26 Python
python requests包的request()函数中的参数-params和data的区别介绍
May 05 Python
python实现126邮箱发送邮件
May 20 Python
python字典的元素访问实例详解
Jul 21 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模拟SQL Server的两个日期处理函数
2006/10/09 PHP
php中使用preg_replace函数匹配图片并加上链接的方法
2013/02/06 PHP
php实现四舍五入的方法小结
2015/03/03 PHP
PHP从零开始打造自己的MVC框架之类的自动加载实现方法详解
2019/06/03 PHP
解决Laravel自定义类引入和命名空间的问题
2019/10/15 PHP
laravel 5.5 关闭token的3种实现方式
2019/10/24 PHP
PHP的垃圾回收机制代码实例讲解
2021/02/27 PHP
JS OOP包机制,类创建的方法定义
2009/11/02 Javascript
jquery实现漂浮在网页右侧的qq在线客服插件示例
2013/05/13 Javascript
图文详解JavaScript的原型对象及原型链
2016/08/02 Javascript
JavaScript中Array的实用操作技巧分享
2016/09/11 Javascript
vue.js指令v-model实现方法
2016/12/05 Javascript
Vue.js中使用iView日期选择器并设置开始时间结束时间校验功能
2018/08/12 Javascript
微信小程序MUI侧滑导航菜单示例(Popup弹出式,左侧不动,右侧滑动)
2019/01/23 Javascript
layui点击数据表格添加或删除一行的例子
2019/09/12 Javascript
vue如何使用rem适配
2021/02/06 Vue.js
Python数据结构与算法之图的广度优先与深度优先搜索算法示例
2017/12/14 Python
Django网络框架之HelloDjango项目创建教程
2019/06/06 Python
自定义django admin model表单提交的例子
2019/08/23 Python
Python爬虫之urllib基础用法教程
2019/10/12 Python
python Popen 获取输出,等待运行完成示例
2019/12/30 Python
TensorFlow设置日志级别的几种方式小结
2020/02/04 Python
将python文件打包exe独立运行程序方法详解
2020/02/12 Python
什么是python的列表推导式
2020/05/26 Python
实例教程 HTML5 Canvas 超炫酷烟花绽放动画实现代码
2014/11/05 HTML / CSS
AC Lens:购买隐形眼镜
2017/02/26 全球购物
美国牛仔品牌:True Religion
2018/11/16 全球购物
.net工程师笔试题
2012/06/09 面试题
教师自我鉴定范文
2013/11/10 职场文书
毕业自荐信
2013/12/16 职场文书
党员思想汇报范文
2013/12/30 职场文书
成人继续教育实施方案
2014/03/01 职场文书
劳动竞赛活动总结
2014/05/05 职场文书
会计电算化实训报告
2014/11/04 职场文书
市场部岗位职责
2015/02/12 职场文书
接触艺术对孩子学习思维有益
2019/08/06 职场文书