Composition Setup |
---|
import.css=/download/attachments/6062824/tecnologia.css
|
...
Pagetitle |
---|
| Classe TMailMessage |
---|
| Classe TMailMessage |
---|
|
A classe TMailMessage representa uma mensagem de e-mail. Através dela é possível obter todas informações sobre a mensagem carregada e realizar diversas operações, como envio e recebimento de e-mail.
TMailMessage possui todos atributos possíveis a uma mensagem de e-mail e podemos utilizar seus métodos para inserir arquivos, documentos e outras mensagens como anexo da mensagem atual.
Hierarquia
Construtores
Inclusão de trecho |
---|
| Classe TMailMessage - Construtores |
---|
|
...
| | Classe TMailMessage - Construtores |
---|
nopanel | true |
---|
|
Propriedades
Inclusão de trecho |
---|
| Classe TMailMessage - Propriedades |
---|
|
...
| | Classe TMailMessage - Propriedades |
---|
nopanel | true |
---|
|
Métodos
Inclusão de trecho |
---|
| Classe TMailMessage - Métodos |
---|
|
...
| | Classe TMailMessage - Métodos |
---|
nopanel | true |
---|
|
Observações
- A classe TMailMessage não possui hierarquia, no entanto é relacionada diretamente com a classe TMailManager para operações de envio e recebimento de e-mail.
Exemplos
Bloco de código |
---|
| language | cpp | title | Exemplo 1 |
---|
linenumbers | true |
---|
|
---|
#include "TOTVS.CH"
user Function EMail()
Local oServer
Local oMessage
Local nNumMsg := 0
Local nTam := 0
Local nI := 0
//Cria a conexão com o server STMP ( Envio de e-mail )
oServer := TMailManager():New()
oServer:Init( "", "smtp.microsiga.com.br", "ricardo.reis", "rica4758", 0, 25 )
//seta um tempo de time out com servidor de 1min
If oServer:SetSmtpTimeOut( 60 ) != 0
Conout( "Falha ao setar o time out" )
Return .F.
EndIf
//realiza a conexão SMTP
If oServer:SmtpConnect() != 0
Conout( "Falha ao conectar" )
Return .F.
EndIf
//Apos a conexão, cria o objeto da mensagem
oMessage := TMailMessage():New()
//Limpa o objeto
oMessage:Clear()
//Popula com os dados de envio
oMessage:cFrom := "Microsiga "
oMessage:cTo := "[email protected];[email protected]"
oMessage:cCc := "[email protected]"
oMessage:cBcc := "[email protected]"
oMessage:cSubject := "Teste de Email"
oMessage:cBody := "Conteudo do e-mail"
//Adiciona um attach
If oMessage:AttachFile( "arquivo.txt" ) < 0
Conout( "Erro ao atachar o arquivo" )
Return .F.
Else
//adiciona uma tag informando que é um attach e o nome do arq
oMessage:AddAtthTag( 'Content-Disposition: attachment; filename=arquivo.txt')
EndIf
//Envia o e-mail
If oMessage:Send( oServer ) != 0
Conout( "Erro ao enviar o e-mail" )
Return .F.
EndIf
//Desconecta do servidor
If oServer:SmtpDisconnect() != 0
Conout( "Erro ao disconectar do servidor SMTP" )
Return .F.
EndIf
//Cria uma nova conexão, agora de POP
oServer := TMailManager():New()
oServer:Init( "pop3.microsiga.com.br", "", "SeunomeAntesDo@", "senhaDoEmail", 0, 110 )
If oServer:SetPopTimeOut( 60 ) != 0
Conout( "Falha ao setar o time out" )
Return .F.
EndIf
If oServer:PopConnect() != 0
Conout( "Falha ao conectar" )
Return .F.
EndIf
//Recebe o número de mensagens do servidor
oServer:GetNumMsgs( @nNumMsg )
nTam := nNumMsg
For nI := 1 To nTam
//Limpa o objeto da mensagem
oMessage:Clear()
//Recebe a mensagem do servidor
oMessage:Receive( oServer, nI )
//Escreve no server os dados do e-mail recebido
Conout( oMessage:cFrom )
Conout( oMessage:cTo )
Conout( oMessage:cCc )
Conout( oMessage:cSubject )
Conout( oMessage:cBody )
Next
//Deleta todas as mensagens do servidor
For nI := 1 To nTam
oServer:DeleteMsg( nI )
Next
//Desconecta do servidor POP
oServer:POPDisconnect()
Return .T.
|
Bloco de código |
---|
| language | cpp | title | Exemplo 2 |
---|
linenumbers | true |
---|
|
---|
//Exemplo TMailMessage com Imagem
//Este exemplo de uso da classe TMailMessage, visa o uso e explicação de dois métodos da classe:
//SetConfirmRead() e AddAttHTag().
//SetConfirmRead() tem como objetivo, mandar uma solicitação de resposta de Leitura para a pessoa
//que receber o e-mail, podendo ela optar por mandar ou não.
//AddAttHTag() tem como objetivo incluir tags no cabeçalho(header) da mensagem. Obs: este cabeçalho
//não é cabeçalho do corpo da mensagem.
//Neste exemplo da função usaremos uma tag para colocarmos a imagem no corpo do texto, após
//carregar a imagem, atribuimos um ID para ele, da seguinte forma: 'Content-ID: <ID_siga.jpg>'
//A parte em negrito significa o ID que atribuimos para a imagem, o que está entre as aspas deve
//ser seguido por padrão com o protocolo.
//Note que quando criamos o html que compõe a mensagem usamos esse ID:
//oMessage:cBody := 'Teste<br><img src='cid:ID_siga.jpg'>'
//Assim a imagem será carregada normalmente.
User Function EnvMail()
Local oMailServer := TMailManager():New()
Local oMessage := TMailMessage():New()
Local nErro := 0
oMailServer:Init( "", "smtp.microsiga.com.br", "", "", 0, 25 )
If( (nErro := oMailServer:SmtpConnect()) != 0 )
conout( "Não conectou.", oMailServer:GetErrorString( nErro ) )
Return
EndIf
oMessage:Clear()
oMessage:cFrom := "[email protected]"
//Altere
oMessage:cTo := "[email protected]"
//Altere
oMessage:cCc := ""
oMessage:cBcc := ""
oMessage:cSubject := "Teste de envio d e-mail"
oMessage:cBody := "Teste<br><img src='cid:ID_siga.jpg'>"
oMessage:MsgBodyType( "text/html" )
// Para solicitar confimação de envio
//oMessage:SetConfirmRead( .T. )
// Adiciona um anexo, nesse caso a imagem esta no root
oMessage:AttachFile( '\siga.jpg' )
// Essa tag, é a referecia para o arquivo ser mostrado no corpo, o nome declarado nela deve ser o usado no HTML
oMessage:AddAttHTag( 'Content-ID: <ID_siga.jpg>' )
nErro := oMessage:Send( oMailServer )
If( nErro != 0 )
conout( "Não enviou o e-mail.", oMailServer:GetErrorString( nErro ) )
Return
EndIf
nErro := oMailServer:SmtpDisconnect()
If( nErro != 0 )
conout( "Não desconectou.", oMailServer:GetErrorString( nErro ) )
Return
EndIf
Return
|
Abrangência
Advanced Protheus 6.09, Advanced Protheus 7.10, Microsiga Protheus 8.11, Protheus 10, TOTVS Application Server 10, ByYou Application Server
Veja também