在 HTML 正文中发送准确的 Powershell 输出
Send exact Powershell Output in HTML body
我有一个 powershell 脚本,可以发送包含一些 windows 事件的电子邮件。
$array 包含事件
$array = (Get-WinEvent -FilterXml ([xml](Get-Content C:\SendMail\EventBackup.xml))| Format-List) | out-string
然后在电子邮件正文中,我曾经键入 $Body=$array
,我的报告如下:
TimeCreated : 3/16/2015 2:12:52 AM
ProviderName : Microsoft-Windows-Backup
Id : 14
Message : Backup completed.
TimeCreated : 3/16/2015 2:12:52 AM
ProviderName : Microsoft-Windows-Backup
Id : 4
Message : Backup finished successfully.
TimeCreated : 3/16/2015 1:00:14 AM
ProviderName : Microsoft-Windows-Backup
Id : 1
Message : Backup started.
我已将电子邮件类型更改为 HTML,因此我可以自定义报告,但现在正文如下:
TimeCreated : 3/19/2015 2:23:00 AM ProviderName : Microsoft-Windows-Backup Id : 14 Message : Backup completed. TimeCreated : 3/19/2015 2:23:00 AM ProviderName : Microsoft-Windows-Backup Id : 4 Message : Backup finished successfully. TimeCreated : 3/19/2015 1:00:13 AM ProviderName : Microsoft-Windows-Backup Id : 1 Message : Backup started.
都在同一行。
我知道这可能是因为这行:
$emailMessage.IsBodyHtml = $true
$emailMessage.Body = @"$array "@
我怎样才能使它看起来像 HTML 之前的样子?
尝试将新行转换为 <br/>
$array=$array -replace '\n','<br/>'
$emailMessage.Body = @"$array "@
发表评论后:您可以使用相同的技术以粗体显示创建时间:
$array=$array -replace "(Timecreated .*?)(ProviderName)", '<strong></strong>'
我有一个 powershell 脚本,可以发送包含一些 windows 事件的电子邮件。
$array 包含事件
$array = (Get-WinEvent -FilterXml ([xml](Get-Content C:\SendMail\EventBackup.xml))| Format-List) | out-string
然后在电子邮件正文中,我曾经键入 $Body=$array
,我的报告如下:
TimeCreated : 3/16/2015 2:12:52 AM
ProviderName : Microsoft-Windows-Backup
Id : 14
Message : Backup completed.
TimeCreated : 3/16/2015 2:12:52 AM
ProviderName : Microsoft-Windows-Backup
Id : 4
Message : Backup finished successfully.
TimeCreated : 3/16/2015 1:00:14 AM
ProviderName : Microsoft-Windows-Backup
Id : 1
Message : Backup started.
我已将电子邮件类型更改为 HTML,因此我可以自定义报告,但现在正文如下:
TimeCreated : 3/19/2015 2:23:00 AM ProviderName : Microsoft-Windows-Backup Id : 14 Message : Backup completed. TimeCreated : 3/19/2015 2:23:00 AM ProviderName : Microsoft-Windows-Backup Id : 4 Message : Backup finished successfully. TimeCreated : 3/19/2015 1:00:13 AM ProviderName : Microsoft-Windows-Backup Id : 1 Message : Backup started.
都在同一行。
我知道这可能是因为这行:
$emailMessage.IsBodyHtml = $true
$emailMessage.Body = @"$array "@
我怎样才能使它看起来像 HTML 之前的样子?
尝试将新行转换为 <br/>
$array=$array -replace '\n','<br/>'
$emailMessage.Body = @"$array "@
发表评论后:您可以使用相同的技术以粗体显示创建时间:
$array=$array -replace "(Timecreated .*?)(ProviderName)", '<strong></strong>'