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
- TMailMessage
Construtores
Propriedades
Métodos
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
Exemplo 1
#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 := "microsiga@microsiga.com.br;microsiga@microsiga.com.br" oMessage:cCc := "microsiga@microsiga.com.br" oMessage:cBcc := "microsiga@microsiga.com.br" 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.
Exemplo 2
//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 := "de@microsiga.com.br" //Altere oMessage:cTo := "para@microsiga.com.br" //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
2 pessoas gostam disto
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas