Vlastnosti MAPI

Vlastnosti MAPI

Každý soubor MSG ukládá data jako vlastnosti MAPI označené páry klíčových hodnot identifikované pomocí ID vlastností a kód typu. Aspose.Email FOSS pro .NET poskytuje přímý přístup k těmto vlastnostem přes MapiMessage, MapiPropertyCollection, a CommonMessagePropertyId - Ano, ano.


Vlastnosti čtení

Příjemné vlastnosti

MapiMessage odhaluje nejběžnější vlastnosti jako typované C# vlastnosti:

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?

Přístup k surovému majetku

U nemovitostí, které nejsou vystaveny jako pole pro pohodlí, použití: 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}");

Iterovat všechny vlastnosti

// List all property keys (ID + type pairs)
foreach (var (propId, propType) in message.IterPropertyKeys())
    Console.WriteLine($"Property: 0x{propId:X4} (type: 0x{propType:X4})");

// 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}");
}

Vlastnosti psaní

Nastavit vlastnosti na novou zprávu

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));

Přímý přístup k sbírce

MapiPropertyCollection poskytuje: Add, Set, Get,a) 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);

Identifikační čísla společného majetku

Úřad pro bezpečnost a ochranu zdraví CommonMessagePropertyId enum poskytuje jmenované konstanty pro často používané MAPI Identifikační čísla majetku:

VlastnictvíPopis:
SubjectPředmět zprávy
BodyTělo prostého textu
BodyHtmlTělo HTML
SenderNameNázev vysílače
SenderEmailAddressE-mailová adresa odesílatele
DisplayToPro příjemce zobrazení řetězce
DisplayCcCc příjemci zobrazení řetězec
DisplayBccBcc příjemci zobrazení řetězce
InternetMessageIdRFC 5322 Identifikační kód zprávy
MessageDeliveryTimeČasová značka dodání
TransportMessageHeadersČerné nadpisy RFC 5322
AttachFilenameKrátký název souboru přílohy
AttachLongFilenameDlouhé jméno souboru přílohy
AttachMimeTagTyp MIME přílohy
AttachContentIdIdentifikační kód obsahu přílohy

Kody typu nemovitosti

Úřad pro bezpečnost a ochranu zdraví PropertyTypeCode enum maps MAPI typoví kódy:

Typ:Popis:
PtypStringUnicode řetěz
PtypString8ANSI řetězce
PtypInteger3232-bit integer
PtypInteger6464-bit integer
PtypBooleanBoolský
PtypTimeDatum (FILETIME)
PtypBinaryBytové řady
PtypGuidGUID

Vlastnosti připojení

Každá. MapiAttachment má také své vlastní. Properties Sbírka:

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}");
}

Viz také:

 Čeština