MAPI īpašības
MAPI īpašības
Katrs MSG fails saglabā datus kā MAPI īpašības — marķētas atslēga‑vērtība pāri, kas identificēti ar īpašības ID un tipa kodu. Aspose.Email FOSS for .NET nodrošina tiešu piekļuvi šīm īpašībām caur MapiMessage, MapiPropertyCollection un CommonMessagePropertyId enum.
Īpašību nolasīšana
Ērtības īpašības
MapiMessage atklāj visbiežāk izmantotās īpašības kā tipizētas C# īpašības:
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?Neapstrādāta īpašības piekļuve
Īpašībām, kas nav pieejamas kā ērtības lauki, izmantojiet 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}");Iterēt visas īpašības
// 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}");
}Rakstīšanas īpašības
Iestatīt īpašības jaunam ziņojumam
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));Tieša kolekcijas piekļuve
MapiPropertyCollection nodrošina Add, Set, Get un 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);Kopējie īpašuma ID
CommonMessagePropertyId enum nodrošina nosauktus konstantus bieži izmantotām MAPI īpašību ID:
| Property | Description |
|---|---|
Subject | Ziņas temats |
Body | Vienkāršā teksta ķermenis |
BodyHtml | HTML ķermenis |
SenderName | Sūtītāja parādāmais vārds |
SenderEmailAddress | Sūtītāja e-pasta adrese |
DisplayTo | Saņēmēju “To” parādāmais virkne |
DisplayCc | Saņēmēju “Cc” parādāmais virkne |
DisplayBcc | Saņēmēju “Bcc” parādāmais virkne |
InternetMessageId | RFC 5322 ziņas ID |
MessageDeliveryTime | Piegādes laika zīmogs |
TransportMessageHeaders | Neapstrādātās RFC 5322 galvenes |
AttachFilename | Īss pievienojuma faila nosaukums |
AttachLongFilename | Garš pievienojuma faila nosaukums |
AttachMimeTag | Pievienojuma MIME tips |
AttachContentId | Pievienojuma Content-ID |
Īpašuma tipa kodi
PropertyTypeCode enum kartē MAPI tipa kodus:
| Tips | Apraksts |
|---|---|
PtypString | Unicode virkne |
PtypString8 | ANSI virkne |
PtypInteger32 | 32‑bitu vesels skaitlis |
PtypInteger64 | 64‑bitu vesels skaitlis |
PtypBoolean | Būla vērtība |
PtypTime | Datuma/laiks (FILETIME) |
PtypBinary | Baitu masīvs |
PtypGuid | GUID |
Pielikuma īpašības
Katram MapiAttachment arī ir sava Properties kolekcija:
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}");
}Skatīt arī
- Reading MSG Files — Ielādēt un pārbaudīt MSG failus
- EML Conversion — Konvertēt starp formātiem
- CFB Containers — Zema līmeņa binārā konteineru piekļuve