SMTP 电子邮件中的 PowerShell 变量

PowerShell Variable into SMTP email

我想要 运行 以下有效的 for 循环。将其加载到变量中并将结果发送到 SMTP 服务器。关于如何做的任何想法。 Google 没有带我去任何地方。

$Servers = get-content C:\Server\server.txt

$To = "test@test.com"
$From = "test@test.com"
$SMTPserver = "mail.mail.com" 
$Subject="Server Status" 

$message = foreach($server in $servers) 
{
Get-WmiObject win32_processor -computername $server | select SystemName, 
LoadPercentage
} 

$smtp=new-object Net.Mail.SmtpClient($smtpServer) 
$smtp.Send($From, $To, $Subject, $Message) 

SmtpClient 需要字符串类型的消息,但是,如果您 运行 使用以下 Write-Host 进行查询,您会注意到 $message 不是字符串类型:

$message = foreach($server in $servers) 
{
    Get-WmiObject win32_processor -computername $server | select SystemName, 
    LoadPercentage
} 

Write-Host ("Message is of type " + ($message.GetType()))

您可以使用例如简单地格式化消息Out-String 得到这样的字符串:

Write-Host ("Message " + ($message | Out-String))

如果您愿意,可以内联定义它,或者先将字符串消息存储在变量中:

$smtp.Send($From, $To, $Subject, ($Message | Out-String) )