×
Linguagem de Programação ADVPL
Perguntas Envio de e-mail
- Jafreal
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 137
- Obrigados Recebidos: 0
10 anos 9 meses atrás #20690
por Jafreal
Envio de e-mail foi criado por Jafreal
Bom dia
Srs tenho o seguinte comando
Connect SMTP SERVER _cSerMail ACCOUNT _cDe PASSWORD _cSenha Result _lConectou.
Debuguei o programa e nessa linha o LConectou me traz .t., ou seja, ele confirma que conectou, mas ao tentar autenticar com essa função
lAutOk := MailAuth(_cDe,_cSenha) ele não autentica. O que pode ser?
Srs tenho o seguinte comando
Connect SMTP SERVER _cSerMail ACCOUNT _cDe PASSWORD _cSenha Result _lConectou.
Debuguei o programa e nessa linha o LConectou me traz .t., ou seja, ele confirma que conectou, mas ao tentar autenticar com essa função
lAutOk := MailAuth(_cDe,_cSenha) ele não autentica. O que pode ser?
Por favor Acessar ou Registrar para participar da conversa.
- THALESCOTR
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 124
- Obrigados Recebidos: 0
10 anos 9 meses atrás #20708
por THALESCOTR
Respondido por THALESCOTR no tópico Envio de e-mail
Boa tarde Aguiar,
tive um problema de autenticação no gmail, solucionei com isso, vê se te ajuda:
lResult := MailAuth(_cMail,_cSenha)
If !lResult
nA := At("@",_cMail)
_Mail2 := If(nA>0,Subs(_cMail,1,nA-1),_cMail)
lResult := MailAuth(Alltrim(_Mail2),_cSenha)
Endif
Att
Thales
tive um problema de autenticação no gmail, solucionei com isso, vê se te ajuda:
lResult := MailAuth(_cMail,_cSenha)
If !lResult
nA := At("@",_cMail)
_Mail2 := If(nA>0,Subs(_cMail,1,nA-1),_cMail)
lResult := MailAuth(Alltrim(_Mail2),_cSenha)
Endif
Att
Thales
Por favor Acessar ou Registrar para participar da conversa.
- Jafreal
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 137
- Obrigados Recebidos: 0
- henry.charriere
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 492
- Obrigados Recebidos: 0
10 anos 9 meses atrás #20715
por henry.charriere
Respondido por henry.charriere no tópico Envio de e-mail
#include "protheus.ch"
#include "rwmake.ch"
#include "ap5mail.ch"
/*
* Progrma: EnvMail Autor: Eduardo Pessoa *
* Descrição: Rotina para envio de emails. *
* Data: 06/12/2007 *
* Parametros: EMail Origem, EMail Destino, *
* Subject, Body, Anexo, .T., Bcc *
*/
User Function ENVMAIL(_pcOrigem,_pcDestino,_pcSubject,_pcBody,_pcArquivo,_plAutomatico,_pcBcc)
// Variaveis da função
Private _nTentativas := 0
Private _cSMTPServer := GetMV("MV_RELSERV")
Private _cAccount := GetMV("MV_RELACNT")
Private _cPassword := GetMV("MV_RELPSW") //"1QwertY7"
Private _lEnviado := .F.
Private _cUsuario := Upper(AllTrim(cUserName))
// Validação dos campos do email
If _pcBcc == NIL
_pcBcc := ""
EndIf
_pcBcc := StrTran(_pcBcc," ","")
If _pcOrigem == NIL
_pcOrigem := GetMV("MV_RELACNT")
EndIf
_pcOrigem := StrTran(_pcOrigem," ","")
If _pcDestino == NIL
_pcDestino := "Este endereço de email está sendo protegido de spambots. Você precisa do JavaScript ativado para vê-lo."
EndIf
_pcDestino := StrTran(_pcDestino," ","")
If _pcSubject == NIL
_pcSubject := "Sem Subject (ENVMAIL)"
EndIf
If _pcBody == NIL
_pcBody := "Sem Body (ENVMAIL)"
EndIf
If _pcArquivo == NIL
_pcArquivo := ""
EndIf
For _nAux := 1 To 10
_pcOrigem := StrTran(_pcOrigem," ;","")
_pcOrigem := StrTran(_pcOrigem,"; ","")
Next
If _plAutomatico == NIL
_plAutomatico := .F.
EndIf
// Executa a função, mostrando a tela de envio (.T.) ou não (.F.)
If !_plAutomatico
Processa({||EnviaEmail(_pcOrigem,_pcDestino,_pcSubject,_pcBody,_pcArquivo,_plAutomatico,_pcBcc)},"Enviando Email(s)...")
Else
EnviaEmail(_pcOrigem,_pcDestino,_pcSubject,_pcBody,_pcArquivo,_plAutomatico,_pcBcc)
EndIf
If !_plAutomatico
If !_lEnviado
MsgStop("Atenção: Erro no envio de Email!!!")
EndIf
Else
ConOut("Atenção: Erro no envio de Email!")
Endif
Return _lEnviado
/*
***********************************************
* Progrma: EnviaEmail Autor: Eduardo Pessoa *
* Descrição: Subrotina para envio de email. *
* Data: 06/12/2007 *
* Parametros: EMail Origem, EMail Destino, *
* Subject, Body, Anexo, .T., Bcc *
***********************************************
*/
Static Function EnviaEmail(_pcOrigem,_pcDestino,_pcSubject,_pcBody,_pcArquivo,_plAutomatico,_pcBcc)
// Veriaveis da função
Local _nTentMax := 50 // Tentativas máximas
Local _nSecMax := 30 // Segundos máximos
Local _cTime := (Val(Substr(Time(),1,2))*60*60)+(Val(Substr(Time(),4,2))*60)+Val(Substr(Time(),7,2))
Local _nAuxTime := 0
Local lAutentica := GetMV("MV_RELAUTH")
// O que ocorrer primeiro (segundos ou tentativas), ele para.
_cTime += _nSecMax
If !_plAutomatico
ProcRegua(_nTentMax)
EndIf
// Exibe mensagem no console/Log
ConOut("ENVMAIL=> ***** Envio de Email ***** "+AllTrim("DE:"+_pcOrigem)+"*"+AllTrim("P/:"+_pcDestino)+"*"+AllTrim("S:"+_pcSubject)+"*"+AllTrim("A:"+_pcArquivo))
For _nTentativas := 1 To _nTentMax
If !_plAutomatico
IncProc("Tentativa "+AllTrim(Str(_nTentativas)))
EndIf
ConOut("ENVMAIL=> ***** Tentativa "+AllTrim(Str(_nTentativas))+" ***** "+AllTrim("DE:"+_pcOrigem)+"*"+AllTrim("P/:"+_pcDestino)+"*"+AllTrim("S:"+_pcSubject)+"*"+AllTrim("A:"+_pcArquivo))
CONNECT SMTP SERVER _cSMTPServer ACCOUNT _cAccount PASSWORD _cPassword RESULT _lEnviado
If _lEnviado
// Verifica se o E-mail necessita de Autenticacao
If lAutentica
_lEnviado := MailAuth(_cAccount,_cPassword)
Else
_lEnviado := .T.
Endif
If Empty(_pcBcc)
If Empty(_pcArquivo)
SEND MAIL FROM _pcOrigem TO _pcDestino SUBJECT _pcSubject BODY _pcBody FORMAT TEXT RESULT _lEnviado
Else
SEND MAIL FROM _pcOrigem TO _pcDestino SUBJECT _pcSubject BODY _pcBody ATTACHMENT _pcArquivo FORMAT TEXT RESULT _lEnviado
EndIf
Else
If Empty(_pcArquivo)
SEND MAIL FROM _pcOrigem TO _pcDestino BCC _pcBcc SUBJECT _pcSubject BODY _pcBody FORMAT TEXT RESULT _lEnviado
Else
SEND MAIL FROM _pcOrigem TO _pcDestino BCC _pcBcc SUBJECT _pcSubject BODY _pcBody ATTACHMENT _pcArquivo FORMAT TEXT RESULT _lEnviado
EndIf
EndIf
DISCONNECT SMTP SERVER
EndIf
If _lEnviado .Or. _cTime <= (Val(Substr(Time(),1,2))*60*60)+(Val(Substr(Time(),4,2))*60)+Val(Substr(Time(),7,2))
_nTentativas := _nTentMax
EndIf
Next
ConOut("ENVMAIL=> ***** Resultado de Envio "+IIf(_lEnviado,"T","F")+" / "+AllTrim(Str(_nTentativas))+" ***** "+AllTrim("DE:"+_pcOrigem)+"*"+AllTrim("P/:"+_pcDestino)+"*"+AllTrim("S:"+_pcSubject)+"*"+AllTrim("A:"+_pcArquivo))
Return
#include "rwmake.ch"
#include "ap5mail.ch"
/*
* Progrma: EnvMail Autor: Eduardo Pessoa *
* Descrição: Rotina para envio de emails. *
* Data: 06/12/2007 *
* Parametros: EMail Origem, EMail Destino, *
* Subject, Body, Anexo, .T., Bcc *
*/
User Function ENVMAIL(_pcOrigem,_pcDestino,_pcSubject,_pcBody,_pcArquivo,_plAutomatico,_pcBcc)
// Variaveis da função
Private _nTentativas := 0
Private _cSMTPServer := GetMV("MV_RELSERV")
Private _cAccount := GetMV("MV_RELACNT")
Private _cPassword := GetMV("MV_RELPSW") //"1QwertY7"
Private _lEnviado := .F.
Private _cUsuario := Upper(AllTrim(cUserName))
// Validação dos campos do email
If _pcBcc == NIL
_pcBcc := ""
EndIf
_pcBcc := StrTran(_pcBcc," ","")
If _pcOrigem == NIL
_pcOrigem := GetMV("MV_RELACNT")
EndIf
_pcOrigem := StrTran(_pcOrigem," ","")
If _pcDestino == NIL
_pcDestino := "Este endereço de email está sendo protegido de spambots. Você precisa do JavaScript ativado para vê-lo."
EndIf
_pcDestino := StrTran(_pcDestino," ","")
If _pcSubject == NIL
_pcSubject := "Sem Subject (ENVMAIL)"
EndIf
If _pcBody == NIL
_pcBody := "Sem Body (ENVMAIL)"
EndIf
If _pcArquivo == NIL
_pcArquivo := ""
EndIf
For _nAux := 1 To 10
_pcOrigem := StrTran(_pcOrigem," ;","")
_pcOrigem := StrTran(_pcOrigem,"; ","")
Next
If _plAutomatico == NIL
_plAutomatico := .F.
EndIf
// Executa a função, mostrando a tela de envio (.T.) ou não (.F.)
If !_plAutomatico
Processa({||EnviaEmail(_pcOrigem,_pcDestino,_pcSubject,_pcBody,_pcArquivo,_plAutomatico,_pcBcc)},"Enviando Email(s)...")
Else
EnviaEmail(_pcOrigem,_pcDestino,_pcSubject,_pcBody,_pcArquivo,_plAutomatico,_pcBcc)
EndIf
If !_plAutomatico
If !_lEnviado
MsgStop("Atenção: Erro no envio de Email!!!")
EndIf
Else
ConOut("Atenção: Erro no envio de Email!")
Endif
Return _lEnviado
/*
***********************************************
* Progrma: EnviaEmail Autor: Eduardo Pessoa *
* Descrição: Subrotina para envio de email. *
* Data: 06/12/2007 *
* Parametros: EMail Origem, EMail Destino, *
* Subject, Body, Anexo, .T., Bcc *
***********************************************
*/
Static Function EnviaEmail(_pcOrigem,_pcDestino,_pcSubject,_pcBody,_pcArquivo,_plAutomatico,_pcBcc)
// Veriaveis da função
Local _nTentMax := 50 // Tentativas máximas
Local _nSecMax := 30 // Segundos máximos
Local _cTime := (Val(Substr(Time(),1,2))*60*60)+(Val(Substr(Time(),4,2))*60)+Val(Substr(Time(),7,2))
Local _nAuxTime := 0
Local lAutentica := GetMV("MV_RELAUTH")
// O que ocorrer primeiro (segundos ou tentativas), ele para.
_cTime += _nSecMax
If !_plAutomatico
ProcRegua(_nTentMax)
EndIf
// Exibe mensagem no console/Log
ConOut("ENVMAIL=> ***** Envio de Email ***** "+AllTrim("DE:"+_pcOrigem)+"*"+AllTrim("P/:"+_pcDestino)+"*"+AllTrim("S:"+_pcSubject)+"*"+AllTrim("A:"+_pcArquivo))
For _nTentativas := 1 To _nTentMax
If !_plAutomatico
IncProc("Tentativa "+AllTrim(Str(_nTentativas)))
EndIf
ConOut("ENVMAIL=> ***** Tentativa "+AllTrim(Str(_nTentativas))+" ***** "+AllTrim("DE:"+_pcOrigem)+"*"+AllTrim("P/:"+_pcDestino)+"*"+AllTrim("S:"+_pcSubject)+"*"+AllTrim("A:"+_pcArquivo))
CONNECT SMTP SERVER _cSMTPServer ACCOUNT _cAccount PASSWORD _cPassword RESULT _lEnviado
If _lEnviado
// Verifica se o E-mail necessita de Autenticacao
If lAutentica
_lEnviado := MailAuth(_cAccount,_cPassword)
Else
_lEnviado := .T.
Endif
If Empty(_pcBcc)
If Empty(_pcArquivo)
SEND MAIL FROM _pcOrigem TO _pcDestino SUBJECT _pcSubject BODY _pcBody FORMAT TEXT RESULT _lEnviado
Else
SEND MAIL FROM _pcOrigem TO _pcDestino SUBJECT _pcSubject BODY _pcBody ATTACHMENT _pcArquivo FORMAT TEXT RESULT _lEnviado
EndIf
Else
If Empty(_pcArquivo)
SEND MAIL FROM _pcOrigem TO _pcDestino BCC _pcBcc SUBJECT _pcSubject BODY _pcBody FORMAT TEXT RESULT _lEnviado
Else
SEND MAIL FROM _pcOrigem TO _pcDestino BCC _pcBcc SUBJECT _pcSubject BODY _pcBody ATTACHMENT _pcArquivo FORMAT TEXT RESULT _lEnviado
EndIf
EndIf
DISCONNECT SMTP SERVER
EndIf
If _lEnviado .Or. _cTime <= (Val(Substr(Time(),1,2))*60*60)+(Val(Substr(Time(),4,2))*60)+Val(Substr(Time(),7,2))
_nTentativas := _nTentMax
EndIf
Next
ConOut("ENVMAIL=> ***** Resultado de Envio "+IIf(_lEnviado,"T","F")+" / "+AllTrim(Str(_nTentativas))+" ***** "+AllTrim("DE:"+_pcOrigem)+"*"+AllTrim("P/:"+_pcDestino)+"*"+AllTrim("S:"+_pcSubject)+"*"+AllTrim("A:"+_pcArquivo))
Return
Por favor Acessar ou Registrar para participar da conversa.
Tempo para a criação da página:0.116 segundos