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) )
我想要 运行 以下有效的 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) )