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 email.
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.
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
O código a seguir demonstra como utilizar a classe tMailMessage:
#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 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 email, 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. #include "TOTVS.CH" 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
tMailManager