Πώς να αποθηκεύσετε ένα μήνυμα ηλεκτρονικού ταχυδρομείου στο δίσκο στο C#

Σε αυτό το βήμα προς βήμα σεμινάριο, θα εξηγήσουμε πώς να αποθηκεύσετε το μήνυμα ηλεκτρονικού ταχυδρομείου στο δίσκο σε C#. Το μήνυμα email μπορεί να αποθηκευτεί ως μορφές αρχείου EML or MSG στο δίσκο. Θα λαμβάνουμε μηνύματα από το πλαίσιο ηλεκτρονικού ταχυδρομείου του Exchange, ωστόσο μπορείτε να λαμβάνετε μηνύματα και από άλλα γραμματοκιβώτια και να τα αποθηκεύετε στο δίσκο.

Βήματα για την αποθήκευση μηνύματος email στο δίσκο σε C#

  1. Λάβετε πακέτο Aspose.Email for .NET από το NuGet.org
  2. Συμπεριλάβετε τους χώρους ονομάτων Aspose.Email.Clients.Exchange και Aspose.Email.Clients.Exchange.WebService
  3. Ορισμός άδειας χρήσης με τη βοήθεια της μεθόδου SetLicense
  4. Δώστε πληροφορίες λογαριασμού Exchange Server
  5. Δημιουργήστε ένα αντικείμενο κλάσης NetworkCredential
  6. Δημιουργήστε ένα νέο αντικείμενο προγράμματος-πελάτη Exchange της κλάσης EWSClient
  7. Περιηγηθείτε σε όλα τα μηνύματα email που διαβάσατε από το γραμματοκιβώτιο
  8. Αποθηκεύστε κάθε μεμονωμένο μήνυμα ηλεκτρονικού ταχυδρομείου στο EML or MSG file formats

Ακολουθώντας τα παραπάνω απλά βήματα, μπορείτε να αποθηκεύσετε το μήνυμα email στο EML σε κώδικα C# στο δίσκο. Στο προηγούμενο θέμα μας, εξηγήσαμε το πώς να στείλετε email σε C# χρησιμοποιώντας τον διακομιστή SMTP Gmail. Ωστόσο, σε αυτό το θέμα, χρησιμοποιούμε τον διακομιστή Exchange για να ανακτήσουμε τα μηνύματα ηλεκτρονικού ταχυδρομείου και στη συνέχεια να τα αποθηκεύσουμε στο δίσκο.

Κώδικας για αποθήκευση μηνύματος email στο δίσκο σε C#

using System;
using System.Net;
//Add reference to Aspose.Email for .NET API
//Use following namespaces to save email message to disk
using Aspose.Email.Clients.Exchange;
using Aspose.Email.Clients.Exchange.WebService;
namespace SaveEmailMessageToDisk
{
class Program
{
static void Main(string[] args)
{
//Set license before saving email message to disk
Aspose.Email.License AsposeEmailLicense = new Aspose.Email.License();
AsposeEmailLicense.SetLicense(@"c:\asposelicense\license.lic");
//setup account information
const string MailBoxUri = "https://outlook.office365.com/ews/exchange.asmx";
const string Domain = @"";
const string Username = @"username@outlook.com";
const string Password = @"userpassword";
NetworkCredential CredentiaDetails =
new NetworkCredential(Username, Password, Domain);
//create email client
IEWSClient EmailClient = EWSClient.GetEWSClient(MailBoxUri, CredentiaDetails);
try
{
//get mail box
ExchangeMailboxInfo MailBoxInfo = EmailClient.GetMailboxInfo();
//get list of all messages from the mail box
ExchangeMessageInfoCollection MessagesCollection =
EmailClient.ListMessages(EmailClient.MailboxInfo.InboxUri);
//Loop through email messages
int MessageCount = 1;
foreach (ExchangeMessageInfo MessageInfo in MessagesCollection)
{
string strMessageURI = MessageInfo.UniqueUri;
//get message details
Console.WriteLine("Subject: " + MessageInfo.Subject);
Console.WriteLine("From: " + MessageInfo.From.ToString());
Console.WriteLine("To: " + MessageInfo.To.ToString());
Console.WriteLine("Message ID: " + MessageInfo.MessageId);
Console.WriteLine("Unique URI: " + MessageInfo.UniqueUri);
//save each message to disk
EmailClient.SaveMessage(strMessageURI, "Messsage_" + MessageCount + ".eml");
EmailClient.SaveMessage(strMessageURI, "Messsage_" + MessageCount + ".msg");
MessageCount++;
}
}
catch (Exception ex)
{
Console.WriteLine("Error: {0}", ex.Message);
}
}
}
}

Στον παραπάνω κώδικα, αποθηκεύουμε τα μηνύματα ηλεκτρονικού ταχυδρομείου σε μορφές .eml και .msg. Λάβετε υπόψη ότι σε αυτόν τον κώδικα, λαμβάνουμε όλα τα μηνύματα και τα αποθηκεύουμε ένα προς ένα σε ξεχωριστά αρχεία. Ωστόσο, εάν τα εισερχόμενά σας έχουν πολλά μηνύματα, τότε πρέπει να τροποποιήσετε την προσέγγιση ανάλογα.

 Ελληνικά