PowerShell电子邮件 - 使用HTML发送.csv

时间:2016-10-05 08:40:11

标签: html email powershell csv

我有一个运行mysql查询的powershell脚本,并将输出导出到.csv文件。

然后导入它,将其发送到$body变量并通过电子邮件发送。

这是代码

### Script to write body of e-mail to $body variable ###

$body = @"
CHECK 4A - MONTH DATABASE REPORT

Row count should be between 3-4k, but less on a Monday.

"@  + (Import-CSV  C:\Users\*****\Documents\Reports\result4A.csv | Out-String)

我也想在电子邮件中使用一些HTML,只是为了让它更容易阅读,所以我使用了-BodyAsHtml参数:

### Send e-mail ###

send-mailmessage -from " Daily Check <server@company.com>" -to "Admin <e-mail@company.com>" -BodyAsHtml -subject "Daily Server Checks Report" -body "$body" -priority High -dno onSuccess, onFailure -smtpServer **.*.*.**

问题是,这意味着.csv文件无法在电子邮件中正确显示,因为电子邮件正文已更改为HTML。有没有办法解决?如果可能,我想保留导出到.csv解决方案。

1 个答案:

答案 0 :(得分:3)

$csvHTML = Import-Csv C:\Users\*****\Documents\Reports\result4A.csv  | ConvertTo-Html

$body = @"
    ....  
"@ + ($csvHTML[5..($csvHTML.length-2)] | Out-String)

这会将CSV文件转换为HTML。然后,您只需选择包含CSV的<table></table>标签(跳过前5行和后2行),然后将其添加到电子邮件正文中即可。