Salva gli allegati dalle e-mail utilizzando C#

Come sviluppatore C#, puoi facilmente estrarre e salvare gli allegati dai messaggi di posta elettronica a livello di codice. In questo articolo imparerai come salvare gli allegati dalle email usando C#.

I seguenti argomenti sono discussi/trattati in questo articolo:

API C# per salvare allegati e-mail

Per salvare gli allegati dai file MSG, utilizzeremo GroupDocs.Viewer for .NET API. È un potente visualizzatore di documenti API per il rendering e la visualizzazione di formati di file ampiamente utilizzati senza installare alcun software esterno. Ti consente inoltre di visualizzare rapidamente formati di file supportati popolari di Word, Excel, PowerPoint, E-mail di Outlook, Progetto, PDF, HTML e XML.

Puoi scaricare la DLL dell’API o installarla utilizzando NuGet.

Install-Package GroupDocs.Viewer

Estrai e salva gli allegati dalle e-mail utilizzando C#

È possibile estrarre e salvare gli allegati dai file MSG di posta elettronica in modo programmatico seguendo i passaggi indicati di seguito:

  • Innanzitutto, carica il file MSG utilizzando la classe Viewer.
  • Quindi, chiama il metodo Viewer.GetAttachments() per ottenere tutti gli allegati del file MSG caricato. Ottieni i risultati come raccolta di allegati.
  • Per ogni allegato nella raccolta, salva l’allegato chiamando il metodo Viewer.SaveAttachment(). Passa l’oggetto allegato e il percorso del file per salvarlo.

L’esempio di codice seguente mostra come estrarre e salvare gli allegati contenuti nel file MSG di posta elettronica usando C#.

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

// Inizializza l'API e carica il file MSG
Viewer viewer = new Viewer(@"C:\Files\Viewer\with_attachments.msg");

// Ottieni allegati
IList<Attachment> attachments = viewer.GetAttachments();

foreach (Attachment attachment in attachments)
{
    // Salva allegato
    string filePath = Path.Combine(outputPath, attachment.FileName);
    viewer.SaveAttachment(attachment, File.OpenWrite(filePath));
}
Estrai e salva gli allegati dalle e-mail utilizzando C#

Estrai e salva gli allegati dalle email usando C#.

Salva gli allegati come PDF dalle e-mail utilizzando C#

È possibile salvare gli allegati dei messaggi di posta elettronica come PDF in modo programmatico seguendo i passaggi indicati di seguito:

  • Crea un’istanza della classe Attachment con il nome del file e il percorso del file allegati.
  • Inizializza un’istanza della classe MemoryStream.
  • Carica il file MSG utilizzando la classe Viewer.
  • Quindi, chiama il metodo Viewer.SaveAttachment() e passa l’allegato e l’oggetto MemoryStream come parametri di input. Estrarre e salvare l’allegato specificato nel flusso di memoria.
  • Ora carica l’oggetto MemoryStream usando la classe Viewer.
  • Quindi, crea un’istanza della classe PdfViewOptions con il percorso del file PDF di output.
  • Infine, chiama il metodo Viewer.View() per salvare e visualizzare l’allegato come PDF.

L’esempio di codice seguente mostra come salvare e visualizzare l’allegato come PDF da un file MSG di posta elettronica usando C#.

// Inizializza allegato
Attachment attachment = new Attachment("attachment-word.doc", "attachment-word.doc");
MemoryStream attachmentStream = new MemoryStream();

// Inizializza l'API e carica il file MSG
using (Viewer viewer = new Viewer(@"C:\Files\Viewer\with_attachments.msg"))
{
    // Salva l'allegato nello stream
    viewer.SaveAttachment(attachment, attachmentStream);
}

// Inizializza l'API e carica il flusso di allegati
using (Viewer viewer = new Viewer(attachmentStream))
{
    // Definisci le opzioni di visualizzazione PDF
    PdfViewOptions viewOptions = new PdfViewOptions("C:\\Files\\Viewer\\output.pdf");

    // Visualizza come PDF
    viewer.View(viewOptions);
}

Ottieni una licenza gratuita

Puoi provare l’API senza limitazioni di valutazione richiedendo una licenza temporanea gratuita.

Conclusione

In questo articolo, hai imparato come estrarre e salvare gli allegati contenuti nel file MSG di posta elettronica utilizzando C#. Inoltre, hai visto come salvare un allegato specifico come PDF a livello di codice. Inoltre, puoi saperne di più su GroupDocs.Viewer per .NET API usando la documentazione. In caso di ambiguità, non esitare a contattarci sul forum.

Guarda anche