首页 > 解决方案 > Powershell 电子邮件正文格式未按预期显示

问题描述

该代码收集 ping 和 traceroute 信息并通过电子邮件发送。ping 结果的输出在电子邮件正文中很好,但 tracert 信息的格式不正确。请参阅以下示例,如电子邮件正文中所示。信息必须从变量传递到电子邮件正文,如下所示,而不是作为日志文件附加。

电子邮件正文中的输出

代码如下:

$TimeSpan = New-TimeSpan -Minutes 1
$EndTime = (Get-Date).AddMinutes($TimeSpan.TotalMinutes).ToString("HH:mm")
# $log_file='c:\timee.log'

cls

do
{

write-host 'Gathering logs..wait 2 mins'
$1+=ping google.com |Select-String "Reply"| foreach $_ { $a = Get-Date; 
$a.ToString() + " " + $_ } #| 
Out-File -Append -Encoding UTF8 -FilePath  $log_file
$2+= tracert google.com 
}
until ($EndTime -eq (Get-Date -Format HH:mm))  

$EmailFrom = "from@gmail.com"
$EmailTo = "to@hotmail.com"
$Subject = "Notification from yy"
$Body = $1+$2 
$SMTPServer = "smtp.gmail.com"
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587)
$SMTPClient.EnableSsl = $true
$SMTPClient.Credentials = New-Object 
System.Net.NetworkCredential("from@gmail.com", 
"passwd");
$SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)

#Clear-Variable -name '1'


Write-Host "All done" -ForegroundColor Green

标签: powershell

解决方案


推荐阅读