none
COMO TESTAR O SUCESSO DA CONEXÃO COM O GMAIL RRS feed

  • Pergunta

  • Senhores

    Bom dia.

    As minhas rotinas de envio de email pelo gmail, conta exclusiva criada para aplicação em VBA, estão funcionando muito bem, e, antes de executar esta rotina a aplicação testa em outra rotina se há internet conectada a máquina com sucesso, também sem problemas.

    Porém, quando temos uma internet muito fraca, a rotina valida a existência de internet na máquina mas não consegue conectar ao servidor do gmail devido a internet estar muito fraca, do cliente. Neste caso não tenho proteção, a aplicação depura.

    Como fazer para testar o sucesso de conexão com o gmail? Como validar isso?

    Desde já agradeço pela ajuda,

    Felix Mauricio Gasiglia

    sexta-feira, 8 de novembro de 2019 13:24

Respostas

Todas as Respostas

  • Como está seu código para fazer conexão com o gmail?

    Talvez dê para tratar este tipo de erro.

    sexta-feira, 22 de novembro de 2019 13:57
  • Olá André

    Boa tarde.

    Bem, primeiro testo se a máquina está com conexão internet, funciona muito bem.

    Sub TesteConexaoInternet()
        Dim Ret As Long


        Ret = InternetGetConnectedStateEx(Ret, sConnType, 254, 0)
        If Ret = 1 Then

            FLAG_CONECTADO_INTERNET = "S"
        Else

            FLAG_CONECTADO_INTERNET = "N"
        End If
    End Sub

    Depois, caso tenha internet conectada, executo o código abaixo para enviar que também funciona muito bem.

    O problema que eu não sei como testar se consegui fechar a conexão com o servidor GMAIL, ou seja, pelo fato da internet estar fraca as vezes não tem sucesso.

    Rotina do envio:

          

    Function EnviaEmail_PEDIDO_SAIDA()
    'Function EnviaEmail()
    Dim iMsg, iConf, Flds

    Set iMsg = CreateObject("CDO.Message")
    Set iConf = CreateObject("CDO.Configuration")
    Set Flds = iConf.Fields

    schema = "http://schemas.microsoft.com/cdo/configuration/"
    Flds.Item(schema & "sendusing") = 2
    'Configura o smtp
    Flds.Item(schema & "smtpserver") = "smtp.gmail.com"
    'Configura a porta de envio de email
    Flds.Item(schema & "smtpserverport") = 465
    Flds.Item(schema & "smtpauthenticate") = 1
    'Configura o email do remetente
    Flds.Item(schema & "sendusername") = "sistematrovaofilmes@gmail.com"
    'Configura a senha do email remetente
    Flds.Item(schema & "sendpassword") = "senha"
    Flds.Item(schema & "smtpusessl") = 1
    Flds.Update


    With iMsg
       'Email do destinatário
       .To = EMAIL_CONTATO_SAIDA_PARA

       .CC = EMAIL_COMCOPIA_SAIDA
       'Seu email
       .From = "sistematrovaofilmes@gmail.com"
       'Título do email
       .Subject = "SAÍDA DE REMESSA DE EQUIPAMENTOS (PEDIDO: " & COD_PEDIDO_EDICAO & ")"
       'Mensagem do e-mail, você pode enviar formatado em HTML
       .HTMLBody = "Senhores," & "<br/>" & "Seguem em anexo, os dados do pedido " & COD_PEDIDO_EDICAO & " expedido da Trovão Filmes Ltda." & "<br/>" & "<br/>" & "Atenciosamente, "
       'Seu nome ou apelido
       .Sender = "Teste"
       'Nome da sua organização
       .Organization = "Aprender Excel"
       'e-mail de responder para
       .ReplyTo = "felixmauriciogasiglia@gmail.com"
       If TPDRIVE = 2 Then
       'Anexo a ser enviado na mensagem. Retire a aspa da linha abaixo e coloque o endereço do arquivo
       .AddAttachment ("D:\APLICACOES\TrovaoFilmes\Slip saida temp/" & NOME_ARQUIVO_SLIP_SAIDA & ".pdf")
       Else
       End If
       If TPDRIVE = 1 Then
       'Anexo a ser enviado na mensagem. Retire a aspa da linha abaixo e coloque o endereço do arquivo
       .AddAttachment ("C:\APP TROVAO FILMES\TrovaoFilmes\Slip saida temp/" & NOME_ARQUIVO_SLIP_SAIDA & ".pdf")
       Else
       End If

       Set .Configuration = iConf
       .Send
    End With
    'página para possibilitar aplicativos não seguros acessar a conta do gmail
    'https://myaccount.google.com/lesssecureapps?pli=1

    Set iMsg = Nothing
    Set iConf = Nothing
    Set Flds = Nothing
    End Function

                                 
    terça-feira, 26 de novembro de 2019 15:35
  • Como o CDO não tem um método para isto eu chamaria um telnet para testar.

    https://docs.microsoft.com/pt-br/exchange/mail-flow/test-smtp-with-telnet?view=exchserver-2019

    Assim você teria um teste quase 100% certo se o e-mail será enviado ou não.

    Em muito casos, o CDO dispara uma exceção quando o e-mail não é enviado. Você pode também tratar isto para verificar sucesso ou não.

    http://www.vbforums.com/showthread.php?520679-Sending-Emails-with-CDO-how-to-catch-problem-emails

    segunda-feira, 2 de dezembro de 2019 11:58
  • Muito obrigado.

    Show de bola.

    Abs,

    quarta-feira, 4 de novembro de 2020 02:12