使用Python实现邮件群发

想法:公司财务姐姐给员工发工资条一人一人的发,心疼一下下做个简单的脚本实现通过脚本实现群发 。
实现:对员工工资的 Excel表格进行遍历通过每个员工自己的邮箱号码,发送各自的工资信息
版本:3.11
操作环境:11
代码工具: --2022.1.3
代码实现
from openpyxl import load_workbookimport smtplib# 发送邮件需要下面的两条引入from email.mime.text import MIMEText# 邮件正文from email.header import Header# 邮件头 (python 2.6 后作废)from email.utils import formataddr# 加载excel文件wb = load_workbook("于的工资表.xlsx",data_only=True)sheet = wb.active# 登陆邮件服务器smtp_obj = smtplib.SMTP_SSL("smtp.qq.com", 465)# 发送人邮箱中的SMTP服务器,端口事25smtp_obj.login("发件人的邮箱", "临时密码")# 括号中对应的是发件人邮箱账号和密码# smtp_obj.set_debuglevel(1)#显示调试信息# 先循环一下这个表count = 0# table_col_names = []#表头table_col_html = ''# 生成一个for row in sheet.iter_rows(min_row=1):count += 1if count == 1 :for col in row:# table_col_names.append(col.value)table_col_html += f"{col.value}"# print(table_col_names)# breaktable_col_html += ""continueelse:row_text = ""#开始一行for cell in row:#print(cell.value, end=",")row_text += f"{cell.value}"row_text += ""#结束一行name = row[2]staff_email = row[1].valueprint(staff_email, name.value)mail_body_context = f'''{name.value},你好:请查收你2023年的工资条.....{table_col_html}{row_text}
'''# msg = MIMEText(mail_body_context, "html", "utf-8")# 构建邮件正文## msg["Subject"] = Header("YU的工资信息", "utf-8")# 主题# msg["From"] = Header("发件人的邮箱", "utf-8")# 发送人# msg["To"] = Header("于员工", "utf-8")# 接收人# 以上命令 Python2.6 前可以使用msg = MIMEText(mail_body_context, "html", "utf-8")msg['Subject'] = 'YU的工资信息'msg['From'] = formataddr(['YU','发件人的邮箱'])msg['To'] = '发件人的邮箱'msg['Cc'] = '想要抄送的邮箱'# 发送smtp_obj.sendmail('发件人邮箱',[staff_email],msg.as_string())print(f"成功发送到{staff_email}{name.value}")

注:
1.代码中的 Excel 文件与此脚本在同目录下
2.确保发件人的邮箱和密码都是正确的
【使用Python实现邮件群发】3.代码中注释掉的部分中,有些是 2.6之后已无法使用的命令

使用Python实现邮件群发

文章插图
代码中Excel格式如图
成果图(格式如图)
注注注注注注注注
以上代码是自学后编写,好多处很繁琐望得到更好的推荐和方法