Créer et enregistrer des fichiers MSG
Aspose.Email prend en charge la création de fichiers de messages Outlook (MSG). Cet article explique comment :
- Créer des messages MSG.
- Créer des messages MSG avec des pièces jointes.
- Créer un message MSG avec un corps RTF.
- Enregistrer un message en tant que brouillon.
- Travailler avec la compression du corps.
Créer et enregistrer des messages Outlook
Le MailMessage classe possède le enregistrer méthode qui peut enregistrer des fichiers Outlook MSG sur le disque ou dans un flux. Les extraits de code ci‑dessous créent une instance de la MailMessage classe, définissez les propriétés comme from, to, subject et body. La enregistrer la méthode prend le nom de fichier comme argument. De plus, les messages Outlook peuvent être créés avec un corps RTF compressé en utilisant le MapiConversionOptions.
- Créez une nouvelle instance de la MailMessage classe et définit les propriétés From, To, Subject et Body.
- Appelez le MapiMessage classe fromMailMessage méthode qui accepte l’objet du MailMessage type. La fromMailMessage méthode convertit le MailMessage en un MapiMessage (MSG).
- Appelez le MapiMessage.save méthode pour enregistrer le fichier 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);
Créer des fichiers MSG avec des pièces jointes
Dans l’exemple ci‑dessus, nous avons créé un fichier MSG simple. Aspose.Email prend également en charge l’enregistrement des fichiers de messages avec pièces jointes. Tout ce que vous avez à faire est d’ajouter les pièces jointes au MailMessage instance. Ajoutez des pièces jointes en appelant la méthode addItem sur le MailMessage.Attachments collection.
// 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);
Créer des fichiers MSG avec un corps RTF
Vous pouvez également créer des fichiers Outlook Message (MSG) avec des corps en texte enrichi (RTF) à l’aide d’Aspose.Email. Le corps RTF prend en charge le formatage du texte. Créez‑en un en définissant le MailMessage.HtmlBody propriété. Lorsque vous convertissez un MailMessage instance en un MapiMessage Dans cet exemple, le corps HTML est converti en RTF. Ainsi, le formatage du corps du courriel est préservé.
L’exemple suivant crée un fichier MSG avec un corps RTF. Il comporte un titre, ainsi que des formats gras et souligné appliqués dans le corps HTML. Ce formatage est conservé lors de la conversion du HTML en 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");
Enregistrement du message en statut brouillon
Les e‑mails sont enregistrés comme brouillons lorsqu’une personne a commencé à les modifier mais souhaite y revenir plus tard pour les terminer. Aspose.Email prend en charge l’enregistrement des messages électroniques en statut brouillon en définissant un drapeau de message. Ci‑dessous le code d’exemple pour enregistrer un message Outlook (MSG) en tant que brouillon.
// 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");
Implications de la compression du corps
La méthode de compression du corps RTF peut être utilisée pour générer un MSG de plus petite taille. Cependant, cela entraîne une vitesse de création plus lente. Pour créer des messages avec une vitesse améliorée, réglez le drapeau sur false. Ce drapeau, à son tour, affecte les PST créés : les petits fichiers MSG donnent des PST plus petits, tandis que les gros fichiers MSG entraînent une création de PST plus lente.
// 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);