百木园-与人分享,
就是让自己快乐。

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}的邮件发送成功!\")

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

 


来源:https://www.cnblogs.com/benbenxia2022/p/15989333.html
本站部分图文来源于网络,如有侵权请联系删除。

未经允许不得转载:百木园 » python批量发送工资条

相关推荐

  • 暂无文章