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: |
|---|---|
Subject | Předmět zprávy |
Body | Tělo prostého textu |
BodyHtml | Tělo HTML |
SenderName | Název vysílače |
SenderEmailAddress | E-mailová adresa odesílatele |
DisplayTo | Pro příjemce zobrazení řetězce |
DisplayCc | Cc příjemci zobrazení řetězec |
DisplayBcc | Bcc příjemci zobrazení řetězce |
InternetMessageId | RFC 5322 Identifikační kód zprávy |
MessageDeliveryTime | Časová značka dodání |
TransportMessageHeaders | Černé nadpisy RFC 5322 |
AttachFilename | Krátký název souboru přílohy |
AttachLongFilename | Dlouhé jméno souboru přílohy |
AttachMimeTag | Typ MIME přílohy |
AttachContentId | Identifikač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: |
|---|---|
PtypString | Unicode řetěz |
PtypString8 | ANSI řetězce |
PtypInteger32 | 32-bit integer |
PtypInteger64 | 64-bit integer |
PtypBoolean | Boolský |
PtypTime | Datum (FILETIME) |
PtypBinary | Bytové řady |
PtypGuid | GUID |
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é:
- Čtení souborů MSG Nahrát a zkontrolovat soubory MSG
- Konverze EML Konverzovat mezi formáty
- Kontejnery CFB Přístup k binárním kontejnerům nízké úrovně