Praca z załącznikami wiadomości

Parsowanie i zapisywanie załączników

Pliki wiadomości Outlook mogą zawierać jeden lub więcej załączników. Aspose.Email umożliwia deweloperom iterowanie po załącznikach w pliku MSG i zapisywanie ich na dysku. Ten temat opisuje proces. Zawiera również opis, jak osadzić załącznik.

Aspose.Email MapiMessage klasa służy do ładowania pliku MSG z dysku i udostępnia getAttachments() metoda, która odnosi się do MapiAttachment kolekcja obiektów powiązana z plikiem MSG. Metoda MapiAttachment obiekt dodatkowo udostępnia metody wykonujące akcje na załączniku.

Aby zapisać załączniki w pliku MSG na dysk z oryginalną nazwą i rozszerzeniem:

  1. Utwórz instancję MapiMessage klasę do załadowania pliku MSG przy użyciu Load() metody statycznej.
  2. Wywołaj MapiRecipient klasa getAttachments() metoda, aby uzyskać referencję do kolekcji MapiAttachment obiektów powiązanych z plikiem MSG.
  3. Iteruj przez MapiAttachmentCollection do wyświetlania zawartości dotyczącej każdego MapiAttachment obiekt poprzez jego publiczne metody.
  4. Wywołaj MapiAttachment klasa save() metoda zapisu załącznika na dysk.  

Osadzanie wiadomości jako załączników

Wiadomość Microsoft Outlook może zawierać inne wiadomości Outlook jako załączniki, zarówno jako zwykłe wiadomości opisane powyżej, jak i wiadomości osadzone. MapiAttachmentCollection udostępnia przeciążone wersje metody add do tworzenia wiadomości Outlook z obiema typami załączników. Pliki Outlook MSG osadzone w pliku MSG zawierają PR_ATTACH_METHOD o wartości 5.

Odczytanie osadzonej wiadomości z załącznika

Wstawianie i zamiana załączników MSG

Aspose.Email API umożliwia wstawianie załączników pod określonym indeksem w wiadomości nadrzędnej. Umożliwia również zastąpienie treści jednego załącznika innym załącznikiem wiadomości.

Wstaw załącznik MSG w określone miejsce

Aspose.Email API zapewnia możliwość wstawienia załącznika MSG do nadrzędnego MSG przy użyciu MapiAttachmentCollection.Insert() metoda.

Zastąp treść osadzonego załącznika MSG

Można to wykorzystać do zastąpienia treści osadzonego załącznika nowymi przy użyciu Zastąp metoda. Nie można jednak używać jej do wstawiania załącznika z PR_ATTACH_NUM = 4 (na przykład) do kolekcji, której collection.Count = 2.

Zapisz załączniki z cyfrowo podpisanej wiadomości

Aspose.Email API umożliwia pobranie lub ustawienie wartości wskazującej, czy wiadomość z podpisem Clear‑Signed zostanie zdekodowana. 

Zmień nazwę załącznika w MapiMessage

Aspose.Email umożliwia edycję Nazwa wyświetlana wartość właściwości w Załączniki MapiMessage.

Poniższy przykład kodu demonstruje, jak zaktualizować nazwy wyświetlane pierwszego i drugiego załącznika w załadowanej wiadomości Mapi:

MapiMessage msg = MapiMessage.load(fileName);
msg.getAttachments().get_Item(0).setDisplayName("New display name 1");
msg.getAttachments().get_Item(1).setDisplayName("New display name 2");

Sprawdź, czy załącznik jest wbudowany czy regularny

Różnica między załącznikami wbudowanymi a regularnymi polega na sposobie ich prezentacji w e‑mailu. Załączniki wbudowane są osadzone w treści wiadomości i mogą być wyświetlone bez otwierania osobnego pliku lub pobierania czegokolwiek. Załączniki regularne są natomiast oddzielnymi plikami dołączonymi do wiadomości, które nie są wyświetlane bezpośrednio w treści i muszą być pobrane oraz otwarte zewnętrznie. MapiAttachment.IsInline właściwość MapiAttachment klasa pobiera wartość wskazującą, czy załącznik jest wbudowany, czy regularny.

Poniższy przykład kodu ładuje wiadomość e‑mail z pliku, a następnie pobiera informacje o załącznikach, wypisując nazwę wyświetlaną każdego załącznika oraz informację, czy jest on wbudowany w treść wiadomości, czy nie:

MapiMessage message = MapiMessage.load("fileName");

for (MapiAttachment attach : message.getAttachments()) {
    System.out.println(attach.getDisplayName() + ": " + attach.isInline());
}