Enviando notificações de correio do Windows Server 2003 Powershell 2.0 para o Office 365

3

Meu script é destinado a sugira erros em tarefas agendadas que não são concluídas corretamente e as envia para o meu endereço de e-mail via Office365:

$reportHTML = Get-Content C:\windows\tasks\SchedLgU.Txt | Select-String -Pattern "an exit code of \(1\)" -context 2
$reportHTML = Out-String -InputObject $reportHTML

#TODO Add an if statement

$emailUsername = "[email protected]"

#TODO: Change this to a file....
#$emailPassword = cat "C:\ps\emailCred.txt" | convertto-securestring
$emailPassword = ConvertTo-SecureString "somepassword" -AsPlainText -Force


$emailCred = new-object -typename System.Management.Automation.PSCredential($emailUsername, $emailPassword)



Send-MailMessage -To "[email protected]"  -Body $reportHTML -Subject 'Job(s) Failed' -UseSsl -SmtpServer 'smtp.office365.com' -From '[email protected]' -Credential $emailCred

Mas quando eu executo, recebo a seguinte mensagem de erro:

Send-MailMessage : The SMTP server requires a secure connection or the client was not authenticated. The server respons
e was: 5.7.57 SMTP; Client was not authenticated to send anonymous mail during MAIL FROM
At C:\ps\FailedJobNotificiation.ps1:14 char:17
+ Send-MailMessage <<<<  -To "[email protected]"  -Body $reportHTML -Subject 'Job(s) Failed' -UseSsl -SmtpServ
er 'smtp.office365.com' -From '[email protected]' -Credential $emailCred
    + CategoryInfo          : InvalidOperation: (System.Net.Mail.SmtpClient:SmtpClient) [Send-MailMessage], SmtpExcept
   ion
    + FullyQualifiedErrorId : SmtpException,Microsoft.PowerShell.Commands.SendMailMessage

Eu também não posso especificar uma porta, mas parece-me que isso pode ser outro problema, já que estou recebendo uma resposta do servidor. Há algum motivo para não enviar este e-mail? Eu encontrei algumas coisas em configuração de um retransmissor SMTP , mas eu não consigo fazer isso.

Se eu usar o domínio que usamos para email ( somedomain.com ), recebo uma mensagem de erro diferente sobre autenticação:

Send-MailMessage : The remote certificate is invalid according to the validation procedure.
At C:\ps\FailedJobNotificiation.ps1:16 char:17
+ Send-MailMessage <<<<  -To "[email protected]"  -Body $reportHTML -Subject 'Lois Job(s) Failed' -UseSsl -SmtpServ
er 'mail.somedomain.com' -From '[email protected]' -Credential $emailCred
    + CategoryInfo          : InvalidOperation: (System.Net.Mail.SmtpClient:SmtpClient) [Send-MailMessage], Authentica
   tionException
    + FullyQualifiedErrorId : AuthenticationException,Microsoft.PowerShell.Commands.SendMailMessage

Com Verbose, recebo isto:

Send-MailMessage : The remote certificate is invalid according to the validation procedure.
At C:\ps\FailedJobNotificiation.ps1:17 char:17
+ Send-MailMessage <<<<  -Verbose -To "[email protected]"  -Body $reportHTML -Subject 'Job(s) Failed' -UseSsl
-SmtpServer 'mail.somedomain.com' -From '[email protected]' -Credential $emailCred
    + CategoryInfo          : InvalidOperation: (System.Net.Mail.SmtpClient:SmtpClient) [Send-MailMessage], Authentica
   tionException
    + FullyQualifiedErrorId : AuthenticationException,Microsoft.PowerShell.Commands.SendMailMessage
    
por leeand00 14.01.2015 / 17:47

1 resposta

2

Revise a mensagem de erro original que você recebeu:

The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.7.57 SMTP; Client was not authenticated to send anonymous mail during MAIL FROM

A primeira sugestão (requisito de uma conexão segura) provavelmente pode ser ignorada devido ao fato de que você especificou a conformidade com tal requisito usando o parâmetro -UseSSL

O que nos resta é a impressão de que as credenciais que você forneceu não autenticaram você com êxito.

Se for esse o caso, o servidor SMTP tratará sua identidade como "ANONYMOUS", uma identidade raramente permitida para enviar emails, a menos que o host de envio seja explicitamente colocado na lista de permissões. Sob esta luz, a mensagem de resposta SMTP:

5.7.57 SMTP; Client was not authenticated to send anonymous mail during MAIL FROM

de repente faz muito mais sentido.

Meu palpite é que seu endereço SMTP ( [email protected] ) não é igual ao nome principal do usuário (pode ser [email protected] ou algo semelhante), o que faz com que a autenticação falhe

    
por 04.02.2015 / 16:06