none
Problemas com autenticação ao enviar email RRS feed

  • Pergunta

  • Bom dia

    Sou iniciante em criar scripts usando powershell e necessito complementar um script para enviar email com o status da execução do script. Já testei vários scripts porém não obtive sucesso com nenhum e percebi que o problema está na autenticação e talvez na definição da porta.

    Como os script rodam em nosso ambiente de DataCenter e nesse ambiente não temos um servidor de email, eu preciso usar o nosso webmail cujo qual não necessita autenticação SSL, apenas uma autenticação básica onde forneço o usuário e senha. As configurações do webmail estão OK pois o DATABASEMAIL do SQL funciona perfeitamente.

    Já tentei scripts que usam SMTPClient, Send-Message porém notei que em nenhum deles é fornecido o número da porta e os que usam as credenciais, acredito que estejam obtendo as credenciais de rede o que não vale para o meu caso.

     

    Alguém teria alguma idéia?

     

    Grato.

     

     

    sexta-feira, 19 de agosto de 2011 11:05

Respostas

  • Bom dia

     

    Como suspeitava, o problemas estava na autenticação. O SSL já estava desabilitado como o Edson sugeriu porém o problema estava com o usuário e no meu caso, foi necessário informar o domínio (@xxxxx.com.br) e definir a senha como texto seguro.

    Pelo que pude concluir, cada caso é um caso.

     

    Obrigado a todos que ajudaram.

    • Marcado como Resposta Jose Marcelo segunda-feira, 22 de agosto de 2011 10:37
    segunda-feira, 22 de agosto de 2011 10:37

Todas as Respostas

  • Bom dia José,


    Veja se isso lhe ajuda

    $smtpClient = new-object system.net.mail.smtpClient $smtpClient.Host = 'smtp.gmail.com' $smtpClient.Port = 587 $smtpClient.EnableSsl = $true $smtpClient.Credentials = [Net.NetworkCredential](Get-Credential GmailUserID) $smtpClient.Send('GmailUserID@gmail.com','yourself@somewhere.com','test subject', 'test message')
    

    Ref.. http://stackoverflow.com/questions/1252335/send-mail-via-gmail-with-powershell-v2s-send-mailmessage&usg=ALkJrhjm30D_jSH8XmN43kpxjcG1LHX4cA

     

    Abraços

     

     


    Edson Matias Fagundes Junior - (Nioks)
    MCP, MCTS: 2008, MCTS:MBS
    Se a resposta for valida por favor vote como útil.
    sexta-feira, 19 de agosto de 2011 12:12
  • Bom dia Edson

     

    Esse script, para o Gmail, funciona perfeitamente. POrém quando altero as informações pertinentes ao meu ambiente, ocorre o erro abaixo:

     

    Exceção ao chamar "Send" com "4" argumento(s): "O certificado remoto é inválido, de acordo com o procedimento de vali
    dação."
    Em C:\Users\jose.dias.SINTEL\AppData\Local\Temp\eeefab17-3982-4499-b9f2-19beffd69434.ps1:7 caractere:17
    + $smtpClient.Send <<<< ('XXXX@ZZZZ.com.br','YYYYYY@ZZZZ.com.br','test subject', 'test message')
        + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
        + FullyQualifiedErrorId : DotNetMethodException

     

    Grato.

    sexta-feira, 19 de agosto de 2011 13:14
  • Ok altere o SSl para false isso pode resolver.
    Edson Matias Fagundes Junior - (Nioks)
    MCP, MCTS: 2008, MCTS:MBS
    Se a resposta for valida por favor vote como útil.
    sexta-feira, 19 de agosto de 2011 20:02
  • Amigão segue script testado e funcionando... eu uso o locaweb veja se lhe ajuda

     

    ####################################################################################################
    # SendMail with Example
    # Version 1.0.0
    # July 27, 2010
    # Copyright (C) 2010 Johan Cyprich. All rights reserved.
    #
    # Minimum Requirements: PowerShell 2.0
     # Licence: released under GPL 3: http://www.gnu.org/licenses/gpl.html.
    ####################################################################################################
    
    
    function SendMail ([string] $sHost, [string] $sPort, [string] $sFrom, [string] $sTo, [string] $sSubject, [string] $sMessage, [string] $sUserName, [string] $sPassword)
    
    ####################################################################################################
    # PURPOSE:
    # Sends an e-mail to an SMTP server. It will also authenticate to the server if a user name and
    # password are sent to the function. If authentication is not used, leave $sUserName and $sPassowrd
    # blank, i.e. ''.
    #
    # PARAMETERS:
    # $sHost (in) - host name of mail server
    # $sFrom (in) - e-mail address of mail sender
    # $sTo (in) - e-mail address of mail recipient
    # $sSubject (in) - subject title of message
    # $sMessage (in) - message sent to recipient
    # $sUserName (in) - user name for authentication
    # $sPassword (in) - password for authentication
    #
    # RETURN:
    # True - mail was sent succesfully
    # False - mail was not sent
    ####################################################################################################
    
    {
     [bool] $bSuccess = 1     # was mail sent without problems?
    
     $SmtpClient = new-object system.net.mail.smtpClient 
     $smtpclient.Host = $sHost 
    $smtpclient.Port = $sPort
    # Authenticate only if a user name and password are set. if (($sUsername -ne '') -band ($sPassword -ne '')) { $Credentials = new-object System.Net.networkCredential $Credentials.domain = "" $Credentials.UserName = $sUserName $Credentials.Password = $sPassword $SMTPClient.Credentials = $Credentials } # if (($sUsername -ne '') -band ($sPassword -ne '')) # Send the mail. try { $smtpclient.Send($sFrom, $sTo, $sSubject, $sMessage) } catch { $bSuccess = 0 } $bSuccess } # SendMail #################################################################################################### # Main. #################################################################################################### $bSent = SendMail 'smtp.leonardi.ind.br' '587' 'protheus@leonardi.ind.br' 'emfagundesjr@gmail.com' 'Test' 'This is a test.' 'protheus@leonardi.ind.br' 'microsiga10' if ($bSent) { "Mail sent successfully." } else { "Mail not sent." }

    Abraços esperto ter ajudado.

     

    Ref. http://www.cyprich.com/2010/07/27/sendmail-function-for-powershell/


    Edson Matias Fagundes Junior - (Nioks)
    MCP, MCTS: 2008, MCTS:MBS
    Se a resposta for valida por favor vote como útil.


    sexta-feira, 19 de agosto de 2011 20:30
  • Bom dia

     

    Como suspeitava, o problemas estava na autenticação. O SSL já estava desabilitado como o Edson sugeriu porém o problema estava com o usuário e no meu caso, foi necessário informar o domínio (@xxxxx.com.br) e definir a senha como texto seguro.

    Pelo que pude concluir, cada caso é um caso.

     

    Obrigado a todos que ajudaram.

    • Marcado como Resposta Jose Marcelo segunda-feira, 22 de agosto de 2011 10:37
    segunda-feira, 22 de agosto de 2011 10:37