Criando e Salvando Arquivos do Outlook
Aspose.Email oferece suporte à criação de arquivos Outlook message (MSG). Este artigo explica como:
- Criar e Salvar Mensagens do Outlook
- Criar Arquivos MSG com Anexos
- Criar Arquivos MSG com Corpo RTF
- Salvar Mensagem em Status de Rascunho
Criar e salvar mensagens do Outlook
O MailMessage classe tem o Save() método que pode salvar arquivos Outlook MSG em disco ou fluxo. Os trechos de código abaixo criam uma instância da MailMessage classe, defina propriedades como from, to, subject e body. O Save() método aceita o nome do arquivo como argumento. Além disso, as Mensagens Outlook podem ser criadas com um corpo RTF comprimido usando o MapiConversionOptions.
- Crie uma nova instância da MailMessage classe e define as propriedades From, To, Subject e Body.
- Chame o MapiMessage classe FromMailMessage método que aceita o objeto da MailMessage tipo. O FromMailMessage método converte o MailMessage em um MapiMessage (MSG).
- Chame o MapiMessage.Save() método para salvar o arquivo MSG.
Escreva o código a seguir no evento de clique do controle de botão da aplicação Windows.
Criar Arquivos MSG com Anexos
No exemplo acima, criamos um arquivo MSG simples. Aspose.Email também oferece suporte à gravação de arquivos de mensagem com anexos. Tudo o que você precisa fazer é adicionar os anexos ao MailMessage instância. Adicione anexos chamando o método Add() no MailMessage.Attachments coleção. Adicione um listbox ao formulário criado acima e adicione dois botões, um para adicionar e outro para remover anexos. A aplicação que adiciona anexos funciona assim:
- Ao clicar no botão Add Attachment, é exibida uma Open File Dialog para ajudar os usuários a navegar e selecionar o anexo.
- Quando um arquivo é selecionado, o caminho completo é adicionado a uma lista.
- Quando o arquivo MSG é criado, os caminhos dos anexos são obtidos da lista e adicionados ao MailMessage.Attachments coleção.
Escreva o código a seguir no evento de clique do botão Add Attachment.
Quando o botão Remove Attachment for clicado, remova os itens selecionados do listbox. Escreva o código a seguir no evento de clique do botão Remove Attachment.
Adicione o código para adicionar os anexos ao MailMessage instância. O código final para a função Write Msg está escrito abaixo.
Criar arquivos MSG com corpo RTF
Você também pode criar arquivos Outlook Message (MSG) com corpos em texto rico (RTF) usando Aspose.Email. O corpo RTF oferece suporte à formatação de texto. Crie um definindo o MailMessage.HtmlBody propriedade. Quando você converte um MailMessage instância em um MapiMessage instância, o corpo HTML é convertido em RTF. Dessa forma, a formatação do corpo do e‑mail é preservada.
O exemplo a seguir cria um arquivo MSG com um corpo RTF. Há um título, formatação em negrito e sublinhado aplicada no corpo HTML. Essa formatação é mantida quando o HTML é convertido em RTF.
Compressão RTF para o Corpo da Mensagem MAPI
NOTE: O processo de compressão pode diminuir o desempenho ao criar mensagens. Ao entender esse fato e configurar a bandeira de compressão com base em requisitos específicos e no compromisso entre o tamanho do arquivo e o desempenho, os desenvolvedores podem gerenciar efetivamente a criação de arquivos MSG e PST ao lidar com mensagens de e‑mail.
A compressão RTF tem como objetivo reduzir o tamanho de uma mensagem, bem como dos arquivos PST (Personal Storage Table) resultantes que o Microsoft Outlook usa para armazenar mensagens de e‑mail e outros dados. Ao usar a compressão RTF ao configurar o corpo da mensagem, os desenvolvedores podem reduzir a quantidade de memória necessária para armazenar mensagens de e‑mail ou otimizar a largura de banda da rede ao transmitir mensagens.
Para esse fim, foram projetados dois métodos sobrecarregados:
-
MapiMessageItemBase.SetBodyContent(string content, BodyContentType contentType, bool compression): Este método permite definir o conteúdo do corpo da mensagem usando a string especificada e indicando o contentType do corpo (por exemplo, texto simples, HTML, etc.). O parâmetro opcional compression é um valor que especifica se o conteúdo deve ser comprimido usando compressão RTF. Se o parâmetro compression for true, o conteúdo será comprimido, resultando em um tamanho de mensagem menor.
-
MapiMessageItemBase.SetBodyRtf(string content, bool compression): Este método define especificamente o conteúdo do corpo da mensagem em formato RTF. O parâmetro content é uma string que representa o conteúdo RTF que será definido como corpo da mensagem. Como no método anterior, o parâmetro compression determina se a compressão RTF deve ser aplicada ao conteúdo. Se compression for true, o conteúdo RTF será comprimido para reduzir o tamanho.
O exemplo de código a seguir mostra como definir o corpo HTML e mantê‑lo comprimido:
var msg = new MapiMessage("from@doamin.com", "to@domain.com", "subject", "body");
// set the html body and keep it compressed
// this will reduce the message size
msg.SetBodyContent(htmlBody, BodyContentType.Html, true);
Há também um MapiConversionOptions.UseBodyCompression propriedade. Quando esta propriedade está habilitada, a compressão do corpo RTF é aplicada durante a conversão de MailMessage para MapiMessage, resultando em um tamanho de arquivo MSG menor. É demonstrado no exemplo de código abaixo:
var message = MailMessage.Load(fileName);
var options = new MapiConversionOptions();
options.UseBodyCompression = true;
var msg = MapiMessage.FromMailMessage(message, options);
Salvar Mensagem em Status de Rascunho
Os e‑mails são salvos como rascunhos quando alguém começou a editá‑los, mas deseja retornar a eles para concluir mais tarde. Aspose.Email oferece suporte à gravação de mensagens de e‑mail em status de rascunho definindo uma bandeira de mensagem. A seguir está o código de exemplo para salvar uma mensagem de e‑mail do Outlook (MSG) como rascunho.