如何格式化Send-MailMessage正文内容

时间:2017-05-18 19:29:21

标签: powershell email

我正在编写一个脚本来ping工作站列表,如果它们处于脱机状态,则返回将它们添加到数组中。将它们添加到阵列后,脚本会发送一封包含脱机工作站列表的电子邮件。这是迄今为止的脚本

$list = Get-Content "C:\Users\$env:UserName\Desktop\workstations.txt"
ForEach ($_ in $list) { 
$test = Test-Connection -BufferSize 32 -Count 1 -ComputerName $_ -Quiet
IF ($test -match "false") {
$offlinelist += ($_)
}
}
Send-MailMessage -To "me <me@me.com>" -From "you <you@you.com>" -Subject "Offline Workstations" -SmtpServer "smtp.me.com" -body "These workstations are offline: <br> $offlinelist" -BodyAsHtml

在当前形式下,代码将发送一封电子邮件,其输出如下所示:

  

这些工作站处于离线状态:
  test1test2

我需要它看起来像这样:

  

这些工作站处于离线状态:
  test1的
  TEST2

我知道有一种方法可以使用New-Object cmdlet或Format-Table cmdlet。我只是不确定如何构建代码。我找到了几个示例,但我无法使用Send-MailMessage cmdlet。此外,是否可以使用不同的颜色字体或面部风格化电子邮件的正文?任何帮助或示例将不胜感激。先感谢您。

1 个答案:

答案 0 :(得分:1)

如果将来遇到其他人,我可以通过在数组中的工作站名称之后添加<br>来解决我的问题:

$offlinelist += "$_ <br>"

由于BodyAsHtml cmdlet中的Send-MailMessage属性,这似乎有效。我不确定这是否是正确的方式语法,但它对我没有错误。干杯!