我有一个运行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解决方案。
答案 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行),然后将其添加到电子邮件正文中即可。