Usuário com melhor resposta
COMO TESTAR O SUCESSO DA CONEXÃO COM O GMAIL

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
Respostas
-
Como está seu código para fazer conexão com o gmail?
Talvez dê para tratar este tipo de erro.
- Marcado como Resposta FELIX MAURICIO GASIGLIA quarta-feira, 4 de novembro de 2020 02:10
-
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
- Marcado como Resposta FELIX MAURICIO GASIGLIA quarta-feira, 4 de novembro de 2020 02:10
Todas as Respostas
-
Como está seu código para fazer conexão com o gmail?
Talvez dê para tratar este tipo de erro.
- Marcado como Resposta FELIX MAURICIO GASIGLIA quarta-feira, 4 de novembro de 2020 02:10
-
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
- Editado FELIX MAURICIO GASIGLIA terça-feira, 26 de novembro de 2019 15:37
-
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
- Marcado como Resposta FELIX MAURICIO GASIGLIA quarta-feira, 4 de novembro de 2020 02:10
-