python - 无法通过字典 python 制作maling
问题描述
尝试将文件发送给不同的收件人,但只能发送一个,否则 - 错误。 如果 del 任何字典邮件都可以发送而没有任何问题,但对于几个字典条件不能循环
from win32com.client.gencache import EnsureDispatch
from win32com.client import constants
outlook = EnsureDispatch("Outlook.Application")
mail = outlook.CreateItem(constants.olMailItem)
PATH = 'C:/Users/aoivanov/OneDrive - ArcelorMittal/Documents/MARKETING/Consolidated_stock/'
def send_mail(mail_list, list_file, message):
mail.Subject = 'Consolidated stock'
mail.Body = message
attachment_list = []
for i in mail_list:
samplegrp1 = mail.Recipients.Add(i)
samplegrp1.Type = constants.olTo
mail.Recipients.ResolveAll()
for file in list_file:
attachment = PATH + file
attachment_list.append(attachment)
for attachment in attachment_list:
mail.Attachments.Add(attachment)
mail.Send()
list_file_mht = ['MHT.xlsx', 'FREE_STOCK.xlsx']
mail_list_mht = ['aaa@arcelormittal.com', 'bbb@arcelormittal.com', 'ccc@gmail.com']
message_mht = 'text1'
list_file_vikant = ['VIKANT.xlsx']
mail_list_vikant = ['xxx@arcelormittal.com']
message_vikant = 'text2'
list_dic = [{'list_file': list_file_mht, 'mail_list': mail_list_mht, 'message': message_mht},
{'list_file': list_file_vikant, 'mail_list': mail_list_vikant, 'message': message_vikant}]
for index, value in enumerate(list_dic):
send_mail(list_dic[index].get('mail_list'), list_dic[index].get('list_file'), list_dic[index].get('message'))
解决方案
Recipients.Add方法在集合中创建一个新的收件人Recipients
并接受收件人的名称作为参数 - 它可以是一个字符串,表示收件人的显示名称、别名或完整的 SMTP 电子邮件地址。
for i in mail_list:
samplegrp1 = mail.Recipients.Add(i)
samplegrp1.Type = constants.olTo
mail.Recipients.ResolveAll()
目前尚不清楚将什么值传递给该Add
方法。
此外,无需ResolveAll
在循环中使用该方法。相反,您可以改用Resolve
Recipient 类的方法。
for i in mail_list:
samplegrp1 = mail.Recipients.Add(i)
samplegrp1.Type = constants.olTo
samplegrp1.Resolve()
推荐阅读
- javascript - 在遍历一个可观察对象后触发一个动作
- r - 变异动词产生 NaN 而它不应该在 R
- python - hadoop distcp 使用 subprocess.Popen
- javascript - 如果我没有权限,如何从 Google Drive 文件夹中隐藏嵌入文件的 iframe
- java - 如何修改 TextView 的内容
- android - 改造:onFailure:预期 BEGIN_OBJECT 但在路径 $ 处是 BEGIN_ARRAY
- python - 内核在 itertools.combinations 命令后死亡
- yocto - 带有 yocto 的 dlib 库
- spring - PooledConnection.connectUsingDriver 未加载 JDBC 驱动程序,因为 driverClassName 属性为 null
- android - Recyclerview 在第一次创建活动时不加载