无法通过Powershell发送电子邮件

时间:2015-02-19 03:44:49

标签: powershell windows-server-2008-r2

我一直在尝试将此脚本用作检查文件,发送成功电子邮件或失败电子邮件的简单布尔值。但我不能为我的生活弄清楚为什么它不起作用。

有什么想法吗?

$SMTPServer = "smtp.gmail.com"
$SMTPPort = "587"
$Username = "xxxx@xxxxx.com"
$Password = "xxxxxxx"
$to = "xxx@xxxxx.net"

if ( ([System.Io.fileinfo]'E:\GD Backup Folder\backup\Backup_*.zip').LastWriteTime.Date -ne [datetime]::Today )    {
            $message = New-Object System.Net.Mail.MailMessage
            $message.subject = "Backup Successful"
            $message.body = "Backup was successful."
            $message.to.add($to)
            $message.from = $username

            $smtp = New-Object System.Net.Mail.SmtpClient($SMTPServer, $SMTPPort);
            $smtp.EnableSSL = $true
            $smtp.Credentials = New-Object System.Net.NetworkCredential($Username, $Password);
            $smtp.send($message)
            write-host "Mail Sent"
}else{
            $message = New-Object System.Net.Mail.MailMessage
            $message.subject = "Backup Unsuccessful"
            $message.body = "Backup was NOT Successful - File Not Found"
            $message.to.add($to)
            $message.from = $username

            $smtp = New-Object System.Net.Mail.SmtpClient($SMTPServer, $SMTPPort);
            $smtp.EnableSSL = $true
            $smtp.Credentials = New-Object System.Net.NetworkCredential($Username, $Password);
            $smtp.send($message)
            write-host "Mail Sent"
}

1 个答案:

答案 0 :(得分:0)

使用powershell发送带附件的电子邮件 -

     $EmailTo = "udit043.ur@gmail.com"  // abc@domain.com
     $EmailFrom = "udit821@gmail.com"  //xyz@gmail.com
     $Subject = "zx"  //subject
     $Body = "Test Body"  //body of message
     $SMTPServer = "smtp.gmail.com" 
     $filenameAndPath = "G:\abc.jpg"  //attachment
     $SMTPMessage = New-Object System.Net.Mail.MailMessage($EmailFrom,$EmailTo,$Subject,$Body)
     $attachment = New-Object System.Net.Mail.Attachment($filenameAndPath)
     $SMTPMessage.Attachments.Add($attachment)
     $SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587) 
     $SMTPClient.EnableSsl = $true 
     $SMTPClient.Credentials = New-Object System.Net.NetworkCredential("udit821@gmail.com", "xxxxxxxx");    // xxxxxx-password
     $SMTPClient.Send($SMTPMessage)