Histórico da Página
...
- O suporte ao protocolo SMTPS (SSL e/ou TLS) foi implementado a partir da build 7.00.090818P.
- O suporte aos protocolos POPS e IMAPS foram implementados a partir da build 7.00.101202A.
- O uso desta classe deve ser observada em conjunto com a utilização dos métodos "SetUseSSL" e/ou "SetUseTLS" e das chaves pertencentes à seção "Mail" do Appserver.ini. O comportamento de seus métodos é fortemente influenciado pelas múltiplas combinações destes elementos. Os protocolos e versões de protocolos usados por cada porta disponibilizada pelo servidor de e-mail a ser acessado, devem ser checados para o correto uso das combinações dos elementos aqui citados, sob pena do não funcionamento do envio/recepção de e-mails. Deve-se observar também, se no servidor de e-mail a ser usado - seja para autenticação, seja para envio - existe algum tipo de restrição de segurança que precise ser configurado para uso automatizado (por exemplo, configurações que envolvam "CAPTCHA" - "Completely Automated Public Turing test to tell Computers and Humans Apart" , dentre outros flags de segurança que inibam a autenticação, conexão ou envio).
- Para uso desta classe com o GMAIL favor consultar a documentação: Application Server - Uso de e-mail com GMail
Exemplos
O código a seguir demonstra como utilizar a classe TMailManager:
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
// 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 | ||||||||
| ||||||||
// 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 "eu@aqui.com.br" ; 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
...
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas