Отправка тела письма с переменной информацией - PullRequest
0 голосов
/ 10 сентября 2018

Когда я тестирую этот скрипт, он отправляет пустое тело в сообщении электронной почты. Это дает мне правильный вывод, когда я выполняю ту часть, которая проверяет срок действия сертификата

$strHostname = [system.environment]::MachineName
$smtpServer = "smtp.foo.net"
$msgFrom = "$strHostname@foo.net"
$msgReplyTo = "user@foo.net"
$msgToAdd = "user@foo.net"
$msgSubject =  "WARNING: Certificates Expiring Soon"

$threshold = 30   #Number of days to look for expiring certificates
$deadline = (Get-Date).AddDays($threshold)   #Set deadline date

# Check for cert expiration dates 
$msgBody = Invoke-Command -ComputerName server02, server03, server04 {
    Dir Cert:\LocalMachine\My
} | Sort-Object -Property NotAfter | foreach {
    if ($_.NotAfter -le $deadline) {
        $_ | Select Issuer, Subject, NotAfter,
            @{Label="Expires In (Days)";Expression={($_.NotAfter - (Get-Date)).Days}}
    }
}

function sendMail ([string]$msgSubject, [string]$msgBody) {
    $msg = New-Object Net.Mail.MailMessage

    $smtp = New-Object Net.Mail.SmtpClient($smtpServer)

    $msg.From = $msgFrom
    $msg.ReplyTo = $msgReplyTo
    $msg.To.Add("$msgToAdd")
    $msg.Subject = $msgSubject
    $msg.Body = $msgBody

    $smtp.Send($msg)
}

sendMail $msgSubject $msgBody
...