MSG-bestanden maken en opslaan

Aspose.Email ondersteunt het maken van Outlook‑bericht (MSG)‑bestanden. Dit artikel legt uit hoe je:

  • MSG‑berichten maken.
  • MSG‑berichten maken met bijlagen.
  • Een MSG‑bericht maken met een RTF‑body.
  • Bericht opslaan als concept.
  • Werken met body‑compressie.

Outlook‑berichten maken en opslaan

De MailMessage klasse heeft de opslaan methode die Outlook‑MSG‑bestanden naar schijf of stream kan opslaan. De onderstaande codefragmenten maken een exemplaar van de MailMessage klasse, stel eigenschappen in zoals from, to, subject en body. De opslaan methode neemt de bestandsnaam als argument. Bovendien kunnen Outlook‑berichten worden aangemaakt met een gecomprimeerde RTF‑body met behulp van de MapiConversionOptions.

  1. Maak een nieuw exemplaar van de MailMessage klasse accepteert en stelt de From-, To-, Subject- en Body‑eigenschappen in.
  2. Roep de MapiMessage klasse fromMailMessage methode die het object van de MailMessage type. De fromMailMessage methode converteert de MailMessage naar een MapiMessage (MSG).
  3. Roep de MapiMessage.save methode om het MSG‑bestand op te slaan.
// 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);

MSG‑bestanden maken met bijlagen

In het bovenstaande voorbeeld, hebben we een eenvoudig MSG‑bestand gemaakt. Aspose.Email ondersteunt ook het opslaan van berichtbestanden met bijlagen. Het enige wat je hoeft te doen is de bijlagen toevoegen aan de MailMessage instantie. Voeg bijlagen toe door de addItem-methode aan te roepen op de MailMessage.Attachments collectie.

// 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);

MSG‑bestanden maken met RTF‑body

Je kunt ook Outlook‑bericht (MSG)‑bestanden met rich‑text (RTF)‑bodies maken met Aspose.Email. De RTF‑body ondersteunt tekstopmaak. Maak er één door de MailMessage.HtmlBody eigenschap. Wanneer je een MailMessage instantie in een MapiMessage bij een instantie wordt de HTML‑body geconverteerd naar RTF. Op deze manier blijft de opmaak van de e‑mailbody behouden.

Het volgende voorbeeld maakt een MSG‑bestand met een RTF‑body. Er is één kop, vet en onderstreept opmaak toegepast in de HTML‑body. Deze opmaak wordt behouden wanneer de HTML wordt omgezet naar 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");

Bericht opslaan in conceptstatus

E‑mailberichten worden opgeslagen als concepten wanneer iemand is begonnen ze te bewerken maar later wil terugkeren om ze af te ronden. Aspose.Email ondersteunt het opslaan van e‑mailberichten in conceptstatus door een berichtvlag in te stellen. Hieronder staat de voorbeeldcode om een Outlook‑e‑mailbericht (MSG) als concept op te slaan.

// 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");

Gevolgen van body‑compressie

De RTF‑body‑compressiemethode kan worden gebruikt om een kleiner MSG‑bestand te genereren. Dit leidt echter tot een tragere creatiesnelheid. Om berichten sneller te maken, stel je de vlag in op false. Deze vlag heeft vervolgens invloed op de aangemaakte PST‑bestanden: kleinere MSG‑bestanden resulteren in kleinere PST‑bestanden, en grote MSG‑bestanden leiden tot tragere PST‑creatie.

// 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);