Przetwarzanie załączników e-mail oraz osadzonych wiadomości w C#

Załączniki e-mail są plikami, które są wysyłane wraz z wiadomością e-mail, umożliwiając użytkownikom dzielenie się dokumentami, obrazami, filmami lub innymi treściami cyfrowymi. Efektywne zarządzanie załącznikami e-mail jest kluczowym aspektem nowoczesnych systemów komunikacji, a dla programistów C# poszukujących solidnego rozwiązania do ich zarządzania w swoich aplikacjach.

C# .NET API do zarządzania załącznikami e-mail

Aby przetwarzać załączniki e-mail, użyjemy Aspose.Email for .NET, potężnego i wszechstronnego API zaprojektowanego dla programistów C#, aby pracować z wiadomościami e-mail i różnymi powiązanymi zadaniami w swoich aplikacjach .NET. Oferuje szeroki zakres funkcji do tworzenia, przetwarzania, konwertowania i zarządzania wiadomościami, co czyni go cennym narzędziem dla firm i programistów, którzy potrzebują integrować możliwości e-mail w swoich aplikacjach. Aby skorzystać z mocy API, pobierz jego DLL lub zainstaluj go z NuGet.

Dodawanie regularnych załączników

Regularne załączniki to samodzielne pliki, które są dołączane do wiadomości e-mail, zazwyczaj wyświetlane jako oddzielne ikony lub linki w treści.

Przykład załącznika e-mail - regularny załącznik

Intuicyjne API Aspose.Email pozwala na dodanie regularnego załącznika do wiadomości w zaledwie kilku linijkach kodu. Z poniższymi krokami i przykładem kodu stworzysz przykładową wiadomość e-mail (MSG) i dodasz do niej załącznik plikowy (“document.pdf”) przy użyciu klasy MapiMessage w C#:

  1. Utwórz lub załaduj MapiMessage.
  2. Przeczytaj zawartość “document.pdf” do tablicy bajtów.
  3. Dodaj załącznik z nazwą (“document.pdf”) i danymi do kolekcji Attachments wiadomości.
// Create a sample MSG and add document.pdf file as attachment
var msg = new MapiMessage("user1@from.com", "user2@to.com", "This is subject", "This is body");
var data = File.ReadAllBytes("document.pdf");
msg.Attachments.Add("document.pdf", data);

Dodawanie osadzonych załączników

Osadzone załączniki mają być wyświetlane w treści samej wiadomości e-mail. Często używa się ich do osadzania obrazów lub innych mediów bezpośrednio w treści e-maila, co pozwala odbiorcy na obejrzenie treści bez potrzeby otwierania oddzielnego załącznika.

Przykład załącznika e-mail - osadzony załącznik

Obraz w treści wiadomości jest osadzonym załącznikiem. API Aspose.Email pozwala na sprawdzenie, czy załącznik jest osadzony przed wykonaniem innych manipulacji z nim, a poniższy przykład kodu demonstruje, jak wykonać to zadanie.

  1. Załaduj wiadomość e-mail z pliku przy użyciu metody MapiMessage.Load().
  2. Iteruj przez kolekcję jej załączników.
  3. Dla każdego załącznika w kolekcji, wypisz ich nazwy wyświetlane wraz z wartościami boolean wskazującymi, czy są osadzone, czy regularne.
// Check if the Attachment is Inline or Regular
var msg = MapiMessage.Load("message.msg");
foreach (var attach in msg.Attachments)
{
Console.WriteLine($"{attach.DisplayName} : {attach.IsInline}");
}

Dodawanie załączników odniesionych

Załączniki odniesione nie zawierają rzeczywistej zawartości pliku w wiadomości e-mail. Zamiast tego zawierają linki do zewnętrznych zasobów, takich jak obrazy hostowane na serwerze internetowym. Kiedy odbiorca otwiera e-mail, jego klient lub przeglądarka internetowa pobiera te zasoby z określonych URL-i, aby wyświetlić treść. Dzięki temu użytkownik może wysłać wiadomość z linkiem do pliku przechowywanego w Google Drive. Zamiast dołączać dokument bezpośrednio do wiadomości, możesz utworzyć załącznik linkowy, który prowadzi do pliku na Google Drive.

Przykład załącznika e-mail - załącznik odniesiony

Poniższy przykład kodu demonstruje, jak stworzyć wiadomość z załącznikiem odniesionym:

  1. Utwórz lub załaduj obiekt MapiMessage.
  2. Dodaj załącznik odniesiony do wiadomości przy użyciu metody MapiAttachmentCollection.Add, podając nazwę pliku, URL pliku, URL folderu i nazwę dostawcy.
  3. Ustaw typ uprawnień dla załącznika przy użyciu metody MapiAttachment.SetProperty, aby określić, kto może go edytować.
  4. Opcjonalnie możesz ustawić dodatkowe właściwości, takie jak oryginalny typ uprawnień, czy załącznik jest folderem, adres URL punktu końcowego dostawcy, adres URL podglądu i adres URL miniatury.
  5. Zapisz wiadomość do pliku przy użyciu metody Save.
// Create a message
var msg = new MapiMessage("from@domain.com", "to@domain.com", "Outlook message file",
"This message with the Reference Attachment", OutlookMessageFormat.Unicode);
// Add reference attachment
msg.Attachments.Add("Document.pdf",
"https://drive.google.com/file/d/1HJ-M3F2qq1oRrTZ2GZhUdErJNy2CT3DF/",
"https://drive.google.com/drive/my-drive",
"GoogleDrive");
//Also, you can set additional attachment properties
msg.Attachments[0].SetProperty(KnownPropertyList.AttachmentPermissionType, AttachmentPermissionType.AnyoneCanEdit);
msg.Attachments[0].SetProperty(KnownPropertyList.AttachmentOriginalPermissionType, 0);
msg.Attachments[0].SetProperty(KnownPropertyList.AttachmentIsFolder, false);
msg.Attachments[0].SetProperty(KnownPropertyList.AttachmentProviderEndpointUrl, "");
msg.Attachments[0].SetProperty(KnownPropertyList.AttachmentPreviewUrl, "");
msg.Attachments[0].SetProperty(KnownPropertyList.AttachmentThumbnailUrl, "");
// Finally save the message
msg.Save(@"my.msg");

Dodawanie osadzonych wiadomości

Osadzone wiadomości to te, które są dołączone lub zagnieżdżone w innej wiadomości e-mail. Mogą zawierać własną zawartość, załączniki i metadane, a zazwyczaj są zamknięte w treści lub jako załączniki wiadomości nadrzędnej.

Koncepcja ta jest powszechnie stosowana w scenariuszach takich jak przekazywanie lub odpowiadanie na wiadomości e-mail, gdzie oryginalna wiadomość jest uwzględniona jako część nowej wiadomości. W takich przypadkach oryginalna wiadomość staje się osadzoną w treści nowej wiadomości, zachowując swoją własną zawartość, w tym nadawcę, odbiorców i temat. Ta funkcjonalność jest fundamentalna dla komunikacji e-mail i umożliwia użytkownikom utrzymanie spójnego wątku konwersacji podczas wymiany wiadomości.

Przykład osadzonej wiadomości

Aspose.Email dostarcza komponenty do implementacji tej funkcjonalności. Poniższy przykład kodu z krokami demonstruje, jak dodać obiekt osadzony do wiadomości e-mail:

  1. Utwórz instancję klasy MapiMessage.
  2. Załaduj istniejącą wiadomość z pliku przy użyciu metody MapiMessage.Load().
  3. Dodaj załadowaną wiadomość jako załącznik do wcześniej utworzonej. Użyj do tego metody MapiAttachmentCollection.Add.
var msg = new MapiMessage("from@test.com", "to@test.com", "Subj", "This is a message body");
var attachMsg = MapiMessage.Load("Weekly report.msg");
msg.Attachments.Add("Weekly report", attachMsg);

Zapisywanie wszystkich załączników do MSG jako osobne pliki

Poniższy przykład kodu pokaże Ci, jak załadować wiadomość e-mail z pliku i zapisać każdy indywidualny załącznik z wiadomości do osobnego pliku z jego oryginalną nazwą pliku.

  1. Utwórz instancję klasy MapiMessage.
  2. Iteruj przez kolekcję załączników załadowanej wiadomości.
  3. Dla każdego załącznika zapisz go jako osobny plik przy użyciu metody Save, upewniając się, że każdy załącznik jest zapisywany z jego oryginalną nazwą pliku.
// Create an instance of MapiMessage from file
var msg = MapiMessage.Load("message.msg");
// Iterate through the attachments collection
foreach (var attachment in msg.Attachments)
{
// Save the individual attachment
attachment.Save(attachment.FileName);
}

Podsumowanie

W tym artykule zbadaliśmy praktyczną implementację dodawania różnych rodzajów załączników i osadzonych obiektów do wiadomości e-mail, zapisywania załączników do osobnych plików w C#, dostarczając zwięzłe przykłady kodu ilustrujące procesy. Aspose.Email for .NET wyłania się jako wszechstronne rozwiązanie, umożliwiające programistom efektywne zarządzanie załącznikami e-mail i wzmacnianie zadań komunikacyjnych w swoich aplikacjach, zapewniając spójną i płynną obsługę dla użytkowników końcowych.

Darmowe zasoby:

  • forum wsparcia, aby zadawać pytania, szukać pomocy i angażować się w społeczność w celu rozwiązania problemów lub zdobycia informacji na temat skutecznego korzystania z biblioteki
  • obszerna dokumentacja, która kompleksowo obejmuje różne aspekty funkcjonalności biblioteki z dostępem do odniesień API, samouczków, przykładów kodu i najlepszych praktyk
  • informacyjny blog obejmujący szeroki zakres tematów związanych z zarządzaniem e-mailami, obsługą załączników i innymi powiązanymi tematami, zawierający spostrzeżenia, wskazówki i aktualizacje dotyczące najnowszych funkcji i rozwoju w ekosystemie Aspose.Email
  • darmowe aplikacje zaprojektowane w celu zwiększenia zarządzania e-mailem i produktywności dla użytkowników na różnych platformach

Zobacz także: