- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Erro 54 na conexão SMTP no envio de email.
×
Linguagem de Programação ADVPL
Perguntas Erro 54 na conexão SMTP no envio de email.
- renatosever
- Autor do Tópico
- Desconectado
- Membro Júnior
Menos
Mais
- Postagens: 23
- Obrigados Recebidos: 0
9 anos 9 meses atrás #27004
por renatosever
Erro 54 na conexão SMTP no envio de email. foi criado por renatosever
Boa tarde, Estou tentando disparar email pela rotina abaixo, mas da erro 54 na conexao smtp.
O email que estou tentando configurar é gmail. será que alguem pode ajudar?
Segue código abaixo:
User Function EnvMail(_cSubject, _cBody, _cMailTo, _cCC, _cAnexo, _cConta, _cSenha)
Local _cMailS := GetMv("MV_XMLSMTP") //BUSCA CONFIGURAÇÃO SMTP EMAIL DE DISPARO XML
Local _cAccount := GetMV("MV_XMLMAIL") //BUSCA CONFIGURAÇÃO DE EMAIL DE DISPARO XML
Local _cPass := GetMV("MV_XMLPASS") //BUSCA CONFIGURAÇÃO SENHA DE EMAIL DE DISPARO XML
Local _nPort := Val(GetMV("MV_XMLPORT")) //BUSCA CONFIGURAÇÃO DA PORTA DE EMAIL DE DISPARO XML
Local lAuth := GetMv("MV_XMLAUTH",,.F.) //BUSCA CONFIGURAÇÃO DE EMAIL DE DISPARO XML SE USA AUTENTICAÇÃO .T. ou .F.
Local oServer := nil
Local oMessage := nil
Local nRet := 0
Local nTimeOut := 20
Local cUser := _cAccount
// Local lAuth := .T.
Local cCorpoM := ""
Local cAssunto := ""
// Local aFiles := Directory(_cAnexo)
//Local aFiles := Directory(cPath + Alltrim("*.*"))
Local nCount := 0
cAssunto := AllTrim(_cSubject)
oServer := TMailManager():New()
// Usa SSL na conexao
oServer:setUseSSL(.F.)//GetMv("MV_RELAUTH",,.F.))
oServer:Init( "", _cMailS, _cAccount, _cPass, 0, _nPort)
if (nTimeout <= 0)
conout("[TIMEOUT] DISABLE")
else
conout("[TIMEOUT] ENABLE()")
nRet := oServer:SetSmtpTimeOut( 120 )
If nRet != 0
conout("[TIMEOUT] Fail to set")
conout("[TIMEOUT][ERROR] " + str(nRet,6) , oServer:GetErrorString(nRet))
Return .F.
EndIf
Endif
Conout("Configuração da Conta Email")
Conout("Servidor de Email: " + _cMailS)
Conout("Conta de Email: " + _cAccount)
Conout("Senha Email: " + _cPass)
Conout("Porta comunicação: " + cValToChar(_nPort))
Conout("Autenticação? .T.(sim) .F.(nao): " + cValToChar(lAuth))
Conout( "[SMTPCONNECT] connecting ..." )
nRet := oServer:SmtpConnect()
If nRet != 0
conout("[SMTPCONNECT] Falha ao conectar" )
conout("[SMTPCONNECT][ERROR] " + str(nRet,6) , oServer:GetErrorString(nRet))
Return .F.
Else
conout( "[SMTPCONNECT] Sucesso ao conectar" )
EndIf
If lAuth
conout("[AUTH] ENABLE")
conout("[AUTH] TRY with ACCOUNT() and PASS()")
// try with account and pass
nRet := oServer:SMTPAuth(_cAccount, _cPass)
If nRet != 0
conout("[AUTH] FAIL TRY with ACCOUNT() and PASS()")
conout("[AUTH][ERROR] " + str(nRet,6) , oServer:GetErrorString(nRet))
conout("[AUTH] TRY with USER() and PASS()")
// try with user and pass
nRet := oServer:SMTPAuth(cUser, _cPass)
If nRet != 0
conout("[AUTH] FAIL TRY with USER() and PASS()")
conout("[AUTH][ERROR] " + str(nRet,6), oServer:GetErrorString(nRet))
Return .F.
else
conout("[AUTH] SUCEEDED TRY with USER() and PASS()")
Endif
else
conout("[AUTH] SUCEEDED TRY with ACCOUNT and PASS")
Endif
Else
conout("[AUTH] DISABLE")
Endif
conout("[MESSAGE] Criando mail message")
oMessage := TMailMessage():New()
oMessage:Clear()
oMessage:cFrom := _cAccount
oMessage:cTo := _cMailTo
oMessage:cCc := ""
oMessage:cBcc := ""
oMessage:cSubject := cAssunto+ " " + dtoc(date()) + " " + time()
cCorpoM := ''
cCorpoM += "<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' ' www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd '> "
cCorpoM += "<html xmlns=' www.w3.org/1999/xhtml '> "
cCorpoM += "<head> "
cCorpoM += "<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1' /> "
cCorpoM += "<style type='text/css'> "
cCorpoM += "<!-- "
cCorpoM += "body,td,th { "
cCorpoM += " font-family: Arial, Helvetica, sans-serif; "
cCorpoM += " font-size: 12pt; "
cCorpoM += "} "
cCorpoM += "--> "
cCorpoM += "</style></head> "
cCorpoM += "<body> "
cCorpoM += "<br>"
cCorpoM += AllTrim(_cBody)
cCorpoM += "<br>"
cCorpoM += "<br>"
cCorpoM += "<br>"
cCorpoM += "<br>"
cCorpoM += "Este email é disparado automaticamente após a importação do XML - Favor não Responder."
cCorpoM += "<br>"
cCorpoM += "________________________________________________________________________"
cCorpoM += "<br>"
cCorpoM += "Desenvolvido por departamento TI."
cCorpoM += "</body> "
cCorpoM += "</html>"
//oMessage:MsgBodyType( "text/html" )
oMessage:cBody := cCorpoM
conout("[SEND] Sending ...")
nRet := oMessage:Send( oServer )
If nRet != 0
conout("[SEND] Fail to send message" )
conout("[SEND][ERROR] " + str(nRet,6) , oServer:GetErrorString(nRet))
else
conout( "[SEND] Success to send message" )
EndIf
conout("[DISCONNECT] smtp disconnecting ... ")
nRet := oServer:SmtpDisconnect()
If nRet != 0
conout("[DISCONNECT] Fail smtp disconnecting ... ")
conout("[DISCONNECT][ERROR] " + str(nRet,6) , oServer:GetErrorString(nRet))
else
conout("[DISCONNECT] Success smtp disconnecting ... ")
EndIf
MsgInfo("Email enviado com sucesso para: " + AllTrim(_cMailTo), " -")
Return
O email que estou tentando configurar é gmail. será que alguem pode ajudar?
Segue código abaixo:
User Function EnvMail(_cSubject, _cBody, _cMailTo, _cCC, _cAnexo, _cConta, _cSenha)
Local _cMailS := GetMv("MV_XMLSMTP") //BUSCA CONFIGURAÇÃO SMTP EMAIL DE DISPARO XML
Local _cAccount := GetMV("MV_XMLMAIL") //BUSCA CONFIGURAÇÃO DE EMAIL DE DISPARO XML
Local _cPass := GetMV("MV_XMLPASS") //BUSCA CONFIGURAÇÃO SENHA DE EMAIL DE DISPARO XML
Local _nPort := Val(GetMV("MV_XMLPORT")) //BUSCA CONFIGURAÇÃO DA PORTA DE EMAIL DE DISPARO XML
Local lAuth := GetMv("MV_XMLAUTH",,.F.) //BUSCA CONFIGURAÇÃO DE EMAIL DE DISPARO XML SE USA AUTENTICAÇÃO .T. ou .F.
Local oServer := nil
Local oMessage := nil
Local nRet := 0
Local nTimeOut := 20
Local cUser := _cAccount
// Local lAuth := .T.
Local cCorpoM := ""
Local cAssunto := ""
// Local aFiles := Directory(_cAnexo)
//Local aFiles := Directory(cPath + Alltrim("*.*"))
Local nCount := 0
cAssunto := AllTrim(_cSubject)
oServer := TMailManager():New()
// Usa SSL na conexao
oServer:setUseSSL(.F.)//GetMv("MV_RELAUTH",,.F.))
oServer:Init( "", _cMailS, _cAccount, _cPass, 0, _nPort)
if (nTimeout <= 0)
conout("[TIMEOUT] DISABLE")
else
conout("[TIMEOUT] ENABLE()")
nRet := oServer:SetSmtpTimeOut( 120 )
If nRet != 0
conout("[TIMEOUT] Fail to set")
conout("[TIMEOUT][ERROR] " + str(nRet,6) , oServer:GetErrorString(nRet))
Return .F.
EndIf
Endif
Conout("Configuração da Conta Email")
Conout("Servidor de Email: " + _cMailS)
Conout("Conta de Email: " + _cAccount)
Conout("Senha Email: " + _cPass)
Conout("Porta comunicação: " + cValToChar(_nPort))
Conout("Autenticação? .T.(sim) .F.(nao): " + cValToChar(lAuth))
Conout( "[SMTPCONNECT] connecting ..." )
nRet := oServer:SmtpConnect()
If nRet != 0
conout("[SMTPCONNECT] Falha ao conectar" )
conout("[SMTPCONNECT][ERROR] " + str(nRet,6) , oServer:GetErrorString(nRet))
Return .F.
Else
conout( "[SMTPCONNECT] Sucesso ao conectar" )
EndIf
If lAuth
conout("[AUTH] ENABLE")
conout("[AUTH] TRY with ACCOUNT() and PASS()")
// try with account and pass
nRet := oServer:SMTPAuth(_cAccount, _cPass)
If nRet != 0
conout("[AUTH] FAIL TRY with ACCOUNT() and PASS()")
conout("[AUTH][ERROR] " + str(nRet,6) , oServer:GetErrorString(nRet))
conout("[AUTH] TRY with USER() and PASS()")
// try with user and pass
nRet := oServer:SMTPAuth(cUser, _cPass)
If nRet != 0
conout("[AUTH] FAIL TRY with USER() and PASS()")
conout("[AUTH][ERROR] " + str(nRet,6), oServer:GetErrorString(nRet))
Return .F.
else
conout("[AUTH] SUCEEDED TRY with USER() and PASS()")
Endif
else
conout("[AUTH] SUCEEDED TRY with ACCOUNT and PASS")
Endif
Else
conout("[AUTH] DISABLE")
Endif
conout("[MESSAGE] Criando mail message")
oMessage := TMailMessage():New()
oMessage:Clear()
oMessage:cFrom := _cAccount
oMessage:cTo := _cMailTo
oMessage:cCc := ""
oMessage:cBcc := ""
oMessage:cSubject := cAssunto+ " " + dtoc(date()) + " " + time()
cCorpoM := ''
cCorpoM += "<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' ' www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd '> "
cCorpoM += "<html xmlns=' www.w3.org/1999/xhtml '> "
cCorpoM += "<head> "
cCorpoM += "<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1' /> "
cCorpoM += "<style type='text/css'> "
cCorpoM += "<!-- "
cCorpoM += "body,td,th { "
cCorpoM += " font-family: Arial, Helvetica, sans-serif; "
cCorpoM += " font-size: 12pt; "
cCorpoM += "} "
cCorpoM += "--> "
cCorpoM += "</style></head> "
cCorpoM += "<body> "
cCorpoM += "<br>"
cCorpoM += AllTrim(_cBody)
cCorpoM += "<br>"
cCorpoM += "<br>"
cCorpoM += "<br>"
cCorpoM += "<br>"
cCorpoM += "Este email é disparado automaticamente após a importação do XML - Favor não Responder."
cCorpoM += "<br>"
cCorpoM += "________________________________________________________________________"
cCorpoM += "<br>"
cCorpoM += "Desenvolvido por departamento TI."
cCorpoM += "</body> "
cCorpoM += "</html>"
//oMessage:MsgBodyType( "text/html" )
oMessage:cBody := cCorpoM
conout("[SEND] Sending ...")
nRet := oMessage:Send( oServer )
If nRet != 0
conout("[SEND] Fail to send message" )
conout("[SEND][ERROR] " + str(nRet,6) , oServer:GetErrorString(nRet))
else
conout( "[SEND] Success to send message" )
EndIf
conout("[DISCONNECT] smtp disconnecting ... ")
nRet := oServer:SmtpDisconnect()
If nRet != 0
conout("[DISCONNECT] Fail smtp disconnecting ... ")
conout("[DISCONNECT][ERROR] " + str(nRet,6) , oServer:GetErrorString(nRet))
else
conout("[DISCONNECT] Success smtp disconnecting ... ")
EndIf
MsgInfo("Email enviado com sucesso para: " + AllTrim(_cMailTo), " -")
Return
Por favor Acessar ou Registrar para participar da conversa.
- Jafreal
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 137
- Obrigados Recebidos: 0
9 anos 9 meses atrás #27021
por Jafreal
Respondido por Jafreal no tópico Erro 54 na conexão SMTP no envio de email.
Boa tarde
Tive esse mesmo problema. Faça o seguinte veja o teu servidor de aplicação, pois o erro é lá ele não deixa vc "sair". Eu revi as configurações da rede do firewall.
Tive esse mesmo problema. Faça o seguinte veja o teu servidor de aplicação, pois o erro é lá ele não deixa vc "sair". Eu revi as configurações da rede do firewall.
Por favor Acessar ou Registrar para participar da conversa.
- renatosever
- Autor do Tópico
- Desconectado
- Membro Júnior
Menos
Mais
- Postagens: 23
- Obrigados Recebidos: 0
9 anos 9 meses atrás #27030
por renatosever
Respondido por renatosever no tópico Erro 54 na conexão SMTP no envio de email.
Obrigado Aguiar, mas não é isto, desativei o firewall e coloquei o mesmo email que usa pra transmitir NFe.
Mesmo assim não deu.
Grato
Mesmo assim não deu.
Grato
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Erro 54 na conexão SMTP no envio de email.
Tempo para a criação da página:0.114 segundos