среда, 25 февраля 2015 г.

Windows PowerShell отправка почты НЕ на gmail

В поиске в основном примеры с gmail, и я пошел по неверному пути - указывал стандартный порт отправки 465 отдельным параметром -port 465, по аналогии как в примерах с gmail с нестандартным портом, но так отправка не работала. Оказывается нужно было убрать этот параметр -port, если порт стандартный.

$From = "user1@mail.com"
$To = "user2@mail.gov"
$Cc = "user3@gmail.com"
$Attachment = "C:\temp\backup.log"
$Subject = "Email Subject"
$Body = "Insert body text here"

# $SMTPServer = "smtp.gmail.com" для gmail нужно добавить 
параметр для альтернативного порта -port 587
# $SMTPPort = "587" для gmail. 
Если порт стандартный 465, то параметр -port не нужен

$SMTPServer = "smtp.mail.com"

Send-MailMessage -From $From -to $To -Cc $Cc -Subject $Subject `
-Body $Body -SmtpServer $SMTPServer -UseSsl `
-Credential (Get-Credential) -Attachments $Attachment

для автоматического ввода пароля при отправке

$pass = ConvertTo-SecureString "PaSsW0rD" -AsPlainText -Force  
$mycred = new-object -typename System.Management.Automation.PSCredential `
                     -argumentlist "user1@mail.com",$pass

и тогда параметр заменяем на такой

-Credential $mycred

Вариант 2
  $cred = Get-Credential
  $cred | Export-CliXml c:\temp\cred.clixml
  $cred2 = Import-CliXml c:\temp\cred.clixml

Комментариев нет:

Отправить комментарий