Powershell 电子邮件中的HTML行样式不正确,但未输出文件

Powershell 电子邮件中的HTML行样式不正确,但未输出文件,powershell,Powershell,代码的来源: 下午好 使用上述教程,我创建了以下脚本来测试各种服务器的连接: $Style = " <style> BODY{background-color:#b0c4de;} TABLE{border-width: 1px;border-style: solid;border-color: black;border-collapse: collapse;} TH{border-width: 1px;padding: 3px;border-style: so

代码的来源:

下午好

使用上述教程,我创建了以下脚本来测试各种服务器的连接:

$Style = "
<style>
    BODY{background-color:#b0c4de;}
    TABLE{border-width: 1px;border-style: solid;border-color: black;border-collapse: collapse;}
    TH{border-width: 1px;padding: 3px;border-style: solid;border-color: black;background-color:#778899}
    TD{border-width: 1px;padding: 3px;border-style: solid;border-color: black;}
    tr:nth-child(odd) { background-color:#d3d3d3;} 
    tr:nth-child(even) { background-color:white;}    
</style>
"
#Cell Color - Logic
$StatusColor = @{False = ' bgcolor="Red">Offline<';True = ' bgcolor="Green">Online<';}

#Check Online
$subject = "Online Test at " + (Get-Date -Format g)
$body = (import-csv "C:\AutoTasks\servers.txt" | % {new-object psobject -property @{ComputerName=$_.Computer;Description=$_.Description; Reachable=(test-connection -computername $_.Computer -quiet -count 1)} }  | ConvertTo-HTML -AS Table -Fragment -PreContent '<h2>Online Status</h2>'|Out-String) 

#Cell Color - Find\Replace
$StatusColor.Keys | foreach { $body = $body -replace ">$_<",($StatusColor.$_) }

$main = ConvertTo-HTML -head $Style -PostContent $body | Out-String
Send-MailMessage -From "xxxxxxxxxx" -To "xxxxxxxxxxx" -Subject $subject -Body $main -BodyAsHtml -SmtpServer "xxxxxx"
现在,如果我注释掉底部的两行并添加以下行,将输出到文件而不是邮件,我会得到所有格式并正确无误:

ConvertTo-HTML -head $Style -PostContent $body | Out-File c:\temp\online.html
是否存在在创建电子邮件期间丢失行格式的原因

编辑

额外的


在电子邮件输出中,我注意到邮件左上角有一个小框,我怀疑这就是所有格式的所在。这不在html输出文件中,因此我怀疑问题出在最后两行。

如果您使用Microsoft Outlook查看此内容,它仍然使用Microsoft Word进行html呈现,因此,
n子项
将无法工作。运行上面的代码后,我仍然会遇到Outlook 2016的问题。您可以看到各种电子邮件客户端支持什么样的CSS。话虽如此,尽管它提到outlook.com支持它,但它在这两种情况下都不能正确呈现。@Robin非常感谢。
ConvertTo-HTML -head $Style -PostContent $body | Out-File c:\temp\online.html