
- Kategorie MAPI vlastností
- Seznam všech MAPI vlastností
- Seznam pojmenovaných MAPI vlastností
- Načítání vlastností podle popisu
- Načítání vlastností podle značky
- Použití metody GetProperty
- Práce s vlastními vlastnostmi
Správa e-mailových dat programově může být složitá, zejména při práci s vlastnostmi rozhraní pro programování aplikací pro zasílání zpráv (MAPI). Tyto vlastnosti jsou atributy nebo metadata spojená s MAPI objekty, jako jsou zprávy, složky, příjemci a další komponenty v systému zasílání zpráv. Tyto vlastnosti poskytují podrobné informace o objektu, jako je předmět e-mailu, adresa odesílatele, datum, kdy byl e-mail odeslán, a další. MAPI vlastnosti se široce používají v e-mailových klientech a dalších aplikacích pro zasílání zpráv k správě a manipulaci s e-mailovými daty. Tento článek se zabývá různými technikami přístupu, enumerace a manipulace s MAPI vlastnostmi pomocí Aspose.Email pro .NET.
.NET API pro správu MAPI vlastností v C#
Aspose.Email pro .NET poskytuje komplexní podporu pro zpracování vlastností rozhraní pro programování aplikací pro zasílání zpráv, což umožňuje vývojářům spravovat a manipulovat s e-mailovými daty s podrobnou kontrolou. Je to také rozsáhlé API, které umožňuje vývojářům vybavit své e-mailové aplikace robustními funkcemi pro zpracování zpráv a další související úkoly.
Pomocí Aspose.Email pro .NET mohou vývojáři vytvářet sofistikovaná řešení pro správu a zpracování e-mailu. Chcete-li začít využívat knihovnu, můžete si ji stáhnout z webu Aspose nebo NuGet a integrovat ji do svého projektu.
Kategorie MAPI vlastností
Ujistěte se, že máte Aspose.Email ve svém projektu a pojďme začít. MAPI vlastnosti lze rozdělit do tří hlavních typů: standardní vlastnosti, pojmenované vlastnosti a vlastní (uživatelsky definované) vlastnosti. Každá kategorie slouží jinému účelu a poskytuje různé úrovně flexibility a kontroly pro vývojáře pracující s e-mailovými daty. Zde je přehled každého typu:
Standardní vlastnosti
Definované specifikací MAPI, mají předdefinované značky vlastností a běžně se používají pro standardní atributy zasílacích objektů. Například:
- PR_SUBJECT: Předmět zprávy.
- PR_SENDER_NAME: Jméno odesílatele.
- PR_DELIVER_TIME: Datum a čas, kdy byla původní zpráva doručena.
Pojmenované vlastnosti
Identifikované GUID a řetězcovým názvem nebo celočíselným identifikátorem, tyto vlastnosti umožňují konkrétnější kategorizaci a identifikaci nad rámec standardních vlastností.
Vlastní (uživatelsky definované) vlastnosti
Definované vývojáři, rozšiřují funkčnost MAPI objektů, což umožňuje přizpůsobené a aplikací specifické zpracování dat.
Seznam všech MAPI vlastností
Chcete-li vypsat všechny MAPI vlastnosti ve zprávě, použijeme metodu MapiMessage.Load k načtení zprávy a iteraci přes její vlastnosti. Následující ukázka kódu demonstruje, jak načíst MAPI zprávu, iterovat přes její vlastnosti a tisknout podrobné informace o každé vlastnosti pomocí Aspose.Email pro .NET:
- Načtěte MAPI zprávu z určené cesty.
- Iterujte přes kolekci
msg.Properties.Values
, abyste přistupovali k jednotlivým vlastnostem. - Pro každou MAPI vlastnost vytiskněte její značku, kanonické jméno a datový typ:
- Tag vlastnost poskytuje jedinečný identifikátor pro MAPI vlastnost.
- Descriptor.CanonicalName vlastnost dává čitelný název vlastnosti.
- Descriptor.DataType vlastnost označuje datový typ vlastnosti.
// Load the email message from a file | |
var msg = MapiMessage.Load(@"D:\Aspose\Files\msg\test.msg"); | |
// Iterate through all MAPI properties and print their details | |
foreach (var mapiProperty in msg.Properties.Values) | |
{ | |
Console.WriteLine($"Tag: {mapiProperty.Tag}"); | |
Console.WriteLine($"Canonical Name: {mapiProperty.Descriptor.CanonicalName}"); | |
Console.WriteLine($"Data Type: {mapiProperty.Descriptor.DataType}"); | |
} |
Seznam pojmenovaných MAPI vlastností
Zatímco běžné MAPI vlastnosti jsou identifikovány 16bitovou značkou vlastností, která se skládá z typu vlastnosti a identifikátoru vlastnosti, pojmenované vlastnosti jsou identifikovány kombinací GUID a buď řetězcového názvu, nebo celočíselného identifikátoru:
- GUID (Globálně jedinečný identifikátor): Jedinečný identifikátor, který zajišťuje, že je sada vlastností jedinečná. Tento GUID obvykle poskytuje vývojář.
- Název nebo ID:
- Řetězcový název (citlivý na velikost písmen).
- 32bitový celočíselný identifikátor.
Následující úryvek kódu ukazuje, jak použít Aspose.Email pro .NET k iteraci přes pojmenované MAPI vlastnosti zprávy a tisknout podrobné informace na základě typu popisu vlastnosti:
- Iterujte přes každou pojmenovanou vlastnost přístupem k kolekci ‘NamedProperties.Values’ načteného MapiMessage objektu, abyste získali všechny pojmenované MAPI vlastnosti.
- Zkontrolujte, zda je popis aktuální pojmenované vlastnosti typu PidNamePropertyDescriptor. Pokud ano, přetypujte popis na PidNamePropertyDescriptor. Vytiskněte GUID, kanonické jméno a datový typ vlastnosti.
- Zkontrolujte, zda je popis aktuální pojmenované vlastnosti typu PidLidPropertyDescriptor. Pokud ano, přetypujte popis na PidLidPropertyDescriptor. Vytiskněte GUID, kanonické jméno, dlouhé ID a datový typ vlastnosti.
foreach (MapiNamedProperty mapiNamedProperty in msg.NamedProperties.Values) | |
{ | |
if (mapiNamedProperty.Descriptor is PidNamePropertyDescriptor pidNamePropertyDescriptor) | |
{ | |
Console.WriteLine($"GUID: {pidNamePropertyDescriptor.PropertySet}"); | |
Console.WriteLine($"Canonical Name: {pidNamePropertyDescriptor.CanonicalName}"); | |
Console.WriteLine($"Data Type: {pidNamePropertyDescriptor.DataType}"); | |
} | |
if (mapiNamedProperty.Descriptor is PidLidPropertyDescriptor pidLidPropertyDescriptor) | |
{ | |
Console.WriteLine($"GUID: {pidLidPropertyDescriptor.PropertySet}"); | |
Console.WriteLine($"Canonical Name: {pidLidPropertyDescriptor.CanonicalName}"); | |
Console.WriteLine($"Long ID: {pidLidPropertyDescriptor.LongId}"); | |
Console.WriteLine($"Data Type: {pidLidPropertyDescriptor.DataType}"); | |
} | |
} |
Tímto způsobem jsme vytiskli specifické atributy jako PropertySet
, CanonicalName
, DataType
a LongId
v závislosti na typu popisu (PidNamePropertyDescriptor
nebo PidLidPropertyDescriptor
).
Načítání vlastností podle popisu
Načítání vlastností podle popisu je přímočarý způsob přístupu k konkrétním MAPI vlastnostem, aniž byste museli iterovat přes celou kolekci vlastností. Aspose.Email pro .NET poskytuje pohodlný způsob, jak načítat vlastnosti pomocí KnownPropertyList. Následující ukázka kódu demonstruje, jak načíst a vytisknout podrobnosti o konkrétní vlastnosti, jako je InternetMessageId, pokud existuje.
- Přistupte k vlastnosti InternetMessageId z kolekce vlastností objektu MapiMessage pomocí KnownPropertyList.
- Ověřte, že vlastnost není null, abyste zajistili, že existuje ve zprávě.
- Vytiskněte podrobnosti o načtené vlastnosti: značku, kanonické jméno a datový typ.
- Pokud je datový typ vlastnosti řetězec, použijte metodu GetString k načtení hodnoty vlastnosti a vytiskněte ji.
// Retrieve and print the InternetMessageId property if it exists | |
if (msg.Properties[KnownPropertyList.InternetMessageId] != null) | |
{ | |
var property = msg.Properties[KnownPropertyList.InternetMessageId]; | |
Console.WriteLine($"Tag: {property.Tag}"); | |
Console.WriteLine($"Canonical Name: {property.Descriptor.CanonicalName}"); | |
Console.WriteLine($"Data Type: {property.Descriptor.DataType}"); | |
// Retrieve and print the property value if it is a string | |
if (property.Descriptor.DataType == PropertyDataType.String) | |
{ | |
var propertyValue = property.GetString(); | |
Console.WriteLine($"Value: {propertyValue}"); | |
} | |
} |
Načítání vlastností podle značky
Značka vlastnosti je 32bitový identifikátor, který jedinečně identifikuje MAPI vlastnost. Skládá se z ID vlastnosti a typu vlastnosti. Pomocí značek vlastností můžete přímo přistupovat k konkrétním vlastnostem uvnitř MAPI zprávy. Následující ukázka kódu demonstruje, jak načíst a vytisknout podrobnosti o konkrétní vlastnosti, jako je PR_HASATTACH, pokud existuje.
- Použijte MapiPropertyTag k přímému přístupu k vlastnosti PR_HASATTACH z kolekce vlastností objektu MapiMessage.
- Ověřte, že vlastnost není null, abyste zajistili, že existuje ve zprávě.
- Vytiskněte podrobnosti o načtené vlastnosti: značku a datový typ.
- Pokud je datový typ vlastnosti boolean, použijte metodu GetBoolean k načtení hodnoty vlastnosti a vytiskněte, zda má zpráva přílohy.
// Retrieve and print the PR_HASATTACH property if it exists | |
if (msg.Properties[MapiPropertyTag.PR_HASATTACH] != null) | |
{ | |
var property = msg.Properties[MapiPropertyTag.PR_HASATTACH]; | |
Console.WriteLine($"Tag: {property.Tag}"); | |
Console.WriteLine($"Data Type: {property.DataType}"); | |
// Retrieve and print the property value if it is a boolean | |
if (property.DataType == (int)MapiPropertyType.PT_BOOLEAN) | |
{ | |
var propertyValue = property.GetBoolean(); | |
Console.WriteLine($"Has Attachments: {propertyValue}"); | |
} | |
} |
Použití metody GetProperty
Metoda GetProperty zjednodušuje proces načítání jak běžných, tak pojmenovaných vlastností z MAPI zprávy. Tato metoda vám umožňuje přímo přistupovat k vlastnosti podle jejího popisu nebo značky, aniž byste museli ručně kontrolovat kolekci vlastností. Následující ukázka kódu demonstruje, jak využít metodu GetProperty k přístupu k konkrétním MAPI vlastnostem:
- Použijte metodu GetProperty k přímému přístupu k vlastnosti CurrentVersionName z třídy KnownPropertyList.
- Ověřte, že vlastnost není null, abyste zajistili, že existuje ve zprávě.
- Použijte metodu GetString k načtení hodnoty vlastnosti a vytiskněte ji.
// Retrieve and print the CurrentVersionName property | |
var namedProperty = msg.GetProperty(KnownPropertyList.CurrentVersionName); | |
if (namedProperty != null) | |
{ | |
Console.WriteLine($"Current Version Name: {namedProperty.GetString()}"); | |
} |
Zde je GetProperty
použito k přístupu k vlastnosti CurrentVersionName
přímo.
Práce s vlastními vlastnostmi
Vlastní MAPI vlastnosti jsou další vlastnosti, které nejsou součástí předdefinované sady MAPI vlastností. Jsou vytvořeny pro uchovávání dat specifických pro aplikaci a jsou definovány vývojářem. Tím, že umožňují vývojářům definovat a používat další vlastnosti, MAPI poskytuje flexibilní a výkonný způsob, jak ukládat a spravovat vlastní data v rámci aplikací pro zasílání zpráv. Vlastní vlastnosti jsou pojmenované vlastnosti (používají GUID a řetězcový název). Aspose.Email zavádí přístup, který můžete použít k načtení všech vlastních vlastností definovaných ve zprávě. Toho je dosaženo pomocí metody GetCustomProperties. Následující ukázka kódu demonstruje, jak načíst a vytisknout všechny vlastní vlastnosti definované v MAPI zprávě:
- Použijte metodu GetCustomProperties k získání kolekce všech vlastních vlastností definovaných ve zprávě.
- Iterujte přes každou vlastní vlastnost v načtené kolekci.
- Vytiskněte podrobnosti o vlastnosti: značku, kanonické jméno a datový typ.
// Retrieve and print custom properties | |
var customProperties = msg.GetCustomProperties(); | |
foreach (var customProperty in customProperties) | |
{ | |
Console.WriteLine($"Tag: {customProperty.Tag}"); | |
Console.WriteLine($"Canonical Name: {customProperty.Descriptor.CanonicalName}"); | |
Console.WriteLine($"Data Type: {customProperty.Descriptor.DataType}"); | |
} |
Závěr
Tento článek prozkoumal různé techniky přístupu, enumerace a manipulace s MAPI vlastnostmi pomocí Aspose.Email pro .NET. Aspose.Email poskytuje komplexní podporu pro zpracování těchto vlastností, což umožňuje vývojářům spravovat a manipulovat s e-mailovými daty s podrobnou kontrolou. Použitím této knihovny mohou vývojáři vytvářet sofistikovaná řešení pro správu a zpracování e-mailu, což usnadňuje práci se standardními, pojmenovanými a vlastními vlastnostmi.
Kromě toho Aspose.Email poskytuje komplexní dokumentaci, rozsáhlou referenci API a různé bezplatné online nástroje a aplikace, které zlepší váš vývojový proces. Vývojáři mohou také přistupovat k bezplatnému podpůrnému fóru pro komunitní pomoc a názory a být informováni o nejnovějších tipech a tutoriálech prostřednictvím Aspose blogu. Tyto zdroje jsou neocenitelné pro maximalizaci potenciálu knihovny ve vašich projektech.