我看过类似的问题,但都没有使用PowerShell。
我有一个包含6列的CSV文件,我可以使用以下脚本通过Outlook将其作为附件发送:
$Outlook = New-Object -ComObject Outlook.Application
$Mail = $Outlook.CreateItem(0)
$Mail.To = "xyz@abc.com"
$Mail.Subject = "Ping Test"
$Mail.Body = "Eureka! It works."
$Mail.Attachments.Add("C:\report.csv")
$Mail.Send()
我希望将此CSV文件以表格的形式显示为嵌入邮件中。
类似的东西:
现在我只需要一张桌子。我严格需要一种通过PowerShell执行此操作的方法。
我的PowerShell版本是5.1
答案 0 :(得分:1)
您只显示了您的电子邮件代码。由于您已成功将其作为附件发送。我不知道为什么要使用嵌入式表。哦,伙计们有他们的理由。
您不能像显示或设置CSV格式那样直接将CSV作为表格直接嵌入电子邮件中。将CSV转换为HTML表并将HTML嵌入电子邮件中。
网络上有很多示例显示了如何执行此操作。甚至在这个论坛上。
示例:
https://thesurlyadmin.com/2013/01/21/how-to-create-html-reports
$DataSet1 = Import-Csv -Path D:\Temp\SomeDataFile1.csv | ConvertTo-Html -Fragment
$DataSet2 = Import-Csv -Path D:\Temp\SomeDataFile2.csv | ConvertTo-Html -Fragment
$mailBody =
@"
Hello SomeUser,</br>
Here are the data points requested. Please have a look.</br>
</br>$DataSet1</br>
</br>$DataSet2</br>
Best Regards,</br>
Administrator
"@
使用PowerShell发送HTML格式的电子邮件。
您好,您是否想使用以下方式发送HTML格式的电子邮件? powershell.if是,那么您可以使用此脚本。我正在使用此脚本 设置通知的范围非常广泛。最好的是我们 可以将此脚本与其他任何脚本一起使用。了解更多信息 脚本点击
https://gallery.technet.microsoft.com/scriptcenter/Send-HTML-Formatted-email-26925a96
如何在电子邮件正文中嵌入HTML文件
https://gallery.technet.microsoft.com/scriptcenter/Send-HTML-Formatted-email-26925a96
至于...
转换为html报告部分对我来说效果很好。但是,我 仍然不能完全将其嵌入电子邮件正文中
您是说您尝试过这种方式,但并未嵌入吗? 现在这不是漂亮的表格外观,因为没有应用HTML样式,所以,只是原始的。
$DataSet1 = Import-Csv -Path C:\Temp\DataSet.csv | ConvertTo-Html -Fragment
$DataSet2 = Import-Csv -Path C:\Temp\DateSet.csv | ConvertTo-Html -Fragment
$mailBody =
@"
Hello SomeUser,</br>
Here are the data points requested. Please have a look.</br>
</br>
$DataSet1
</br>
</br>
$DataSet2
</br>
Best Regards,</br>
Administrator
"@
$Outlook = New-Object -ComObject Outlook.Application
$Mail = $Outlook.CreateItem(0)
$Mail.To = "SomeEmailAddress"
$Mail.Subject = "DataSet"
$Mail.HtmlBody = $mailBody
$Mail.Send()
OP更新
作为一项快速的健全性检查,我只是在一个安装了Outlook的实验室客户端上进行了此操作,它适用于嵌入,但是简单的表格显示不使用边框。
{{1}}