发工资啦!教你用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字符遍历的艺术
Sep 06 Python
Python中的高级函数map/reduce使用实例
Apr 13 Python
浅析Python中的getattr(),setattr(),delattr(),hasattr()
Jun 14 Python
Python3多线程爬虫实例讲解代码
Jan 05 Python
Tensorflow使用支持向量机拟合线性回归
Sep 07 Python
python制作mysql数据迁移脚本
Jan 01 Python
PYTHON EVAL的用法及注意事项解析
Sep 06 Python
python+Selenium自动化测试——输入,点击操作
Mar 06 Python
python和php学习哪个更有发展
Jun 17 Python
手把手教你从PyCharm安装到激活(最新激活码),亲测有效可激活至2089年
Nov 25 Python
python中str内置函数用法总结
Dec 27 Python
如何利用python创作字符画
Jun 25 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下关于中英数字混排的字符串分割问题
2010/04/06 PHP
在WAMP环境下搭建ZendDebugger php调试工具的方法
2011/07/18 PHP
PHP Global定义全局变量使用说明
2013/08/15 PHP
php实现文件下载功能的几个代码分享
2014/05/10 PHP
PHP使用http_build_query()构造URL字符串的方法
2016/04/02 PHP
PHP集成环境XAMPP的安装与配置
2018/11/13 PHP
JavaScript 应用类库代码
2008/06/02 Javascript
javascript判断移动端访问设备并解析对应CSS的方法
2015/02/05 Javascript
javascript验证邮件地址和MX记录的方法
2015/06/16 Javascript
JS实现队列与堆栈的方法
2016/04/21 Javascript
JavaScript实现相册弹窗功能(zepto.js)
2016/06/21 Javascript
Angular2使用jQuery的方法教程
2017/05/28 jQuery
js模拟百度模糊搜索的实例
2017/08/04 Javascript
Node.js pipe实现源码解析
2017/08/12 Javascript
iview中Select 选择器多选校验方法
2018/03/15 Javascript
python通过shutil实现快速文件复制的方法
2015/03/14 Python
Python爬取个人微信朋友信息操作示例
2018/08/03 Python
Python面向对象总结及类与正则表达式详解
2019/04/18 Python
Python利用pandas处理Excel数据的应用详解
2019/06/18 Python
python opencv实现gif图片分解的示例代码
2019/12/13 Python
Django values()和value_list()的使用
2020/03/31 Python
python 数据分析实现长宽格式的转换
2020/05/18 Python
Python读写Excel表格的方法
2021/03/02 Python
Moda Italia荷兰:意大利男士服装
2019/08/31 全球购物
幼儿教师寄语集锦
2014/04/03 职场文书
留学顾问岗位职责
2014/04/14 职场文书
初一学生期末评语
2014/04/24 职场文书
后勤个人工作总结
2015/02/28 职场文书
学校2015年纠风工作总结
2015/05/15 职场文书
党课主持词大全
2015/06/30 职场文书
高中政治教学反思
2016/02/23 职场文书
Python离线安装openpyxl模块的步骤
2021/03/30 Python
python 中[0]*2与0*2的区别说明
2021/05/10 Python
Python 如何将integer转化为罗马数(3999以内)
2021/06/05 Python
MySQL数据库完全卸载的方法
2022/03/03 MySQL
世界十大儿童漫画书排名,法国国宝漫画排第五,第二是轰动日本连环
2022/03/18 欧美动漫