2015-03-13 6 views
0

Я пытаюсь отправить электронные письма, хотя gmail smtp-сервер, используя сценарий powershell. но я не могу отправить электронную почту .. я использую ниже script-отправка электронной почты с помощью gmail с помощью powershell

$EmailFrom = "[email protected]" 

$EmailTo = "[email protected]" 

$Subject = "Notification from XYZ" 

$Body = "this is a notification from XYZ Notifications.." 

$SMTPServer = "smtp.gmail.com" 

$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587) 

$SMTPClient.EnableSsl = $true 

$SMTPClient.Credentials = New-Object System.Net.NetworkCredential("bttpm", "Password"); 

$SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body) 
+0

Вы проверили соединение? –

+0

да, я могу telnet порт –

ответ

2

Это работает для меня:

$SMTPServer = "smtp.gmail.com" 
$SMTPPort = "587" 
$Username = "[email protected]" 
$Password = "" 

$to = "[email protected]" 
$cc = "[email protected]" 
$subject = "Email Subject" 
$body = "Insert body text here" 
$attachment = "C:\test.txt" 

$message = New-Object System.Net.Mail.MailMessage 
$message.subject = $subject 
$message.body = $body 
$message.to.add($to) 
$message.cc.add($cc) 
$message.from = $username 
$message.attachments.add($attachment) 

$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" 

Однако, вы можете получить сообщение об ошибке:

"The SMTP server requires a secure connection or the client was not authenticated. 
The server response was: 5.5.1 Authentication Required. " 

Это связано с тем, что параметры безопасности по умолчанию Gmail блокируют соединение, как это было предложено автосообщением от Google. Поэтому просто следуйте инструкциям в сообщении и включите «Доступ для менее безопасных приложений». На свой страх и риск. :)

Больше информации здесь:. http://petermorrissey.blogspot.ro/2013/01/sending-smtp-emails-with-powershell.html

+0

Я использую версию powershell версии 4. После запуска этого скрипта я получил ниже ошибки ----- Вызов «Отправить» с аргументом «1»: «Для SMTP-сервера требуется безопасное соединение или клиент не прошел проверку подлинности. Ответ сервера: 5.5 .1 Требуется аутентификация. Подробнее читайте в строке «At: 23 char: 1 + $ smtp.send ($ message) + ~~~~~~~~~~~~~~~~~~~ + CategoryInfo: NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId: SmtpException –

+0

@kamleshbhatt Отредактировал мой ответ –

+0

Спасибо за его работу сейчас :) –

1

Отправить по электронной почте с приложением с помощью PowerShell -

$EmailTo = "[email protected]" // [email protected] 
    $EmailFrom = "[email protected]" //[email protected] 
    $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("[email protected]", "xxxxxxxx"); // xxxxxx-password 
    $SMTPClient.Send($SMTPMessage) 
1

«Сервер SMTP требует защищенного соединения или клиент не прошел проверку подлинности Ответ сервера был : 5.5.1 Требуется аутентификация. "

Я недавно столкнулся с этой проблемой, пытаясь автоматизировать сообщения через мою учетную запись Gmail. Мне не нравится возможность разрешать «доступ для менее безопасных приложений». Я хочу передовой мыслительной безопасности. Поэтому я продолжил поиск.

Моим решением было включить проверку «2-Step». Это обеспечивает немного более безопасное решение, поскольку оно предоставляет альтернативный пароль для вашего скрипта для доступа к вашей учетной записи.

Войти при помощи паролей приложений:
https://support.google.com/accounts/answer/185833

ссылка Стефана также имеет это решение, но она утопает в комментариях, и я изначально не нашел его там, пока я не нашел его на моем через поиск в моей учетной записи Gmail. Вот почему я размещаю его здесь.

Смежные вопросы