Laddning och parsning av MSG‑filer
Med Aspose.Email för .NET kan utvecklare både läsa in och parsar innehållet från Outlook‑meddelandefiler.
- För att läsa in MSG‑filer från disk, använd den statiska MapiMessage.Load metod för MapiMessage klass. Klassen tillhandahåller flera statiska inläsningsfunktioner för olika scenarier.
- För att analysera innehållet i en MSG‑fil, bör MapiMessage exponerar ett antal metoder och egenskaper.
I den här artikeln kommer du att lära dig hur du läser in och parsar en MSG‑fil för att visa dess innehåll. Kodexemplen med steg ger dig en tydlig förståelse för hur du implementerar funktionaliteten för att läsa in och parsar Outlook MSG‑filer i ditt projekt.
Först, lär dig att läsa in MSG‑filer från fil eller från ström.
Läs in MSG‑filer
Följande kodsnutt visar hur du laddar MSG‑filer.
// 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);
}
Följande kodexempel visar hur man använder MailMessage för att läsa in ett meddelande i MSG‑format.
var eml = MailMessage.Load("message.msg");
Det bör noteras att ett resulterande meddelande konverteras till EML‑format, inklusive inbäddade meddelande‑bilagor. Använd inte denna laddningsmetod om du vill bevara vissa specifika MSG‑formategenskaper i det ursprungliga meddelandet.
För att bevara det ursprungliga formatet på inbäddade meddelande‑bilagor, använd msgLoadOptions.PreserveEmbeddedMessageFormat egenskap.
var msgLoadOptions = new MsgLoadOptions();
msgLoadOptions.PreserveEmbeddedMessageFormat = true;
var msg = MailMessage.Load(stream, msgLoadOptions);
Läs in från ström
Följande kodsnutt visar hur du laddar en fil från ström.
// 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);
}
Konvertera EML till MSG samtidigt som inbäddat EML‑format bevaras
EML‑filer kan laddas in i MapiMessage klass genom att instansiera en MailMessage objekt och skickar det till MapiMessage.FromMailMessage metod. Om EML‑filen innehåller inbäddade EML‑filer, använd MapiConversionOptions.PreserveEmbeddedMessageFormat för att behålla formatet på inbäddade EML‑filer. Nedanstående kodsnutt visar hur man laddar EML‑filer i MapiMessage med bevarande av formatet för inbäddade EML‑filer.
// 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);
Try it out!
Konvertera e‑post och meddelandearkiv online med den kostnadsfria Aspose.Email konverteringsapp.
Parse Outlook‑meddelandefiler
Aspose.Email för .NET tillhandahåller MapiMessage klass som används för att öppna och analysera en MSG‑fil. Eftersom det kan finnas många mottagare i en MSG‑fil, är MapiMessage klassen exponerar Mottagare egenskap som returnerar en MapiRecipientCollection som representerar en samling av MapiRecipient objekt. Den MapiRecipient objektet exponerar ytterligare metoder för att arbeta med mottagarattribut.
Följande sekvens av steg tjänar detta ändamål:
- Skapa en instans av MapiMessage klass med hjälp av MapiMessage.Load statiska metoden.
- Visa avsändarnamn, ämne och meddelandetext från MSG‑filen med hjälp av SenderName, Ämne och Kropp egenskaper.
- Använd Mottagare egenskap för att få en referens till samlingen av MapiRecipient objekt som är associerade med MSG‑filen.
- Loopa igenom MapiRecipientCollection samling för att visa innehållet för varje MapiRecipient objekt via dess publika metoder.
//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);
}
Try it out!
Analysera e‑postfiler online med den fria Aspose.Email Parser App.