Ładowanie i parsowanie plików MSG
Korzystając z Aspose.Email dla .NET, programiści mogą wczytywać oraz parsować zawartość plików wiadomości Outlook.
- Aby wczytać pliki MSG z dysku, użyj statycznej MapiMessage.Load metoda MapiMessage klasa. Klasa udostępnia kilka statycznych funkcji ładowania dla różnych scenariuszy.
- Aby sparsować zawartość pliku MSG, MapiMessage udostępnia szereg metod i właściwości.
W tym artykule dowiesz się, jak wczytać i przeanalizować plik MSG, aby wyświetlić jego zawartość. Przykłady kodu wraz z krokami zapewnią jasne zrozumienie, jak zaimplementować funkcjonalność wczytywania i parsowania plików Outlook MSG w Twoim projekcie.
Najpierw dowiedz się, jak wczytywać pliki MSG z pliku lub ze strumienia.
Wczytaj pliki MSG
Poniższy fragment kodu pokazuje, jak wczytać pliki MSG.
// Create an instance of MapiMessage from file
var msg = MapiMessage.Load(@"message.msg");
// Get subject
Console.WriteLine("Subject:" + msg.Subject);
// Get from address
Console.WriteLine("From:" + msg.SenderEmailAddress);
// Get body
Console.WriteLine("Body" + msg.Body);
// Get recipients information
Console.WriteLine("Recipient: " + msg.Recipients);
// Get attachments
foreach (var att in msg.Attachments)
{
Console.Write("Attachment Name: " + att.FileName);
Console.Write("Attachment Display Name: " + att.DisplayName);
}
Poniższy przykład kodu pokazuje, jak użyć MailMessage do wczytania wiadomości w formacie MSG.
var eml = MailMessage.Load("message.msg");
Należy zauważyć, że wynikowa wiadomość jest konwertowana do formatu EML, włącznie z załączonymi wiadomościami. Nie używaj tej metody ładowania, jeśli chcesz zachować niektóre specyficzne właściwości formatu MSG oryginalnej wiadomości.
Aby zachować pierwotny format załączonych wiadomości, użyj msgLoadOptions.PreserveEmbeddedMessageFormat właściwość.
var msgLoadOptions = new MsgLoadOptions();
msgLoadOptions.PreserveEmbeddedMessageFormat = true;
var msg = MailMessage.Load(stream, msgLoadOptions);
Wczytaj ze strumienia
Poniższy fragment kodu pokazuje, jak wczytać plik ze strumienia.
// Create an instance of MapiMessage from file
byte[] bytes = File.ReadAllBytes(@"message.msg");
using (MemoryStream stream = new MemoryStream(bytes))
{
stream.Seek(0, SeekOrigin.Begin);
// Create an instance of MapiMessage from file
MapiMessage msg = MapiMessage.Load(stream);
// Get subject
Console.WriteLine("Subject:" + msg.Subject);
// Get from address
Console.WriteLine("From:" + msg.SenderEmailAddress);
// Get body
Console.WriteLine("Body" + msg.Body);
}
Konwertuj EML do MSG zachowując wbudowany format EML
Pliki EML mogą być wczytane do MapiMessage klasę, tworząc MailMessage obiekt i przekazując go do MapiMessage.FromMailMessage metoda. Jeśli plik EML zawiera osadzone pliki EML, użyj MapiConversionOptions.PreserveEmbeddedMessageFormat aby zachować format osadzonych plików EML. Poniższy fragment kodu pokazuje, jak wczytać pliki EML do MapiMessage z zachowaniem formatu osadzonych plików EML.
// Load the EML file into a MailMessage object
var mailMessage = MailMessage.Load(emlFilePath);
// Set conversion options to preserve the format of embedded EML messages
var options = new MapiConversionOptions
{
PreserveEmbeddedMessageFormat = true
};
// Convert MailMessage to MapiMessage, preserving embedded EML files
var mapiMessage = MapiMessage.FromMailMessage(mailMessage, options);
// Save the converted message in MSG format
mapiMessage.Save(msgFilePath);
Wypróbuj!
Konwertuj e‑maile i archiwa wiadomości online za darmo Aplikacja konwersji Aspose.Email.
Parsuj pliki wiadomości Outlook
Aspose.Email dla .NET zapewnia MapiMessage klasa używana do otwierania i parsowania pliku MSG. Ponieważ w pliku MSG może znajdować się wielu odbiorców, MapiMessage klasa udostępnia Odbiorcy właściwość, która zwraca MapiRecipientCollection który reprezentuje kolekcję MapiRecipient obiekty. The MapiRecipient obiekt dodatkowo udostępnia metody do pracy z atrybutami odbiorców.
Następująca kolejność kroków spełnia ten cel:
- Utwórz instancję MapiMessage klasę przy użyciu MapiMessage.Load metody statycznej.
- Wyświetl nazwę nadawcy, temat i treść z pliku MSG używając SenderName, Subject i Treść właściwości.
- Użyj Odbiorcy właściwość umożliwiająca uzyskanie odniesienia do kolekcji MapiRecipient obiektów powiązanych z plikiem MSG.
- Iteruj przez MapiRecipientCollection kolekcja do wyświetlania zawartości dla każdego MapiRecipient obiekt poprzez jego publiczne metody.
//Instantiate an MSG file to load an MSG file from disk
var outlookMessageFile = MapiMessage.Load(dataDir + "message.msg");
//Display sender's name
Console.WriteLine("Sender Name : " + outlookMessageFile.SenderName);
//Display Subject
Console.WriteLine("Subject : " + outlookMessageFile.Subject);
//Display Body
Console.WriteLine("Body : " + outlookMessageFile.Body);
//Display Recipient's info
Console.WriteLine("Recipients : \n");
//Loop through the recipients collection associated with the MapiMessage object
foreach (var rcp in outlookMessageFile.Recipients)
{
//Display recipient email address
Console.WriteLine("Email : " + rcp.EmailAddress);
//Display recipient name
Console.WriteLine("Name : " + rcp.DisplayName);
//Display recipient type
Console.WriteLine("Recipient Type : " + rcp.RecipientType);
}
Wypróbuj!
Parsuj pliki e‑mail online za darmo Aspose.Email Parser App.