MAPI savybės
MAPI savybės
Kiekvienas MSG failas saugo duomenis kaip MAPI savybes — žymėtus raktų‑reikšmių poras, identifikuotas pagal
savybės ID ir tipo kodą. Aspose.Email FOSS for .NET suteikia tiesioginę prieigą prie šių savybių
per MapiMessage, MapiPropertyCollection ir CommonMessagePropertyId enum.
Savybių skaitymas
Patogumo savybės
MapiMessage pateikia dažniausiai pasitaikančias savybes kaip tipizuotas C# savybes:
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?Neapdorota savybės prieiga
Savybėms, kurios nėra pateiktos kaip patogumo laukai, naudokite 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}");Iteruoti visas savybes
// 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}");
}Rašymo savybės
Nustatyti savybes naujame pranešime
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));Tiesioginė kolekcijos prieiga
MapiPropertyCollection suteikia Add, Set, Get ir 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);Bendrių savybių ID
CommonMessagePropertyId enum suteikia pavadintus konstantus dažnai naudojamiems MAPI savybių ID:
| Property | Description |
|---|---|
Subject | Žinutės tema |
Body | Grynojo teksto kūnas |
BodyHtml | HTML kūnas |
SenderName | Siuntėjo rodomas vardas |
SenderEmailAddress | Siuntėjo el. pašto adresas |
DisplayTo | Gavėjų rodomas eilutė |
DisplayCc | Cc gavėjų rodomas eilutė |
DisplayBcc | Bcc gavėjų rodomas eilutė |
InternetMessageId | RFC 5322 Message-ID |
MessageDeliveryTime | Pristatymo laiko žyma |
TransportMessageHeaders | Žali RFC 5322 antraštės |
AttachFilename | Trumpas priedo failo pavadinimas |
AttachLongFilename | Ilgas priedo failo pavadinimas |
AttachMimeTag | Priedo MIME tipas |
AttachContentId | Priedo Content-ID |
Turto tipų kodai
PropertyTypeCode enum susieja MAPI tipo kodus:
| Tipas | Aprašymas |
|---|---|
PtypString | Unicode string |
PtypString8 | ANSI string |
PtypInteger32 | 32-bit integer |
PtypInteger64 | 64-bit integer |
PtypBoolean | Boolean |
PtypTime | DateTime (FILETIME) |
PtypBinary | Byte array |
PtypGuid | GUID |
Priedo savybės
Kiekvienas MapiAttachment taip pat turi savo Properties kolekciją:
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}");
}Žr. taip pat
- MSG failų skaitymas — Įkelti ir peržiūrėti MSG failus
- EML konvertavimas — Konvertuoti tarp formatų
- CFB konteineriai — Žemo lygio dvejetainio konteinerio prieiga