Tworzenie i zapisywanie plików MSG
Aspose.Email obsługuje tworzenie plików wiadomości Outlook (MSG). Ten artykuł wyjaśnia, jak:
- Utwórz wiadomości MSG.
- Utwórz wiadomości MSG z załącznikami.
- Utwórz wiadomość MSG z ciałem RTF.
- Zapisz wiadomość jako wersję roboczą.
- Praca ze kompresją treści.
Tworzenie i zapisywanie wiadomości Outlook
Ten MailMessage klasy ma zapis metoda, która może zapisać pliki Outlook MSG na dysk lub strumień. Poniższe fragmenty kodu tworzą instancję MailMessage klasy, ustaw właściwości takie jak from, to, subject i body. Metoda zapis metoda przyjmuje nazwę pliku jako argument. Dodatkowo wiadomości Outlook mogą być tworzone z skompresowane ciało RTF używając MapiConversionOptions.
- Utwórz nową instancję MailMessage klasy i ustawia właściwości From, To, Subject oraz Body.
- Wywołaj MapiMessage klasa fromMailMessage metoda, która przyjmuje obiekt MailMessage typ. Metoda fromMailMessage metoda konwertuje MailMessage do MapiMessage (MSG).
- Wywołaj MapiMessage.save metoda zapisu pliku 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);
Tworzenie plików MSG z załącznikami
W powyższym przykładzie, utworzyliśmy prosty plik MSG. Aspose.Email obsługuje również zapisywanie plików wiadomości z załącznikami. Wystarczy dodać załączniki do MailMessage instancja. Dodaj załączniki, wywołując metodę addItem na MailMessage.Attachments kolekcję.
// 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);
Tworzenie plików MSG z treścią RTF
Możesz także tworzyć pliki Outlook Message (MSG) z ciałami w formacie rich text (RTF) przy użyciu Aspose.Email. Ciało RTF obsługuje formatowanie tekstu. Utwórz je, ustawiając MailMessage.HtmlBody właściwość. Gdy konwertujesz MailMessage instancja do MapiMessage instancja, ciało HTML jest konwertowane do RTF. W ten sposób formatowanie treści e‑maila jest zachowane.
Poniższy przykład tworzy plik MSG z ciałem w formacie RTF. W ciele HTML znajduje się jeden nagłówek oraz formatowanie pogrubione i podkreślone. To formatowanie jest zachowywane po konwersji HTML do 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");
Zapisywanie wiadomości w stanie wersji roboczej
E-maile są zapisywane jako wersje robocze, gdy ktoś rozpoczął ich edycję, ale chce do nich wrócić w celu dokończenia później. Aspose.Email obsługuje zapisywanie wiadomości e‑mail w stanie wersji roboczej poprzez ustawienie flagi wiadomości. Poniżej znajduje się przykładowy kod, który zapisuje wiadomość e‑mail Outlook (MSG) jako wersję roboczą.
// 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");
Implikacje kompresji treści
Metoda kompresji ciała RTF może być użyta do wygenerowania mniejszego rozmiaru MSG. Jednak skutkuje to wolniejszym tempem tworzenia. Aby tworzyć wiadomości szybciej, ustaw flagę na false. Flaga ta ma wpływ na tworzone pliki PST: mniejsze pliki MSG skutkują mniejszymi PST, a duże pliki MSG powodują wolniejsze tworzenie 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);