一、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)
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)