Tworzenie i zapisywanie plików Outlook

Aspose.Email obsługuje tworzenie plików wiadomości Outlook (MSG). Ten artykuł wyjaśnia, jak:

Utwórz i zapisz wiadomości Outlook

Ten MailMessage klasy ma Save() 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 Save() metoda przyjmuje nazwę pliku jako argument. Dodatkowo wiadomości Outlook mogą być tworzone z skompresowane ciało RTF używając MapiConversionOptions

  1. Utwórz nową instancję MailMessage klasy i ustawia właściwości From, To, Subject oraz Body.
  2. Wywołaj MapiMessage klasa FromMailMessage metoda, która przyjmuje obiekt MailMessage typ. Metoda FromMailMessage metoda konwertuje MailMessage do MapiMessage (MSG).
  3. Wywołaj MapiMessage.Save() metoda zapisu pliku MSG.

Umieść poniższy kod w zdarzeniu kliknięcia przycisku kontrolki w aplikacji Windows.

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 instancji. Dodaj załączniki, wywołując metodę Add() na MailMessage.Attachments kolekcji. Dodaj listbox do wcześniej utworzonego formularza i dodaj dwa przyciski, po jednym do dodawania i usuwania załączników. Aplikacja, która dodaje załączniki, działa w następujący sposób:

  1. Po kliknięciu przycisku Add Attachment wyświetlany jest Open File Dialog, który pomaga użytkownikom przeglądać i wybierać załączniki.
  2. Po wybraniu pliku pełna ścieżka jest dodawana do listy.
  3. Gdy plik MSG jest tworzony, ścieżki załączników są pobierane z listy i dodawane do MailMessage.Attachments kolekcję.

Wpisz poniższy kod w zdarzeniu kliknięcia przycisku Add Attachment.

Po kliknięciu przycisku Remove Attachment usuń zaznaczone pozycje z listboxa. Wpisz poniższy kod w zdarzeniu kliknięcia przycisku Remove Attachment.

Dodaj kod dodający załączniki do MailMessage instancji. Ostateczny kod funkcji Write Msg jest przedstawiony poniżej.

Utwórz pliki MSG z ciałem 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.

Kompresja RTF dla treści wiadomości MAPI

UWAGA: Proces kompresji może spowolnić wydajność przy tworzeniu wiadomości. Rozumiejąc ten fakt i konfigurując flagę kompresji w oparciu o konkretne wymagania oraz kompromis między rozmiarem pliku a wydajnością, programiści mogą skutecznie zarządzać tworzeniem plików MSG i PST przy obsłudze wiadomości e‑mail.

Kompresja RTF ma na celu zmniejszenie rozmiaru wiadomości, a także powstałych plików PST (Personal Storage Table), które Microsoft Outlook używa do przechowywania wiadomości e‑mail i innych danych. Korzystając z kompresji RTF przy konfigurowaniu treści wiadomości, programiści mogą zmniejszyć ilość pamięci potrzebnej do przechowywania wiadomości e‑mail lub zoptymalizować przepustowość sieci przy przesyłaniu wiadomości.

W tym celu zaprojektowano dwie przeciążone metody:

  • MapiMessageItemBase.SetBodyContent(string content, BodyContentType contentType, bool compression): Ta metoda umożliwia ustawienie treści ciała wiadomości przy użyciu podanego łańcucha oraz określenie typu zawartości ciała (np. zwykły tekst, HTML itp.). Opcjonalny parametr compression jest wartością określającą, czy treść powinna być skompresowana przy użyciu kompresji RTF. Jeśli parametr compression jest true, treść zostanie skompresowana, co skutkuje mniejszym rozmiarem wiadomości.

  • MapiMessageItemBase.SetBodyRtf(string content, bool compression): Ta metoda ustawia treść ciała wiadomości w formacie RTF. Parametr content jest łańcuchem reprezentującym treść RTF, która zostanie ustawiona jako ciało wiadomości. Podobnie jak w poprzedniej metodzie, parametr compression określa, czy na treść należy zastosować kompresję RTF. Jeśli compression jest true, treść RTF zostanie skompresowana w celu zmniejszenia rozmiaru.

Poniższy przykład kodu pokazuje, jak ustawić treść HTML i zachować jej kompresję:

var msg = new MapiMessage("from@doamin.com", "to@domain.com", "subject", "body");
// set the html body and keep it compressed
// this will reduce the message size
msg.SetBodyContent(htmlBody, BodyContentType.Html, true);

Istnieje także MapiConversionOptions.UseBodyCompression właściwość. Gdy ta właściwość jest włączona, kompresja treści RTF jest stosowana podczas konwersji MailMessage do MapiMessage, co skutkuje mniejszym rozmiarem pliku MSG. Poniżej pokazano przykład kodu:

var message = MailMessage.Load(fileName);
var options = new MapiConversionOptions();
options.UseBodyCompression = true;
var msg = MapiMessage.FromMailMessage(message, options);

Zapisz wiadomość w stanie szkicu

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