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 := "[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.
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 := "[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
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas