大神论坛

找回密码
快速注册
查看: 87 | 回复: 0

[源码] 批量发送不同内容的邮件给不同的收件人 附源码

主题

帖子

0

积分

初入江湖

UID
675
积分
0
精华
威望
0 点
违规
大神币
68 枚
注册时间
2023-10-14 10:52
发表于 2023-12-23 22:40
本帖最后由 mmortalyi 于 2023-12-23 22:40 编辑

批量发送不同内容的邮件给不同的收件人 附源码

from openpyxl import load_workbook
import win32com.client as win32

wb = load_workbook("邮件地址.xlsx")
ws = wb.active
address = {}
for i in range(2,ws.max_row+1):
dept = ws["A"+ str(i)].value
to_add = ws["B"+ str(i)].value
cc_add = ws["C"+ str(i)].value
address[dept] = [to_add,cc_add]


def Send_mail(to_add, cc_add,file_path,dept):
'''
传入参数说明:
to_add,收件人地址
cc_add,抄送地址
file_path,附件路径
dept,部门名称
'''
outlook = win32.Dispatch('Outlook.Application') # 调用windows outlook应用
mail = outlook.CreateItem(0) # 创建邮件
mail.to = to_add #收件人
mail.cc = cc_add #抄送人
mail.Subject = "{}年假情况".format(dept) #主题
mail.Attachments.Add(file_path) #添加附件。若有多个附件,则多调用几次即可
mail.Body = '''Dear All,\n这是{}的年假情况,请查收!谢谢。\n\nBest regards!\n人事部 小李'''.format(dept)#正文内容
mail.Send() #发送邮件

#发送邮件到各部门
for dept in address.keys():
to_add = address[dept][0]
cc_add = address[dept][1]
file_path = os.getcwd() + '\\年假_按部门\\年假情况_{}.xlsx'.format(dept)
Send_mail(to_add, cc_add,file_path,dept)

print("邮件发送完成。")



返回顶部