脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - 发工资啦!教你用Python实现邮箱自动群发工资条

发工资啦!教你用Python实现邮箱自动群发工资条

2021-10-27 09:26Harris-H Python

这篇文章主要介绍了发工资啦!教你用Python实现邮箱自动群发工资条,文中有非常详细的代码示例,对正在学习python的小伙伴们有很好地帮助,需要的朋友可以参考下

一、excel的内容

发工资啦!教你用Python实现邮箱自动群发工资条

二、效果

发工资啦!教你用Python实现邮箱自动群发工资条

三、需要用的库:

  • openpyxl
  • smptlib
  • email.mime.text
  • email.header

四、实现步骤

4.1 获取excel表的数据

?
1
2
3
4
5
wb = load_workbook('数据表.xlsx')
sheet = wb.active
for row in sheet:
    for cell in row:
        print(cell.value)

4.2 编写邮件内容

使用字符串拼接成html

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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 发送邮件

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 发送邮件
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)

五、所有代码

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
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自动群发工资条内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/weixin_45750972/article/details/116525212

延伸 · 阅读

精彩推荐