Árvore de páginas

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

  • Sem rótulos