
В данной записи описан простой и короткий скрипт на Powershell для отправки почты через gmail и решение ошибки 5.5.1.
При попытке отправить письмо через gmail в Powershell скрипте я получал следующую ошибку:
Серверу SMTP требовалось защищенное соединение, или подлинность клиента не была установлена. Ответ сервера: 5.5.1 Authentication Required. Learn more at
Или по английски:
The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.5.1 Authentication Required
Далее опишу что нужно сделать, чтобы избавиться от ошибки и приведу пример самого powershell скрипта.
Если у вас в google НЕ включена двух-факторная авторизация (подтверждение входа через отправку sms на телефон)
Необходимо разрешить непроверенным приложениям доступ к вашему аккаунту, это делается на странице: google.com/settings/security/lesssecureapps
Если не разрешите, то к Вам на почту будут приходить письма с темой "Предотвращ
Если у вас в google включена двух-факторная авторизация
Нужно сгенерировать отдельный пароль для доступа powershell-скрипта к Вашему аккаунту. Это делается на странице security.google.com/settings/security/apppasswords
Выбираем в выпадающем списке "Приложение" пункт "Другое" и пишем какое-то свое название, я написал "Powershell on elimS Notebook". Жмем кнопку "Создать" и Вам будет выдан шестнадцатизначный пароль, который нужно использовать в скрипте, пример пароля: "ifizbeaatmuzqonp" - 16 букв в нижнем регистре, без пробелов.
Powershell скрипт для отправки почты через gmail
#Входящие данные сообщения: $From = "elimsmail@gmail.com" $To = "test@gmail.com" $SMTPServer = "smtp.gmail.com" $SMTPPort = "587" $Username = "elimsmail" $Password = "yourpassword" $subject = "hello" $body = "bodytext" #формируем сообщение в формате html: $message = New-Object System.Net.Mail.MailMessage $From, $To $message.Subject = $subject $message.IsBodyHTML = $true $message.Body = $body #Отправляем: $smtp = New-Object System.Net.Mail.SmtpClient($SMTPServer, $SMTPPort) $smtp.EnableSSL = $true $smtp.Credentials = New-Object System.Net.NetworkCredential($Username, $Password) $smtp.Send($message)
Не забудьте в переменных указать свои данные: почтовый ящик, пароль и т.п.
Где этот скрипт можно применить? Я таким образом настроил автопостинг в twitter (вернее автотвитеринг =) ) через сервис ifttt.com и рецепт "If send trigger@ifttt.com any email from elimsmail@gmail.com, then post a tweet to @мой_твитер_аккаунт"
Здравствуйте! Не смогла пройти мимо и не поблагодарить! Огромное Вам спасибо! Я уже с ног просто сбилась, почему у меня ошибка в программе, не пускает на гугл-почту и все тут! Весь инет перекопала, и только у Вас прочитала, что проблема может быть в двухэтапной авторизации. По Вашему описанию задала пароль для своего приложения и сразу все заработало!
Спасибо Вам огромное!
Татьяна, здравствуйте. Рад, что моя заметка Вам пригодилась =)
Здравствуйте, Владимир! При настройке сборщика писем из Gmail в Gmail
Сервер отказал в доступе по протоколу POP3 для данного имени пользователя и пароля.
Ошибка сервера: «[AUTH] Web login required: https://support.google.com/mail/bin/answer.py?answer=78754″
В почте появляется письмо от Google, что они перекрыли попытку несанкционированного доступа к аккаунту. Уже несколько дней пытаюсь настроить, испробовала все методы предложенные Google, но у вы…. Мне не хотелось бы разрешать непроверенным приложениям доступ к аккаунту. Двухэтапную авторизацию не включала. Кроме того, перестала загружаться почта из старого Gmail в Thunderbird, соответственно и новый Gmail не подключается. Ошибка та же. Помогите пожалуйста решить эту проблему. Прочитала Вашу статью, и думаю, что это может решить мою проблему. Но т.к я полный чайник))), не совсем поняла, что и как надо сделать.
Если возможно, напишите, пожалуйста подробно
Заранее спасибо!
Добрый день, Людмила. Пробовали пройти по инструкции которая описана тут?: https://productforums.google.com/forum/#!topic/gmail-ru/5RstlEBs9NU
Имеется в виду авторизация в приватном режиме и ввод капчи на странице которая там указана?
Да,полностью следовала этой инструкции. Чистила кэш и куки, меняла парполь,сообщила в Google, что попытка входа была заблокирована по ошибке (https://support.google.com/accounts/answer/2618603?p=client_login_m&rd=1)
Людмила, тогда, к сожалению, я ничего не могу посоветовать.
Спасибо!
Божественно !
Здравствуйте, Владимир.
Подскажите пожалуйста, можно ли создавать контакты в почте gmail через команды Powershell? никак не найду просто информацию, т.к. только начинаю осваивать.
Здравствуйте. Не пробовал.
Тут больше вопрос не к возможностям powershell, а к возможностям протокола или api
Хорошо, спасибо. Буду изучать)
Это письмо идет в открытом виде в том числе и пароль? 587 порт — это не безопасный порт для отправки сообщения? Безопасный порт 465?