Работа с MAPI свойства
Достъп и задаване на Outlook MAPI свойство
Класът MapiProperty представлява MAPI свойство, което съдържа:
- Name: низ, представляващ името на свойството.
- Tag: дълъг тип, представляващ етикета на свойството.
- Data: масив от байтове, представляващ данните на свойството.
Получаване на MAPI свойство чрез MAPI етикет
За получаване на MAPI свойства:
- Създайте екземпляр на MapiMessage, като го заредите от файлове или поток.
- Получете MapiProperty от MapiMessage.Properties по ключовете MapiPropertyTag.
- Получете данните на MapiProperty чрез метода GetX.
Следният кодов откъс показва как да получите MAPI свойство, използвайки MAPI етикет.
Задаване на MAPI свойства
Следният кодов фрагмент показва как да зададете MAPI свойства.
където дефиницията на метода convertDateTime е както следва:
Четене на именовани MAPI свойства от Outlook MSG файлове
Aspose.Email предоставя набор от API за работа с MSG файлове, включително извличане на именовани MAPI свойства.
Прочетете именовани MAPI свойства от MSG файл
За да прочетете именовани MAPI свойства, можем да използваме свойството named_properties на MapiMessage клас. Следният примерен код показва как да се зареди съобщение, извлекат всички именовани MAPI свойства, и да се обходи всяко свойство за проверка на стойността му:
import aspose.email as ae
msg = ae.mapi.MapiMessage.load("my.msg")
# Get all named MAPI properties
properties = msg.named_properties.values
# Read all properties in foreach loop
for prop in properties:
# Read any specific property
if prop.descriptor.canonical_name == "PidLidSideEffects":
print(f"{prop.descriptor.canonical_name} = {prop}")
if prop.descriptor.canonical_name == "PidLidInternetAccountName":
print(f"{prop.descriptor.canonical_name} = {prop}")
Четене на именовано MAPI свойство от прикачен файл
Aspose.Email прави възможно извличането на всички именовани MAPI свойства на прикачен файл. Следният примерен код показва как да се прочетат именовани MAPI свойства от прикачени файлове:
import aspose.email as ae
msg = ae.mapi.MapiMessage.load("my.msg")
# Get all named MAPI properties
attach_properties = msg.attachments[0].named_properties.values
# Read all properties in foreach loop
for prop in attach_properties:
# Read any specific property
if prop.descriptor.name == "AttachmentOriginalUrl":
print(f"{prop.descriptor.name} = {prop.get_string()}")
if prop.descriptor.name == "AttachmentWasSavedToCloud":
print(f"{prop.descriptor.name} = {prop.get_boolean()}")
Премахване на свойства от MSG файлове и прикачени файлове
Този примерен код демонстрира създаването на Outlook MSG съобщение с основно съдържание и прикачен файл с съобщение. Той също показва как да изтриете свойство за прикачен файл от създаденото съобщение.
import aspose.email as ae
# create an MSG
msg = ae.mapi.MapiMessage("from@doamin.com", "to@domain.com", "subject", "body");
msg.set_body_content("<html><body><h1>This is the body content</h1></body></html>", ae.mapi.BodyContentType.HTML)
# load message and add it to created MSG as attachment
attachment = ae.mapi.MapiMessage.load(attach.msg")
msg.attachments.add("Outlook2 Test subject.msg", attachment)
# count of attachment properties before removal
print(f"Before removal = {msg.attachments[0].properties.count}")
# Delete anyone attachment property
msg.attachments[0].remove_property(923467779)
# count of attachment properties after removal
print(f"Before removal = {msg.attachments[0].properties.count}")