发工资啦!教你用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中MySQL数据迁移到MongoDB脚本的方法
Apr 28 Python
Python实现的爬虫功能代码
Jun 24 Python
python数据预处理之将类别数据转换为数值的方法
Jul 05 Python
Python 实现异步调用函数的示例讲解
Oct 14 Python
Python自动发送邮件的方法实例总结
Dec 08 Python
python爬虫获取百度首页内容教学
Dec 23 Python
Python 调用 Outlook 发送邮件过程解析
Aug 08 Python
PyQt5中多线程模块QThread使用方法的实现
Jan 31 Python
python实现从尾到头打印单链表操作示例
Feb 22 Python
Python ArgumentParse的subparser用法说明
Apr 20 Python
Python抖音快手代码舞(字符舞)的实现方法
Feb 07 Python
如何将numpy二维数组中的np.nan值替换为指定的值
May 14 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
大师制作的中短波矿石收音机
2020/04/02 无线电
php 分页类 扩展代码
2009/06/11 PHP
PHP XML操作类DOMDocument
2009/12/16 PHP
探讨如何使用SimpleXML函数来加载和解析XML文档
2013/06/07 PHP
解析二进制流接口应用实例 pack、unpack、ord 函数使用方法
2013/06/18 PHP
编写PHP程序检查字符串中的中文字符个数的实例分享
2016/03/17 PHP
javascript校验价格合法性实例(必须输入2位小数)
2014/05/05 Javascript
javascript弹出页面回传值的方法
2015/01/28 Javascript
超实用的JavaScript表单代码段
2016/02/26 Javascript
js在ie下打开对话窗口的方法小结
2016/10/24 Javascript
jQuery实现列表的增加和删除功能
2018/06/14 jQuery
js中事件对象和事件委托的介绍
2019/01/21 Javascript
微信小程序实现购物车代码实例详解
2019/08/29 Javascript
React倒计时功能实现代码——解耦通用
2020/09/18 Javascript
JavaScript实现网页tab栏效果制作
2020/11/20 Javascript
详解Python中的日志模块logging
2015/06/19 Python
Python实现比较扑克牌大小程序代码示例
2017/12/06 Python
python实现csv格式文件转为asc格式文件的方法
2018/03/23 Python
Python简单计算文件MD5值的方法示例
2018/04/11 Python
Python 实现删除某路径下文件及文件夹的实例讲解
2018/04/24 Python
对pandas的行列名更改与数据选择详解
2018/11/12 Python
印度最大的旅游网站:MakeMyTrip
2016/10/05 全球购物
在加拿大在线租赁和购买电子游戏:Game Access
2019/09/02 全球购物
main 函数执行以前,还会执行什么代码
2013/04/17 面试题
vue路由实现登录拦截
2021/03/24 Vue.js
项目经理岗位职责
2013/11/11 职场文书
实习老师离校感言
2014/02/03 职场文书
小学教师师德反思
2014/02/03 职场文书
行政副总岗位职责
2014/02/23 职场文书
元旦晚会感言
2014/03/12 职场文书
争先创优公开承诺书
2014/08/30 职场文书
课内比教学心得体会
2014/09/09 职场文书
副乡长群众路线教育实践活动个人对照检查材料
2014/09/19 职场文书
英文慰问信范文
2015/03/24 职场文书
党员转正介绍人意见
2015/06/03 职场文书
Nginx配置80端口访问8080及项目名地址方法解析
2021/03/31 Servers