MAPI-Eigenschaften
MAPI-Eigenschaften
Jede MSG-Datei speichert Daten als MAPI-Eigenschaften mit einem Schlüssel identifizierte Key-Wertpaare. Eigentums-ID und Typcode. Aspose.Email FOSS für .NET gibt direkten Zugriff auf diese Eigenschaften durch MapiMessage, MapiPropertyCollection, und die CommonMessagePropertyId - Ich weiß.
Lesegestaltungen
Bequemlichkeitsmerkmale
MapiMessage zeigt die häufigsten Eigenschaften als C#-Eigenschaftstypen:
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?Zugang zu Rohmaterial
Für Eigenschaften, die nicht als Komfortfelder ausgestellt sind, Verwendung 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}");Iteration aller Eigenschaften
// 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}");
}Schreib-Eigenschaften
Eigenschaften für eine neue Nachricht festlegen
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));Direktes Sammeln von Informationen
MapiPropertyCollection stellt vor, Add, Set, Get,und . 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);Identifizierungsnummern für die Gemeinbesitzrechte
Die CommonMessagePropertyId enum stellt benannte Konstanten für häufig verwendete MAPI bereit. Eigentums-ID:
| Immobilien und Vermögenswerte | Beschreibung |
|---|---|
Subject | Nachrichtensubjekt |
Body | Textkörper in einfacher Form |
BodyHtml | HTML-Bildkörper |
SenderName | Zusender-Anzeigenname |
SenderEmailAddress | E-Mail Adresse des Absenders |
DisplayTo | Anzeigen von Empfängern String |
DisplayCc | Cc-Empfänger anzeigen Zeichenfolge |
DisplayBcc | Bcc-Empfänger anzeigen Zeichenfolge |
InternetMessageId | RFC 5322 Nachricht-ID |
MessageDeliveryTime | Lieferzeitstempel |
TransportMessageHeaders | Roh-RFC 5322 - Überschriften |
AttachFilename | Kurzer Dateiname für Anlagen |
AttachLongFilename | Lange Dateiname für Anhänge |
AttachMimeTag | MIME-Typ der Anlage |
AttachContentId | Anlage-Inhalt-ID |
Eigentumsartcodes
Die PropertyTypeCode enum maps MAPI-Typcodes:
| Typ der | Beschreibung |
|---|---|
PtypString | Unicode-Zeichenzeichen |
PtypString8 | ANSI-Streifen |
PtypInteger32 | 32-bit integer |
PtypInteger64 | 64-bit integer |
PtypBoolean | Booleanische Form |
PtypTime | Datum und Uhrzeit (FILETIME) |
PtypBinary | Byte-Array (Byte-Sortiment) |
PtypGuid | GUID |
Anhaftungsmerkmale
Jeder von ihnen MapiAttachment hat auch seine eigene Properties Sammlung:
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}");
}Siehe auch:
- MSG-Dateien lesen MSG-Dateien laden und überprüfen
- Umwandlung der EML-Klasse Konvertieren zwischen Formaten
- CFB-Container für die Luftfahrt Zugang zu binären Containern auf niedriger Ebene