Criando e Salvando Arquivos MSG

Aspose.Email oferece suporte à criação de arquivos Outlook message (MSG). Este artigo explica como:

  • Criar mensagens MSG.
  • Criar mensagens MSG com anexos.
  • Criar uma mensagem MSG com um corpo RTF.
  • Salvar uma mensagem como rascunho.
  • Trabalhar com compressão de corpo.

Criando e Salvando Mensagens Outlook

O MailMessage classe tem o salvar 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 salvar 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.

  1. Crie uma nova instância da MailMessage classe e define as propriedades From, To, Subject e Body.
  2. 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).
  3. Chame o MapiMessage.save método para salvar o arquivo MSG.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// The path to the File directory.
String dataDir = "outlook/";

// Create an instance of the MailMessage class
MailMessage mailMsg = new MailMessage();

// Set from, to, subject and body properties
mailMsg.setFrom(MailAddress.to_MailAddress("sender@domain.com"));
mailMsg.setTo(MailAddressCollection.to_MailAddressCollection("receiver@domain.com"));
mailMsg.setSubject("This is test message");
mailMsg.setBody("This is test body");

// Create an instance of the MapiMessage class and pass MailMessage as argument
MapiMessage outlookMsg = MapiMessage.fromMailMessage(mailMsg);

// Save the message (MSG) file
String strMsgFile = "CreatingAndSavingOutlookMessages_out.msg";
outlookMsg.save(dataDir + strMsgFile);

Criando 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 addItem no MailMessage.Attachments coleção.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// The path to the File directory.
String dataDir = "outlook/";

String[] files = new String[2];
files[0] = "attachment.doc";
files[1] = "attachment.png";

// Create an instance of the MailMessage class
MailMessage mailMsg = new MailMessage();

// Set from, to, subject and body properties
mailMsg.setFrom(MailAddress.to_MailAddress("sender@domain.com"));
mailMsg.setTo(MailAddressCollection.to_MailAddressCollection("receiver@domain.com"));
mailMsg.setSubject("This is test message");
mailMsg.setBody("This is test body");

// Add the attachments
for (String strFileName : files)
{
    mailMsg.getAttachments().addItem(new Attachment(strFileName));
}

// Create an instance of MapiMessage class and pass MailMessage as argument
MapiMessage outlookMsg = MapiMessage.fromMailMessage(mailMsg);
String strMsgFile = "CreateMessagesWithAttachments.msg";
outlookMsg.save(dataDir + strMsgFile);

Criando 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.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// The path to the File directory.
String dataDir = "outlook/";

// Create an instance of the MailMessage class
MailMessage mailMsg = new MailMessage();

// Set from, to, subject and body properties
mailMsg.setFrom(MailAddress.to_MailAddress("sender@domain.com"));
mailMsg.setTo(MailAddressCollection.to_MailAddressCollection("receiver@domain.com"));
mailMsg.setSubject("This is test message");
mailMsg.setHtmlBody("<h3>rtf example</h3><p>creating an <b><u>outlook message (msg)</u></b> file using Aspose.Email.</p>");

MapiMessage outlookMsg = MapiMessage.fromMailMessage(mailMsg);
outlookMsg.save(dataDir + "CreatingMSGFilesWithRTFBody_out.msg");

Salvando 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.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// The path to the File directory.
String dataDir = "outlook/";

// Change properties of an existing MSG file
String strExistingMsg = "message.msg";

// Load the existing file in MailMessage and Change the properties
MailMessage msg = MailMessage.load(dataDir + strExistingMsg, new MsgLoadOptions());
msg.setSubject(msg.getSubject() + " NEW SUBJECT (updated by Aspose.Email)");
msg.setHtmlBody(msg.getHtmlBody() + " NEW BODY (udpated by Aspose.Email)");

// Create an instance of type MapiMessage from MailMessage, Set message flag to un-sent (draft status) and Save it
MapiMessage mapiMsg = MapiMessage.fromMailMessage(msg);
mapiMsg.setMessageFlags(MapiMessageFlags.MSGFLAG_UNSENT);
mapiMsg.save(dataDir + "SavingMessageInDraftStatus_out.msg");

Implicações da Compressão de Corpo

O método de compressão de corpo RTF pode ser usado para gerar um MSG de tamanho menor. Contudo, isso resulta em velocidade de criação mais lenta. Para criar mensagens com velocidade aprimorada, defina a bandeira como false. Essa bandeira, por sua vez, afeta os PSTs criados: arquivos MSG menores resultam em PST menores, e arquivos MSG grandes resultam em criação de PST mais lenta.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
String fileName = "outlook/test.msg";

MailMessage message = MailMessage.load(fileName);
MapiConversionOptions options = new MapiConversionOptions();
options.setUseBodyCompression(true);
MapiMessage ae_mapi = MapiMessage.fromMailMessage(message, options);