我正在尝试创建 HMTL 格式的电子邮件,其中一些消息是红色的。我这样做:
[void]$mailBody.add("<p style="color:#FF0000";>Error Adding User ($Username) to Group ($group) </p> `r`n")
但是#HTML 中的 注释掉了该行的其余部分。
有没有办法避免这种情况?
我正在尝试创建 HMTL 格式的电子邮件,其中一些消息是红色的。我这样做:
[void]$mailBody.add("<p style="color:#FF0000";>Error Adding User ($Username) to Group ($group) </p> `r`n")
但是#HTML 中的 注释掉了该行的其余部分。
有没有办法避免这种情况?
您在带引号的字符串中使用相同的引号。那是行不通的。PowerShell 将对其进行解析,"<p style="然后添加注释。使用不同的内引号:
[void]$mailBody.add("<p style='color:#FF0000';>Error Adding User ($Username) to Group ($group) </p> `r`n")
或逃避你的内心报价:
[void]$mailBody.add("<p style=`"color:#FF0000`";>Error Adding User ($Username) to Group ($group) </p> `r`n")
正如本例所示,这并不罕见……
$Style = "<style>"
$Style = $Style + "BODY{background-color:#D7D8D8;}"
$Style = $Style + "TABLE{border-width: 1px;border-style: solid;border-color: black;border-collapse: collapse;}"
$Style = $Style + "TH{border-width: 1px;padding: 0px;border-style: solid;border-color: black;}"
$Style = $Style + "TD{border-width: 1px;padding: 0px;border-style: solid;border-color: black;}"
$Style = $Style + "</style>"
$ServerList = Get-Content -path B:\MYSHARE\PowershellScripts\computers.txt
$serviceList = &{$args} IISADMIN W3SVC HTTPFilter cpsvc CitrixWMIService CtxHttp CitrixXTEServer IMAService CdmService "Citrix SMA Service"
$body = $ServerList | foreach { (Get-Service -Name $serviceList -computername $_) |
Select-Object MachineName, Name, DisplayName, Status | ConvertTo-HTML -Fragment}
<# possible values
[enum]::GetValues([System.ServiceProcess.ServiceControllerStatus])
Stopped
StartPending
StopPending
Running
ContinuePending
PausePending
Paused
the field tag looks like this <td>Running</td> we need it to look like this
<td bgcolor="#00ff00">Running</td>
#>
$colorTagTable = @{Stopped = ' bgcolor="#ff0000">Stopped<';
Running = ' bgcolor="#00ff00">Running<'}
#get possible values look them in text sorrounded by > < and replace them with style (pun intended).
$colorTagTable.Keys | foreach { $body = $body -replace ">$_<",($colorTagTable.$_) }
ConvertTo-HTML -head $Style -body "<H2>Validation Completed</H2> $body" |
Out-File "B:\MYSHARE\PowershellScripts\Validated.htm"
所以,这可以被看作是这个 SO 接受的答案的副本......
...使用稍微不同的方法,但是,它也指向上述资源。
您将在对您的用例的一般搜索中找到更多示例。