Creazione e salvataggio di file MSG
Aspose.Email supporta la creazione di file Outlook message (MSG). Questo articolo spiega come:
- Crea messaggi MSG.
- Crea messaggi MSG con allegati.
- Crea un messaggio MSG con un corpo RTF.
- Salva un messaggio come bozza.
- Lavora con la compressione del corpo.
Creazione e salvataggio di messaggi Outlook
Il MailMessage classe ha il salva metodo che può salvare file Outlook MSG su disco o in stream. Gli snippet di codice seguenti creano un’istanza della MailMessage classe, imposta proprietà come from, to, subject e body. Il salva il metodo accetta il nome file come argomento. Inoltre, i messaggi Outlook possono essere creati con un corpo RTF compresso usando il MapiConversionOptions.
- Crea una nuova istanza della MailMessage classe e imposta le proprietà From, To, Subject e Body.
- Chiama il MapiMessage classe fromMailMessage metodo che accetta l’oggetto della MailMessage tipo. Il fromMailMessage il metodo converte il MailMessage in un MapiMessage (MSG).
- Chiama il MapiMessage.save metodo per salvare il file 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);
Creazione di file MSG con allegati
Nell’esempio sopra, abbiamo creato un semplice file MSG. Aspose.Email supporta anche il salvataggio di file messaggi con allegati. Tutto quello che devi fare è aggiungere gli allegati al MailMessage istanza. Aggiungi gli allegati chiamando il metodo addItem su MailMessage.Attachments collezione.
// 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);
Creazione di file MSG con corpo RTF
Puoi anche creare file Outlook Message (MSG) con corpi di testo ricco (RTF) usando Aspose.Email. Il corpo RTF supporta la formattazione del testo. Creane uno impostando il MailMessage.HtmlBody proprietà. Quando converti un MailMessage istanza in un MapiMessage nell’istanza, il corpo HTML viene convertito in RTF. In questo modo, la formattazione del corpo dell’email viene preservata.
Il seguente esempio crea un file MSG con un corpo RTF. Nell corpo HTML è presente un’intestazione, formattazione grassetto e sottolineato. Questa formattazione viene conservata quando l’HTML viene convertito in 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");
Salvataggio del messaggio in stato bozza
Le email vengono salvate come bozze quando qualcuno ha iniziato a modificarle ma vuole tornare su di esse per completarle in seguito. Aspose.Email supporta il salvataggio dei messaggi email in stato bozza impostando un flag del messaggio. Di seguito il codice di esempio per salvare un messaggio email di Outlook (MSG) come bozza.
// 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");
Implicazioni della compressione del corpo
Il metodo di compressione del corpo RTF può essere usato per generare un MSG di dimensioni più piccole. Tuttavia, questo comporta una velocità di creazione più lenta. Per creare messaggi con velocità migliorata, impostare il flag su false. Questo flag, a sua volta, influenza i PST creati: file MSG più piccoli producono PST più piccoli, e file MSG grandi comportano una creazione più lenta del PST.
// 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);