发工资啦!教你用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 不同对象比较大小示例探讨
Aug 21 Python
给Python的Django框架下搭建的BLOG添加RSS功能的教程
Apr 08 Python
Python实现基于多线程、多用户的FTP服务器与客户端功能完整实例
Aug 18 Python
基于Python实现的微信好友数据分析
Feb 26 Python
python读取和保存视频文件
Apr 16 Python
Python人工智能之路 之PyAudio 实现录音 自动化交互实现问答
Aug 13 Python
Pycharm中安装wordcloud等库失败问题及终端通过pip安装的Python库如何添加到Pycharm解释器中(推荐)
May 10 Python
详解Django中views数据查询使用locals()函数进行优化
Aug 24 Python
Windows下pycharm安装第三方库失败(通用解决方案)
Sep 17 Python
filter使用python3代码进行迭代元素的实例详解
Dec 03 Python
Python实现自动整理文件的脚本
Dec 17 Python
只用40行Python代码就能写出pdf转word小工具
May 31 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/03/11 PHP
php jquery 多文件上传简单实例
2013/12/23 PHP
PHP实现提取多维数组指定一列的方法总结
2019/12/04 PHP
javascript 鼠标滚轮事件
2009/04/09 Javascript
jQuery 使用手册(三)
2009/09/23 Javascript
AJAX使用了UpdatePanel后无法使用alert弹出脚本
2010/04/02 Javascript
分享一个自己写的table表格排序js插件(高效简洁)
2011/10/29 Javascript
JS父页面与子页面相互传值方法
2014/03/05 Javascript
js style动态设置table高度
2014/10/21 Javascript
js脚本实现数据去重
2014/11/27 Javascript
jquery+php实现搜索框自动提示
2014/11/28 Javascript
JavaScript的Date()方法使用详解
2015/06/09 Javascript
详解AngularJS中自定义指令的使用
2015/06/17 Javascript
详解JavaScript数组的操作大全
2015/10/19 Javascript
JavaScript的函数式编程基础指南
2016/03/19 Javascript
网页中JS函数自动执行常用三种方法
2016/03/30 Javascript
基于js中的原型(全面讲解)
2017/09/19 Javascript
快速搭建React的环境步骤详解
2017/11/06 Javascript
js中el表达式的使用和非空判断方法
2018/03/28 Javascript
JavaScript动态创建二维数组的方法示例
2019/02/01 Javascript
Vue中JS动画与Velocity.js的结合使用
2019/02/13 Javascript
JS在Array数组中按指定位置删除或添加元素对象方法示例
2019/11/19 Javascript
在Python的Flask框架下收发电子邮件的教程
2015/04/21 Python
python 从文件夹抽取图片另存的方法
2018/12/04 Python
Python Django框架模板渲染功能示例
2019/11/08 Python
思想汇报格式
2014/01/05 职场文书
竞选村长演讲稿
2014/04/28 职场文书
2014高考励志标语
2014/06/05 职场文书
群众路线领导干部个人对照检查材料(集锦)
2014/09/23 职场文书
关于安全的广播稿
2014/10/23 职场文书
班主任工作实习计划
2015/01/16 职场文书
新店开业策划方案怎么书写?
2019/07/05 职场文书
优胜劣汰,强者为王——读《鲁滨逊漂流记》有感
2019/08/15 职场文书
Python爬虫爬取全球疫情数据并存储到mysql数据库的步骤
2021/03/29 Python
Python使用UDP实现720p视频传输的操作
2021/04/24 Python
python 中[0]*2与0*2的区别说明
2021/05/10 Python