Powershell电子邮件输出未正确格式化

时间:2016-04-27 12:34:09

标签: email powershell

我花了最后几个小时尝试各种方法来解决我的问题,从我在其他工作脚本中添加部件并在这里​​进行研究,但是我已经达到了需要一双新眼睛来指出明显的对我说。

这是我的脚本,它执行以下操作:

  • 列出特定位置的所有文件夹,将文件夹路径放在文本文件中
  • 在循环中,使用文本文件检查每个文件夹中的最新文件,然后输出最近的10个时间戳(用'[')表示
  • 通过电子邮件发送结果

以上所有作品,我都收到了包含正确信息的电子邮件。问题是电子邮件全部在同一行上,没有格式化。

我从之前的工作脚本中获取了我的样式标签,所以我不确定我哪里出错了。有什么想法吗?

$style = "<style>BODY{font-family: Arial; font-size: 10pt;}"
$style = $style + "TABLE{border: 1px solid black; border-collapse:collapse;}"
$style = $style + "TH{border: 1px solid black; background: #dddddd; padding:     5px; }"
$style = $style + "TD{border: 1px solid black; padding: 5px; }"
$style = $style + "</style>"
$subject = "Processing Log Check at " + (Get-Date -Format g)
$logpaths = Get-Content -Path C:\Powershell\xxxx\scenariologlocation.txt 
$output = foreach ($logpath in $logpaths)
{
Write-Output $logpath
Get-ChildItem -path $logpath | sort LastWriteTime | select -ExpandProperty FullName -last 1 | Out-File C:\Powershell\path.txt
$path = Get-Content -Path C:\Powershell\path.txt
Get-Content -Path $path | Select-String -SimpleMatch "[" | select Line -last 10 | format-table -HideTableHeaders | Out-String
}
$body = (ConvertTo-Html -Head $style -body $output | Out-String)
Send-MailMessage -From "xxxxxx" -To "xxxxxx" -Subject $subject -Body $body -BodyAsHtml -SmtpServer "xxxxxxx"

2 个答案:

答案 0 :(得分:0)

我认为您不应该将字符串传递给$output,然后将其传递给Convertto-Html -body

在我看来,脚本的最后一部分看起来应该是

$output = foreach ($logpath in $logpaths)
{
Write-Output $logpath
Get-ChildItem -path $logpath | sort LastWriteTime | select -ExpandProperty FullName -last 1 | Out-File C:\Powershell\path.txt
$path = Get-Content -Path C:\Powershell\path.txt
Get-Content -Path $path | Select-String -SimpleMatch "[" | select Line -last 10
}
$body = ($output | ConvertTo-Html -Head $style) | Out-String
Send-MailMessage -From "xxxxxx" -To "xxxxxx" -Subject $subject -Body $body -BodyAsHtml -SmtpServer "xxxxxxx"

这样Convertto-Html可以在$output中的所有对象上构建表。我真的不知道是否有必要将HTML传递给Out-String。这里没有Powershell。但我认为这应该有所帮助。

答案 1 :(得分:0)

经过大量的摆弄和粉丝运动之后,我最终重新编写了这本书,并以另一种方式将我需要的内容收录到电子邮件中。

我不是100%确信我需要从原始代码中获得什么(不需要重写)。