Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在powershell脚本中为电子邮件正文中的特定变量值着色_Powershell_Email - Fatal编程技术网

如何在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;

我正在使用以下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;
$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)

非常感谢……这就是我要找的。