发工资啦!教你用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 装饰器功能以及函数参数使用介绍
Jan 27 Python
Python实用日期时间处理方法汇总
May 09 Python
python+pyqt实现右下角弹出框
Oct 26 Python
python3.5+tesseract+adb实现西瓜视频或头脑王者辅助答题
Jan 17 Python
Python并发:多线程与多进程的详解
Jan 24 Python
在linux下实现 python 监控usb设备信号
Jul 03 Python
python 根据字典的键值进行排序的方法
Jul 24 Python
使用Python将字符串转换为格式化的日期时间字符串
Sep 01 Python
Python自动采集微信联系人的实现示例
Feb 28 Python
Pycharm中配置远程Docker运行环境的教程图解
Jun 11 Python
Python faker生成器生成虚拟数据代码实例
Jul 20 Python
Python合并pdf文件的工具
Jul 01 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 冒泡排序 交换排序法
2011/05/10 PHP
php Hex RGB颜色值互换的使用
2013/05/10 PHP
php实现微信公众平台账号自定义菜单类
2015/10/11 PHP
WordPress的主题编写中获取头部模板和底部模板
2015/12/28 PHP
php版银联支付接口开发简明教程
2016/10/14 PHP
php生成图片缩略图功能示例
2017/02/22 PHP
PHP正则匹配到2个字符串之间的内容方法
2018/12/24 PHP
php无限级分类实现评论及回复功能
2019/02/18 PHP
js简单实现竖向tab选项卡的方法
2015/05/04 Javascript
js动态生成Html元素实现Post操作(createElement)
2015/09/14 Javascript
浅谈javascript中onbeforeunload与onunload事件
2015/12/10 Javascript
javascript运动效果实例总结(放大缩小、滑动淡入、滚动)
2016/01/08 Javascript
JavaScript实现多种排序算法
2016/02/24 Javascript
jQuery实现Select下拉列表进行状态选择功能
2017/03/30 jQuery
VUE 配置vue-devtools调试工具及安装方法
2018/09/30 Javascript
layer弹出子iframe层父子页面传值的实现方法
2018/11/22 Javascript
ES6 如何改变JS内置行为的代理与反射
2019/02/11 Javascript
jQuery+ajax实现批量删除功能完整示例
2019/06/06 jQuery
js常用方法、检查是否有特殊字符串、倒序截取字符串操作完整示例
2020/01/26 Javascript
jQuery 动画与停止动画效果实例详解
2020/05/19 jQuery
Python中函数eval和ast.literal_eval的区别详解
2017/08/10 Python
Python中flatten( )函数及函数用法详解
2018/11/02 Python
Python对HTML转义字符进行反转义的实现方法
2019/04/28 Python
Python和Sublime整合过程图示
2019/12/25 Python
澳大利亚领先的在线美容商店:Facial Co
2017/10/22 全球购物
英国现代绅士品牌:Hackett
2017/12/17 全球购物
.NET初级开发工程师面试题
2014/04/18 面试题
【魔兽争霸3重制版】原版画面与淬火MOD画面对比
2021/03/26 魔兽争霸
舞蹈教育学专业推荐信
2013/11/27 职场文书
安全生产汇报材料
2014/02/17 职场文书
幼儿园三八妇女节活动方案
2014/03/11 职场文书
学习经验交流会总结
2015/11/02 职场文书
《狮子和鹿》教学反思
2016/02/16 职场文书
JavaScript实现淘宝商品图切换效果
2021/04/29 Javascript
Python实现随机生成迷宫并自动寻路
2021/06/13 Python
《吸血鬼:避世 血猎》官宣4.27发售 系列首款大逃杀
2022/04/03 其他游戏