Laden en parseren van MSG‑bestanden
Met Aspose.Email voor .NET kunnen ontwikkelaars de inhoud van Outlook‑berichtbestanden laden en parseren.
- Om MSG‑bestanden van schijf te laden, gebruik de statische MapiMessage.Load methode van de MapiMessage klasse. De klasse biedt verschillende statische laadfuncties voor verschillende scenario’s.
- Om de inhoud van een MSG‑bestand te parseren, moet u de MapiMessage kent een aantal methoden en eigenschappen.
In dit artikel leer je hoe je een MSG‑bestand laadt en parseert om de inhoud weer te geven. De codevoorbeelden met stappen geven je een duidelijk begrip van hoe je de functionaliteit voor het laden en parseren van Outlook‑MSG‑bestanden in je project implementeert.
Leer eerst hoe je MSG‑bestanden laadt vanuit een bestand of vanuit een stream.
Laad MSG‑bestanden
De volgende codefragment laat zien hoe MSG-bestanden te laden.
// 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);
}
Het volgende code‑voorbeeld toont hoe MailMessage te gebruiken om een bericht in MSG‑formaat te laden.
var eml = MailMessage.Load("message.msg");
Het moet worden opgemerkt dat een resulterend bericht wordt geconverteerd naar EML-formaat, inclusief ingebedde berichtbijlagen. Gebruik deze laadmethode niet als je specifieke MSG-formateigenschappen van het oorspronkelijke bericht wilt behouden.
Om het oorspronkelijke formaat van ingebedde berichtbijlagen te behouden, gebruik de msgLoadOptions.PreserveEmbeddedMessageFormat eigenschap.
var msgLoadOptions = new MsgLoadOptions();
msgLoadOptions.PreserveEmbeddedMessageFormat = true;
var msg = MailMessage.Load(stream, msgLoadOptions);
Laad vanaf stream
Het volgende codefragment laat zien hoe u een bestand uit een stream laadt.
// 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);
}
Converteer EML naar MSG met behoud van ingebed EML‑formaat
EML-bestanden kunnen worden geladen in MapiMessage klasse door een MailMessage object en dit doorgeven aan MapiMessage.FromMailMessage methode. Als het EML-bestand ingebedde EML-bestanden bevat, gebruik dan MapiConversionOptions.PreserveEmbeddedMessageFormat om het formaat van ingebedde EML-bestanden te behouden. De onderstaande codefragment toont hoe EML-bestanden te laden in MapiMessage terwijl het formaat van ingebedde EML-bestanden behouden blijft.
// 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);
Probeer het uit!
E‑mails en berichtarchieven online converteren met de gratis Aspose.Email Conversie‑app.
Parse Outlook‑berichtbestanden
Aspose.Email voor .NET biedt de MapiMessage klasse die wordt gebruikt om een MSG‑bestand te openen en te parseren. Aangezien er veel ontvangers in een MSG‑bestand kunnen zijn, de MapiMessage klasse exposeert de Ontvangers eigenschap die een MapiRecipientCollection die een collectie van MapiRecipient objecten. De MapiRecipient object biedt verder methoden om met attributen van ontvangers te werken.
De volgende reeks stappen dient dit doel:
- Maak een instantie van de MapiMessage klasse met behulp van de MapiMessage.Load statische methode.
- Geef de afzendernaam, het onderwerp en de inhoud weer uit het MSG‑bestand met behulp van SenderName, Subject en Body eigenschappen.
- Gebruik de Ontvangers eigenschap om een referentie naar de collectie van MapiRecipient objecten die bij het MSG‑bestand horen.
- Loop door de MapiRecipientCollection collectie om de inhoud van elk MapiRecipient object via zijn publieke methoden.
//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);
}
Probeer het uit!
Parse e‑mailbestanden online met de gratis Aspose.Email Parser App.