Define o token OAuth2 que será utilizado no envio e recebimento de e-mails.
Sintaxe
SetOAuthToken( < cToken > )
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
---|
cToken | caractere | Indica o token OAuth2 que será utilizado no envio de e-mails. | X |
|
Observações
- O método deve ser chamado após chamar o método Init e antes de chamar os métodos de connect (SMTPConnect, POPConnect, ou IMAPConnect).
- Esse método impacta o recebimento e o envio de emails.
- O token (Access Token) deve ser gerado através de ferramenta externa à classe.
- Se a conexão utilizada for usando o protocolo MAPI, o método não tem efeito.
Exemplos
user function tstgmail()
Local cServer := "imap.gmail.com"
Local nServerPort := 993
// Local cServer := "pop.gmail.com"
// Local nServerPort := 995
Local cSMTP := "smtp.gmail.com"
Local nSMTPPort := 587
Local cUser := "[email protected]" //Usuário com @gmail.com
Local cToken := "access_token"
Local cPass := "password"
Local oSrv := TMailManager():New()
Local oMsg := TMailMessage():New()
Local nTimeout := 60
Local nMessages := 0
Local xRet
oSrv:SetUseSSL( .T. )
oSrv:SetUseTLS( .T. )
xRet := oSrv:Init( cServer, cSMTP, cUser, cPass, nServerPort, nSMTPPort )
if xRet <> 0
conout( "Erro Init oSrv: " + oSrv:GetErrorString( xRet ) )
return
endif
oSrv:SetOAuthToken( cToken )
xRet := oSrv:SMTPConnect()
if xRet <> 0
conout( "Erro SMTPConnect oSrv: " + oSrv:GetErrorString( xRet ) )
return
endif
xRet := oSrv:SetSMTPTimeout( nTimeout )
if xRet <> 0
conout( "Erro SetSMTPTimeout oSrv: " + oSrv:GetErrorString( xRet ) )
return
endif
xRet := oSrv:SMTPAuth( cUser, cPass )
if xRet <> 0
conout( "Erro SMTPAuth oSrv: " + oSrv:GetErrorString( xRet ) )
return
endif
oMsg:Clear()
oMsg:cDate := cValToChar( Date() )
oMsg:cTo := "[email protected]"
oMsg:cSubject := "Test subject"
oMsg:MsgBodyType( "text/plain" )
oMsg:MsgBodyEncode( 1 )
oMsg:cBody := "Test"
xRet := oMsg:Send( oSrv )
if xRet <> 0
conout( "Erro Send oSrv: " + oSrv:GetErrorString( xRet ) )
return
endif
conout( "Email enviado" )
xRet := oSrv:SMTPDisconnect()
if xRet <> 0
conout( "Erro SmtpDisconnect: " + oSrv:GetErrorString( xRet ) )
return
endif
conout( "Disconectado SMTP" )
oMsg:Clear()
// xRet := oSrv:POPConnect()
// if xRet <> 0
// conout( "Erro POPConnect oSrv: " + oSrv:GetErrorString( xRet ) )
// return
// endif
xRet := oSrv:IMAPConnect()
if xRet <> 0
conout( "Erro IMAPConnect oSrv: " + oSrv:GetErrorString( xRet ) )
return
endif
xRet := oSrv:SetPOPTimeout( nTimeout )
if xRet <> 0
conout( "Erro SetPOPTimeout oSrv: " + oSrv:GetErrorString( xRet ) )
return
endif
oSrv:GetNumMsgs( @nMessages )
if nMessages > 0
conout( "GetNumMsgs: " + cValToChar( nMessages ) )
xRet := oMsg:Receive( oSrv, 1 )
if xRet <> 0
conout( "Erro Receive oSrv: " + oSrv:GetErrorString( xRet ) )
else
conout( " Date: " + oMsg:cDate )
conout( " From: " + oMsg:cFrom )
conout( " To: " + oMsg:cTo )
conout( "Subject: " + oMsg:cSubject )
// conout( " Body: " + oMsg:cBody )
endif
endif
// xRet := oSrv:POPDisconnect()
// if xRet <> 0
// conout( "Erro POPDisconnect oSrv: " + oSrv:GetErrorString( xRet ) )
// return
// endif
xRet := oSrv:IMAPDisconnect()
if xRet <> 0
conout( "Erro IMAPDisconnect oSrv: " + oSrv:GetErrorString( xRet ) )
return
endif
conout( "Disconnect Sucesso!!!" )
return
Abrangência
Disponível a partir da versão 20.3.0.14.
Veja também