如何在powershell脚本中为电子邮件正文中的特定变量值着色
我正在使用以下Powershell脚本发送邮件如何在powershell脚本中为电子邮件正文中的特定变量值着色,powershell,email,Powershell,Email,我正在使用以下Powershell脚本发送邮件 $smtpServer ="111.11.1.1.11" $smtp = New-Object Net.Mail.SmtpClient($smtpServer) $msg=new-object Net.Mail.MailMessage $msg.From="noreply@x.com" $msg.To.Add("x@x.com") $Success = $passed/$total*100; $Failed = $Total- $Passed;
$smtpServer ="111.11.1.1.11"
$smtp = New-Object Net.Mail.SmtpClient($smtpServer)
$msg=new-object Net.Mail.MailMessage
$msg.From="noreply@x.com"
$msg.To.Add("x@x.com")
$Success = $passed/$total*100;
$Failed = $Total- $Passed;
$msg.Subject = "BVT On Build"+$Buildno+",Total :"+ $Total+" Passed :"+
$Passed+" Failed :"+$Failed+"" #$subject
$msg.Body = "This is an autogenerated mail from VM - Total Tests Run
:"+$Total+" `n`n Total Tests Passed :"+ $Passed+" `n`n Pass Percentage
:"+$Success+" `n`n Failed test cases 'n'n"+$Failed+""
$smtp.Send($msg)
我的要求是给邮件正文中的特定变量值(例如:$Failed in$msg.Body)上色。我如何才能做到这一点?请您帮忙
我知道下面的方法,但它只用于写主机
写入主机$myVariable-ForegroundColor“红色”
我的输出应该是这样的
这是从VM自动生成的邮件-总共运行12个测试
通过测试总数:6
通过率:50%
失败的测试用例:6(红色)您需要对电子邮件正文中的着色元素使用
HTML
格式。
简单的IF/ELSE
条件表达式来设置所需的颜色。此外,必须将IsBodyHtml
属性设置为True
,以便邮件正文不会是纯文本
$smtpServer ="111.11.1.1.11"
$smtp = New-Object Net.Mail.SmtpClient($smtpServer)
$msg=new-object Net.Mail.MailMessage
$msg.From="noreply@x.com"
$msg.To.Add("x@x.com")
$Success = $passed/$total*100
$SuccessFormatted = if ($Success -ge 50){
'<font color="green">{0}</font>' -f $Success
}
else{
'<font color="red">{0}</font>' -f $Success
}
$Failed = $Total- $Passed;
$msg.Subject = "BVT On Build"+$Buildno+",Total :"+ $Total+" Passed :"+
$Passed+" Failed :"+$Failed+"" #$subject
$msg.Body = "This is an autogenerated mail from VM - Total Tests Run
:"+$Total+" `n`n Total Tests Passed :"+ $Passed+" `n`n Pass Percentage
:"+$SuccessFormatted+" `n`n Failed test cases 'n'n"+$Failed+""
$msg.IsBodyHtml = $true
$smtp.Send($msg)
$smtpServer=“111.11.1.1.11”
$smtp=新对象Net.Mail.SmtpClient($smtpServer)
$msg=新对象Net.Mail.MailMessage
$msg.From=”noreply@x.com"
$msg.To.Add(“x@x.com")
$Success=$passed/$total*100
$SuccessFormatted=if($Success-ge 50){
“{0}”-f$Success
}
否则{
“{0}”-f$Success
}
$Failed=$Total-$Passed;
$msg.Subject=“BVT On Build”+$Buildno+”,总计:“+$Total+”已通过:“+
$Passed+“Failed:“++$Failed+”#$subject
$msg.Body=“这是从VM自动生成的邮件-运行的测试总数
:“+$Total+”`n`n通过的测试总数:“+$Passed+”`n`n通过百分比
:“+$SuccessFormatted+”`n`n失败的测试用例'n'n“+$Failed+”
$msg.IsBodyHtml=$true
$smtp.Send($msg)
非常感谢……这就是我要找的。