Python教程

python批量发送工资条

本文主要是介绍python批量发送工资条,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
import smtplib
import time
from email.header import Header  # 邮件头
from email.mime.text import MIMEText  # 邮件正文
from openpyxl import load_workbook

Month = int(time.strftime("%m", time.localtime())) - 1
Year = time.strftime("%Y", time.localtime())

# 加载excel文件
wb = load_workbook("filenae.xlsx", data_only=True)
sheet = wb.active

# 登录邮件服务器
smtp_obj = smtplib.SMTP_SSL("smtp.qq.com", 465)  # 发件⼈邮箱中的SMTP服务器,端⼝是465
smtp_obj.login("********@qq.com", "**************")  # 括号中对应的是发件⼈邮箱账号、邮箱密码。 需要配置邮箱SMTP服务

# 循环excel
count = 0
table_header = '<thead>'
for row in sheet.iter_rows(min_col=2):
    count += 1
    if count == 1:  # first row
        for col in row:
            table_header += f'<th>{col.value}</th>'
        table_header += '</thead>'
        continue
    else:

        row_text = '<tr>'
        for col in row:
            row_text += f'<td>{col.value}</td>'
        row_text += "</tr>"
        name = row[0]
        staff_email = row[-1].value

        # 设置邮件头信息
        mail_body_context = f'''
            <h3>{name.value},你好:</h3>
            <p >请查收{Year}年{Month}月的工资条。</p>
            <table style="text-align: center; width: 800px;" border='1px solid black', border-collapse: collapse, cellpadding="0", cellspacing="0">
            {table_header}
            {row_text}
            </table>
        '''
        msg_body = MIMEText(mail_body_context, "html", "utf-8")
        msg_body["From"] = Header("公司名称", "utf-8")  # 发送者
        msg_body["To"] = Header(f"{name.value}", "utf-8")  # 接收者
        msg_body["Subject"] = Header(f"公司名称{Year}年{Month}月工资", "utf-8")  # 主题

        # 发送
        smtp_obj.sendmail("********@qq.com", [staff_email, ], msg_body.as_string())
        print(f"给{name.value}的邮件发送成功!")

文件格式如下:(可以调整)

 

这篇关于python批量发送工资条的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!