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
- Estrai e salva gli allegati dalle e-mail utilizzando C#
- Salva gli allegati come PDF dalle e-mail utilizzando C#
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));
}
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.