发送带有可变信息的电子邮件正文

时间:2018-09-10 20:34:24

标签: powershell email powershell-v4.0

当我测试此脚本时,它将在电子邮件中发送空白正文。当我执行检查证书过期的部分时,它将为我提供正确的输出

$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

0 个答案:

没有答案