发工资啦!教你用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实现数组插入新元素的方法
May 22 Python
约瑟夫问题的Python和C++求解方法
Aug 20 Python
Python中列表list以及list与数组array的相互转换实现方法
Sep 22 Python
python3 读写文件换行符的方法
Apr 09 Python
python itchat给指定联系人发消息的方法
Jun 11 Python
详解利用python+opencv识别图片中的圆形(霍夫变换)
Jul 01 Python
Python调用C语言的实现
Jul 26 Python
python实现简单日志记录库glog的使用
Dec 13 Python
PyQt5实现画布小程序
May 30 Python
keras读取h5文件load_weights、load代码操作
Jun 12 Python
Python3爬虫ChromeDriver的安装实例
Feb 06 Python
Qt自定义Plot实现曲线绘制的详细过程
Nov 02 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下几种删除目录的方法总结
2007/08/19 PHP
php处理斐波那契数列非递归方法
2012/02/04 PHP
PHP-redis中文文档介绍
2013/02/07 PHP
php class中public,private,protected的区别以及实例分析
2013/06/18 PHP
CodeIgniter多语言实现方法详解
2016/01/20 PHP
Symfony2实现在controller中获取url的方法
2016/03/18 PHP
php中文语义分析实现方法示例
2019/09/28 PHP
MooBox 基于Mootools的对话框插件
2012/01/20 Javascript
深入理解JavaScript系列(48):对象创建模式(下篇)
2015/03/04 Javascript
JavaScript代码实现左右上下自动晃动自动移动
2016/04/08 Javascript
JS中parseInt()和map()用法分析
2016/12/16 Javascript
js实现随机抽选效果、随机抽选红色球效果
2017/01/13 Javascript
jQuery封装animate.css的实例
2018/01/04 jQuery
微信小程序用户信息encryptedData详解
2018/08/24 Javascript
vue中render函数的使用详解
2018/10/12 Javascript
javascript实现贪吃蛇小练习
2020/07/05 Javascript
.netcore+vue 实现压缩文件下载功能
2020/09/24 Javascript
jQuery实现图片切换效果
2020/10/19 jQuery
Python中字符编码简介、方法及使用建议
2015/01/08 Python
详解使用Python处理文件目录的相关方法
2015/10/16 Python
全面了解Nginx, WSGI, Flask之间的关系
2018/01/09 Python
python 实现对文件夹中的图像连续重命名方法
2018/10/25 Python
在Python中调用Ping命令,批量IP的方法
2019/01/26 Python
如何完美的建立一个python项目
2020/10/09 Python
Ubuntu16安装Python3.9的实现步骤
2020/12/15 Python
德国高品质男装及配饰商城:Cultizm(Raw Denim原色牛仔裤)
2018/04/16 全球购物
获取邓白氏信用报告:Dun & Bradstreet
2019/01/22 全球购物
C#怎么让一个窗口居中显示?
2015/10/20 面试题
土建专业大学生自荐信范文
2014/04/09 职场文书
补充协议书范本
2014/04/23 职场文书
高三霸气励志标语
2014/06/24 职场文书
2014年高中生自我评价范文
2014/09/26 职场文书
2014年纪检监察工作总结
2014/11/11 职场文书
实习介绍信模板
2015/01/30 职场文书
办公室规章制度范本
2015/08/04 职场文书
用CSS3画一个爱心
2021/04/27 HTML / CSS