MAPI svojstva
MAPI svojstva
Svaka MSG datoteka čuva podatke kao MAPI svojstva — označene parove ključ‑vrednost identifikovane ID‑jem svojstva i kodom tipa. Aspose.Email FOSS za .NET daje direktan pristup tim svojstvima
putem MapiMessage, MapiPropertyCollection i CommonMessagePropertyId enum.
Čitanje svojstava
Својства удобства
MapiMessage izlaže najčešća svojstva kao tipizovana C# svojstva:
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?Необрађени приступ својству
Za svojstva koja nisu izložena kao polja za praktičnost, koristite 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}");Iterirajte sve svojstva
// 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}");
}Svojstva pisanja
Postavite svojstva na novu poruku
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));Директан приступ колекцији
MapiPropertyCollection pruža Add, Set, Get i 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);Уобичајени ID‑еви својства
Enum CommonMessagePropertyId pruža imenovane konstante za često korišćene MAPI ID‑ove svojstava:
| Svojstvo | Opis |
|---|---|
Subject | Tema poruke |
Body | Tekstualno telo poruke |
BodyHtml | HTML telo |
SenderName | Prikazno ime pošiljaoca |
SenderEmailAddress | E‑mail adresa pošiljaoca |
DisplayTo | Prikazni string primaoca (To) |
DisplayCc | Prikazni string primaoca (Cc) |
DisplayBcc | Prikazni string primaoca (Bcc) |
InternetMessageId | RFC 5322 Message-ID |
MessageDeliveryTime | Vreme isporuke |
TransportMessageHeaders | Sirovi RFC 5322 zaglavlja |
AttachFilename | Kratko ime fajla priloga |
AttachLongFilename | Dugo ime fajla priloga |
AttachMimeTag | MIME tip priloga |
AttachContentId | Content-ID priloga |
Кодови типова имовине
Enum PropertyTypeCode mapira MAPI tipove kodova:
| Tip | Opis |
|---|---|
PtypString | Unicode string |
PtypString8 | ANSI string |
PtypInteger32 | 32-bit integer |
PtypInteger64 | 64-bit integer |
PtypBoolean | Boolean |
PtypTime | DateTime (FILETIME) |
PtypBinary | Byte array |
PtypGuid | GUID |
Svojstva priloga
Svaki MapiAttachment takođe ima svoju Properties kolekciju:
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}");
}Види такође
- Čitanje MSG fajlova — Učitajte i pregledajte MSG fajlove
- EML konverzija — Konvertujte između formata
- CFB kontejneri — Pristup binarnom kontejneru niskog nivoa