Отправка почты через gmail с помощью PowerShell V2 Send-MailMessage - PullRequest
41 голосов
/ 10 августа 2009

Я пытаюсь понять, как использовать PowerShell V2 Send-MailMessage с gmail.

Вот что у меня есть.

$ss = new-object Security.SecureString
foreach ($ch in "password".ToCharArray())
{
    $ss.AppendChar($ch)
}
$cred = new-object Management.Automation.PSCredential "uid@domain.com", $ss
Send-MailMessage    -SmtpServer smtp.gmail.com -UseSsl -Credential $cred -Body...

Я получаю следующую ошибку

Send-MailMessage : The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.5.1 Authentication Required. Learn
 more at                              
At foo.ps1:18 char:21
+     Send-MailMessage <<<<      `
    + CategoryInfo          : InvalidOperation: (System.Net.Mail.SmtpClient:SmtpClient) [Send-MailMessage], SmtpException
    + FullyQualifiedErrorId : SmtpException,Microsoft.PowerShell.Commands.SendMailMessage

Я что-то не так делаю, или Send-MailMessage еще не полностью выпечен (я на CTP 3)?

Некоторые дополнительные ограничения

  1. Я хочу, чтобы это не было интерактивным, поэтому get-credential не будет работать
  2. Учетная запись пользователя не принадлежит домену Gmail, а зарегистрированный домен приложений Google
  3. Для этого вопроса меня интересует только командлет Send-MailMessage, отправка почты через обычный .Net API понятна.

Ответы [ 13 ]

0 голосов
/ 09 апреля 2013

Я согласен с решением Кристиана Маггли, хотя сначала я все еще получил ошибку, о которой сообщил Скотт Вайнштейн. Как пройти мимо это:

Либо первый вход в Gmail с компьютера, на котором он будет работать, используя указанную учетную запись. (НЕ обязательно добавлять какие-либо сайты Google в зону надежных сайтов, даже если включена конфигурация усиленной безопасности Internet Explorer.)

ИЛИ, с первой попытки вы получите сообщение об ошибке, и ваш gmail acct получит уведомление о подозрительном входе в систему, поэтому следуйте их инструкциям, чтобы разрешить будущие входы с компьютера, на котором он будет работать.

0 голосов
/ 28 декабря 2010

проверьте этот пост о способе отправки вложений с помощью gmail Примеры Powershell , чтобы вы могли увидеть, как отправлять вложения с помощью gmail Дайте мне знать, если это поможет вам Скотт А www.techjunkie.tv

0 голосов
/ 10 августа 2009

Я не использовал PowerShell V2 send-mailmessage, но я использовал класс System.Net.Mail.SMTPClient в V1 для отправки сообщений на учетную запись gmail в демонстрационных целях. Это может быть излишним, но запустите smtp-сервер на моем ноутбуке Vista, см. эту ссылку , если вы находитесь на предприятии, у вас уже есть почтовый сервер, и этот шаг не требуется. Имея SMTP-сервер, я могу отправить письмо на мою учетную запись Gmail со следующим кодом:

$smtpmail = [System.Net.Mail.SMTPClient]("127.0.0.1")
$smtpmail.Send("myacct@gmail.com", "myacct@gmail.com", "Test Message", "Message via local smtp")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...