来自Powershell数据表的批量电子邮件

时间:2016-11-13 22:19:34

标签: powershell

我正在创建一个连接到SQL的脚本,提取数据集并对其进行格式化。然后我需要向每个团队的经理发送电子邮件以及一个Html表格,我不能想到继续下半年的最佳方式。

数据的格式如下:Team | Item | Manager email

每个项目都是唯一的,因此可以在同一个团队和同一个电子邮件旁边显示一些项目 以下类似的东西是可行的:
For each $_.ManagerEmail in $dataset ( build html output containing each unique item)

他们显然只会收到一封电子邮件而不是每件商品一封 有什么想法或指示吗?

编辑: 谢谢你输入的人。我试图实现Mathias'建议,但脚本现在完成没有输出或错误。我知道SQL部分工作正常所以问题在这里。

foreach($ManagerSet in $Dataset.Rows |Group-Object "Manager Email")
{ 
$Items = $ManagerSet.Group |Select-Object Item 
$Outlook = New-Object -ComObject Outlook.Application 
$Mail = $Outlook.CreateItem(0) 
$Mail.To = $ManagerSet.ManEmails 
$Mail.Subject = "Test" $Mail.Body = 'Testing. Failures include' + $managerset.itemname + $managerset.Info1 $Mail.Send() 
} 

关于我错过的任何指示?

2 个答案:

答案 0 :(得分:1)

我建议通过"经理电子邮件"对数据表中的行进行分组。列,然后每组发送一封电子邮件:

foreach($ManagerSet in $Datatable.Rows |Group-Object "Manager Email")
{
    $Items = $ManagerSet.Group |Select-Object Item
    # Compose email containing $Items in here. 
    # You can refer to the email address via $ManagerSet.Name
}

通过这种方式,您可以为每个团队/经理发送一封包含所有相关项目的电子邮件

答案 1 :(得分:0)

我们应该使用Invoke-SQlCmd用户将SQL数据作为数据表输出,以使其工作。但即使在那之后,Item的任何值都不会返回