Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Bloco de código
languagecpp
themeEclipse
titleExemplo 1
linenumberstrue
// Este exemplo tem como objetivo principal documentar a classe TMailManager, com
// foco nas funçoes que são usadas apenas por conexão IMAP.
//-----------------------------------------------------------------------------------
// Este exemplo irá fazer basicamente manipulação dos folders de uma conta de email,
// através de uma conexão com o servidor IMAP. Ex: imap.microsiga.com.br
//-----------------------------------------------------------------------------------
#include "TOTVS.CH"
User Function tstIMAP()
  Local aStPastas := {}
  Local sFolder := "TSTIMAP"
  Local sErro := ""
  Local lRet
  Private oMailManager
  oMailManager := TMailManager():New()
  
  //uso a função init para setar os dados.
  nErro := oMailManager:Init( "imap.microsiga.com.br", "" , "seuNomeAntesDo@", "senhadoemail" )
  If nErro != 0
    sErro := oMailManager:GetErrorString( nErro )
    Conout( sErro )
    Return .F.
  EndIf
  
  //realizo uma CONEXAO IMAP
  // Necessario configurar no arquivo .ini do server
  // [MAIL]
  // Protocol=IMAP
  nErro := oMailManager:IMAPConnect()
  If nErro != 0
    sErro := oMailManager:GetErrorString( nErro )
    Conout( sErro )
    Return .F.
  EndIf
  
  //informo o server que iremos trabalhar com ID real da mensagem
  oMailManager:SetUseRealID( .T. )
  
  //tento ir para o folder TSTIMAP
  If !oMailManager:ChangeFolder( sFolder )
    //entra aqui pq o folder nao existe, entao crio ele
    //tento criar o folder no server IMAP
    If !oMailManager:CreateFolder( sFolder )
      Conout( "Erro na criação do folder" )
      lRet := .F.
    else
      //set o folder como assinado, para aparecer
      If !oMailManager:SetFolderSubscribe( sFolder, .T. )
        Conout( "Erro na assinatura do folder" )
      EndIf
    EndIf
  EndIf
  
  //pego os folders(pastas) existentes no servidor, incluido o TSTIMAP
  GetFolderList( @aStPastas )
  varinfo( "PASTAS", aStPastas )
  
  //Verificamos o folder corrente em uso
  sFolder := oMailManager:GetFolder()
  conout( "Folder Corrente" + sFolder )
  
  If !oMailManager:DeleteFolder( sFolder )
    conout( "nao foi possivel deletar a pasta" + sFolder )
  EndIf
  
  oMailManager:IMAPDisconnect()
return .T.
Static function GetFolderList( aStPastas )
  Local nI := 0, nTam := 0
  Local aTemp := {}
  Local aFolder
  aTemp := oMailManager:GetFolderList()
  nTam := Len( aTemp )
  For nI := 1 To nTam
    //crio um array temp {nome, nTotalMensagens, nMensagensNaoLidas, lAssinada}
    aFolder := {}
    aAdd( aFolder, aTemp[ nI ][1] )
    aAdd( aFolder, aTemp[ nI ][3] )
    aAdd( aFolder, aTemp[ nI ][5] )
    aAdd( aFolder, .T. )

    //adiciono no array de referencia do parametro
    aAdd( aStPastas, aFolder )
    aFolder := NIL
  Next
Return .T.
Bloco de código
languagecpp
themeEclipse
titleExemplo 2
linenumberstrue
// No exemplo abaixo , estabelecemos a conexão com um servidor SMTP , utilizando o
// comando CONNECT SMTP, obtendo o resultado da conexão , e em caso de falha, obtemos
// mais detalhes utilizando o comando GET MAIL ERROR . Caso a conexão seja realizada
// com sucesso, um e-mail de teste é enviado, tendo também seu status de execução
// recuperado e tratado convenientemente.
//-----------------------------------------------------------------------------------
#INCLUDE "Ap5Mail.ch"
User Function tstSMTP()
  Local lOk
  // Conecta com o Servidor SMTP
  CONNECT SMTP SERVER "200.246.142.66" ;
               ACCOUNT "test" PASSWORD "test1234" ;
               RESULT lOk
  If lOk
    MsgStop( "Conexão OK" )
    SEND MAIL FROM "[email protected]" ;
              TO "[email protected];[email protected]" ;
              SUBJECT "Teste de e-Mail" ;
              BODY "E-MAIL HTML de TESTE" ;
              RESULT lOk
    If lOk
      MsgStop( "Envio OK" )
    Else
      GET MAIL ERROR cSmtpError
      MsgSTop( "Erro de envio : " + cSmtpError)
    Endif
    
    // Desconecta do Servidor
    DISCONNECT SMTP SERVER
  Else
    GET MAIL ERROR cSmtpError
    MsgStop( "Erro de conexão : " + cSmtpError)
  Endif
Return


Veja também

...