Zapisuj załączniki z wiadomości e-mail za pomocą języka C#

Jako programista C# możesz łatwo programowo wyodrębniać i zapisywać załączniki z wiadomości e-mail. W tym artykule dowiesz się, jak zapisywać załączniki z wiadomości e-mail przy użyciu języka C#.

W tym artykule omówiono/omówiono następujące tematy:

API C# do zapisywania załączników do wiadomości e-mail

Do zapisywania załączników z plików MSG użyjemy GroupDocs.Viewer for .NET API. Jest to potężny interfejs API przeglądarki dokumentów umożliwiający renderowanie i wyświetlanie powszechnie używanych formatów plików bez konieczności instalowania zewnętrznego oprogramowania. Umożliwia także szybkie przeglądanie popularnych obsługiwanych formatów plików w Word, Excel, PowerPoint, e-maile Outlooka, Projekt, PDF, HTML i XML.

Możesz pobrać bibliotekę DLL interfejsu API lub zainstalować ją za pomocą NuGet.

Install-Package GroupDocs.Viewer

Wyodrębniaj i zapisuj załączniki z wiadomości e-mail za pomocą języka C#

Możesz programowo wyodrębniać i zapisywać załączniki z plików MSG wiadomości e-mail, wykonując czynności podane poniżej:

  • Najpierw załaduj plik MSG przy użyciu klasy Viewer.
  • Następnie wywołaj metodę Viewer.GetAttachments(), aby pobrać wszystkie załączniki załadowanego pliku MSG. Uzyskaj wyniki w postaci zbioru załączników.
  • Dla każdego załącznika w kolekcji zapisz załącznik, wywołując metodę Viewer.SaveAttachment(). Przekaż obiekt załącznika i ścieżkę pliku, aby go zapisać.

Poniższy przykładowy kod pokazuje, jak wyodrębnić i zapisać załączniki zawarte w pliku MSG wiadomości e-mail przy użyciu języka C#.

string outputPath = @"C:\Files\Viewer\";

// Zainicjuj API i załaduj plik MSG
Viewer viewer = new Viewer(@"C:\Files\Viewer\with_attachments.msg");

// Pobierz załączniki
IList<Attachment> attachments = viewer.GetAttachments();

foreach (Attachment attachment in attachments)
{
    // Zapisz załącznik
    string filePath = Path.Combine(outputPath, attachment.FileName);
    viewer.SaveAttachment(attachment, File.OpenWrite(filePath));
}
Wyodrębniaj i zapisuj załączniki z wiadomości e-mail za pomocą języka C#

Wyodrębniaj i zapisuj załączniki z wiadomości e-mail przy użyciu języka C#.

Zapisz załączniki jako pliki PDF z wiadomości e-mail przy użyciu języka C#

Możesz programowo zapisać załączniki wiadomości e-mail w formacie PDF, wykonując czynności podane poniżej:

  • Utwórz instancję klasy Attachment z dołączoną nazwą pliku i ścieżką do pliku.
  • Zainicjuj instancję klasy MemoryStream.
  • Załaduj plik MSG przy użyciu klasy Viewer.
  • Następnie wywołaj metodę Viewer.SaveAttachment() i jako parametry wejściowe przekaż obiekt załącznik i obiekt MemoryStream. Wyodrębni i zapisze określony załącznik w strumieniu pamięci.
  • Teraz załaduj obiekt MemoryStream przy użyciu klasy Viewer.
  • Następnie utwórz instancję klasy PdfViewOptions ze ścieżką wyjściowego pliku PDF.
  • Na koniec wywołaj metodę Viewer.View(), aby zapisać i wyświetlić załącznik w formacie PDF.

Poniższy przykładowy kod pokazuje, jak zapisać i wyświetlić załącznik jako plik PDF z pliku MSG wiadomości e-mail przy użyciu języka C#.

// Zainicjuj załącznik
Attachment attachment = new Attachment("attachment-word.doc", "attachment-word.doc");
MemoryStream attachmentStream = new MemoryStream();

// Zainicjuj API i załaduj plik MSG
using (Viewer viewer = new Viewer(@"C:\Files\Viewer\with_attachments.msg"))
{
    // Zapisz załącznik w strumieniu
    viewer.SaveAttachment(attachment, attachmentStream);
}

// Zainicjuj interfejs API i załaduj strumień załączników
using (Viewer viewer = new Viewer(attachmentStream))
{
    // Zdefiniuj opcje widoku PDF
    PdfViewOptions viewOptions = new PdfViewOptions("C:\\Files\\Viewer\\output.pdf");

    // Wyświetl jako plik PDF
    viewer.View(viewOptions);
}

Zdobądź bezpłatną licencję

Możesz wypróbować interfejs API bez ograniczeń ewaluacyjnych, prosząc o bezpłatną licencję tymczasową.

Wniosek

W tym artykule nauczyłeś się wyodrębniać i zapisywać załączniki zawarte w pliku MSG wiadomości e-mail przy użyciu języka C#. Co więcej, widziałeś, jak programowo zapisać określony załącznik jako plik PDF. Poza tym możesz dowiedzieć się więcej o GroupDocs.Viewer for .NET API, korzystając z dokumentacji. W przypadku jakichkolwiek niejasności prosimy o kontakt na forum.

Zobacz też