发工资啦!教你用Python实现邮箱自动群发工资条
作者:Harris-H 发布时间:2023-10-12 19:11:17
标签:Python,自动群发,工资条
一、excel的内容
二、效果
三、需要用的库:
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)
来源:https://blog.csdn.net/weixin_45750972/article/details/116525212
![](https://www.aspxhome.com/images/zang.png)
![](https://www.aspxhome.com/images/jiucuo.png)
猜你喜欢
- 对象:是抽象的概念 如列表 元组 字典 集合 皆为对象序列化:一种方法。目的:把对象存储在磁盘上(即,将对象转换为字节数据/字符数据)。这一
- 本篇阅读的代码片段来自于30-seconds-of-python。1. count_bydef count_by(arr, fn=lambd
- 1.双摆问题所谓双摆,就是两个连在一起的摆。接下来本来是要推公式的,考虑考虑到大家可能会有公式恐惧症,同时又喜欢看图,所以把公式挪到后面。所
- 引子上下文管理器是一种简化代码的有力方式,其内部也蕴含了很多Python的编程思想,今天我们就来探究一下Python的上下文管理器。大家之前
- 废话不多说了,直接给大家贴代码了。编写setup.py后$ python setup.py register$ python setup.p
- 函数是一种仅在调用时运行的代码块。可以将数据(称为参数)传递到函数中。函数可以把数据作为结果返回。创建函数在 Python 中,使用 def
- 在本文中我们将展示一种新的使用仿CSS选择器的语法来快速开发HTML和CSS的方法。它由Sergey Chikuyonok开发。你在写HTM
- 如下所示:var myarr=new Array(); //先声明一维 for(var i=0;i<2;i++){ //一
- PyCharm 中在使用Turtle(海龟)库绘图体系时,代码明明是正确可以运行的,但是没有提示 ,代码出现黄色标记以及红色波浪线 ,经验不
- 全选、全不选、反选这几个功能我们经常会用到,如我们可以用在文章列表管理页面,也可以用在音乐播放页面,使用全选我们可以很方便的进行批量操作,如
- 一:安装pip install web.py二:URL 处理任何网站最重要的部分就是它的URL结构。urls=('/',
- 本文实例讲述了Python实现监控键盘鼠标操作。分享给大家供大家参考,具体如下:# -*- coding: utf-8 -*-import
- 本系列专栏写作将采用首创的问答式写作形式,快速让你学习到 OpenCV 的初级、中级、高级知识。6. 在 Python OpenCV 针对图
- GetRef 函数 返回一个指向一过程的引用,此过程可绑定某事件。 Set object.eventname = GetRef(procna
- Python中核心的数据类型有哪些?变量(数字、字符串、元组、列表、字典)什么是数据的不可变性?哪些数据类型具有不可变性数据的不可变是指数据
- 源代码、参数及其意义:def sub(pattern, repl, string, count=0, flags=0): &n
- 之前用Crystal做了一个数字转English Word的Formula刚刚心血来潮, 大半个晚上写了JS版本的数字转换, 由于JS的Bu
- 这篇文章主要介绍了python chardet库识别编码原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值
- CSS中最常用的布局类属性,一个是Float(CSS浮动属性Float详解),另一个就是CSS定位属性Position。1. positio
- OS ( Operating System 操作系统 ) 操作系统模块;它是属于python的标准库,也就是Python自带的库;它常用于处