MAPI‑egenskaper
MAPI-egenskaper
Hver MSG-fil lagrer data som MAPI‑egenskaper — merkede nøkkel‑verdipar identifisert av en
egenskaps‑ID og typekode. Aspose.Email FOSS for .NET gir direkte tilgang til disse egenskapene gjennom MapiMessage, MapiPropertyCollection, og CommonMessagePropertyId‑enum.
Lese egenskaper
Praktiske egenskaper
MapiMessage eksponerer de mest vanlige egenskapene som typede C#‑egenskaper:
using Aspose.Email.Foss.Msg;
using var message = MapiMessage.FromFile("sample.msg");
Console.WriteLine(message.Subject); // string?
Console.WriteLine(message.Body); // string?
Console.WriteLine(message.HtmlBody); // string?
Console.WriteLine(message.SenderName); // string?
Console.WriteLine(message.SenderEmailAddress); // string?
Console.WriteLine(message.InternetMessageId); // string?
Console.WriteLine(message.MessageDeliveryTime); // DateTime?
Console.WriteLine(message.MessageClass); // string?Rå egenskapstilgang
For egenskaper som ikke er eksponert som praktiske felter, bruk GetPropertyValue:
// Read a string property by ID and type
var displayTo = message.GetPropertyValue(
(ushort)CommonMessagePropertyId.DisplayTo,
(ushort)PropertyTypeCode.PtypString,
decode: true);
Console.WriteLine($"Display To: {displayTo}");Iterer alle egenskaper
// List all property keys (ID + type pairs)
foreach (var key in message.IterPropertyKeys())
Console.WriteLine($"Property: 0x{key:X8}");
// Iterate full property objects
foreach (var prop in message.IterProperties())
{
Console.WriteLine($"ID=0x{prop.PropertyId:X4} " +
$"Type=0x{prop.PropertyType:X4} " +
$"Tag=0x{prop.PropertyTag:X8} " +
$"Value={prop.Value}");
}Skriveegenskaper
Angi egenskaper på en ny melding
var message = MapiMessage.Create("Test", "Body");
message.SetProperty(
(ushort)CommonMessagePropertyId.SenderName,
(ushort)PropertyTypeCode.PtypString,
"Alice");
message.SetProperty(
(ushort)CommonMessagePropertyId.SenderEmailAddress,
(ushort)PropertyTypeCode.PtypString,
"alice@example.com");
message.SetProperty(
(ushort)CommonMessagePropertyId.MessageDeliveryTime,
(ushort)PropertyTypeCode.PtypTime,
new DateTime(2026, 3, 15, 10, 30, 0, DateTimeKind.Utc));Direkte tilgang til samling
MapiPropertyCollection gir Add, Set, Get og Remove:
// Access the property collection
var props = message.Properties;
// Add a property
props.Add(
(ushort)CommonMessagePropertyId.InternetCodepage,
(ushort)PropertyTypeCode.PtypInteger32,
65001, // UTF-8
flags: 0);
// Read it back
var codepage = props.Get(
(ushort)CommonMessagePropertyId.InternetCodepage,
(ushort)PropertyTypeCode.PtypInteger32);
Console.WriteLine($"Codepage: {codepage?.Value}");
// Remove a property
props.Remove(
(ushort)CommonMessagePropertyId.InternetCodepage,
(ushort)PropertyTypeCode.PtypInteger32);Felles egenskaps‑IDer
CommonMessagePropertyId-enumet gir navngitte konstanter for ofte brukte MAPI‑egenskaps‑ID‑er:
| Property | Description |
|---|---|
Subject | Meldingsemne |
Body | Ren tekstkropp |
BodyHtml | HTML‑kropp |
SenderName | Avsenders visningsnavn |
SenderEmailAddress | Avsenders e‑postadresse |
DisplayTo | Visningsstreng for til‑mottakere |
DisplayCc | Visningsstreng for cc‑mottakere |
DisplayBcc | Visningsstreng for bcc‑mottakere |
InternetMessageId | RFC 5322 Message-ID |
MessageDeliveryTime | Leveringstidspunkt |
TransportMessageHeaders | Rå RFC 5322‑overskrifter |
AttachFilename | Kort vedleggsfilnavn |
AttachLongFilename | Langt vedleggsfilnavn |
AttachMimeTag | Vedleggs MIME‑type |
AttachContentId | Vedleggs Content-ID |
Eiendomstypekoder
PropertyTypeCode-enumet kartlegger MAPI-typekoder:
| Type | Description |
|---|---|
PtypString | Unicode‑streng |
PtypString8 | ANSI‑streng |
PtypInteger32 | 32‑bits heltall |
PtypInteger64 | 64‑bits heltall |
PtypBoolean | Boolsk |
PtypTime | DateTime (FILETIME) |
PtypBinary | Byte‑array |
PtypGuid | GUID |
Egenskaper for vedlegg
Hver MapiAttachment har også sin egen Properties-samling:
foreach (var attachment in message.Attachments)
{
Console.WriteLine($"Attachment: {attachment.Filename}");
foreach (var prop in attachment.Properties.IterProperties())
Console.WriteLine($" 0x{prop.PropertyTag:X8} = {prop.Value}");
}Se også
- Lese MSG-filer — Last inn og inspiser MSG-filer
- EML-konvertering — Konverter mellom formater
- CFB-beholdere — Lavnivå binær beholdertilgang