MapiConversionOptions.setPreserveEmptyDates(boolean)

Určení typu MAPI položky ve složce PST

PST soubor typicky obsahuje různé typy dat, jako jsou e‑mailové zprávy, kalendářní události, kontakty a další. MapiItemType třída Aspose.Email vám umožňuje přístup a kategorizaci různých typů MAPI položek v PST souboru. Níže uvedený kód demonstruje, jak určit typ MAPI položky ve složce PST:

import aspose.email as ae

pst = ae.storage.pst.PersonalStorage.from_file("test.pst")
folder = pst.root_folder.get_sub_folder("Calendar")
for messageInfo in folder.enumerate_messages():
    msg = pst.extract_message(messageInfo)

    # Get the class type based on msg.SupportedType
    item_type = msg.supported_type

    # Non-supported type. It cannot be accessed as appropriate item type.
    if item_type == ae.mapi.MapiItemType.NONE:
        print("Item type not supported")
    # An email message.
    elif item_type == ae.mapi.MapiItemType.MESSAGE:
        # You can access to MapiMessage properties there.
        # A subject for example
        print(msg.subject)
    # A contact item. Can be accessed as MapiContact.
    elif item_type == ae.mapi.MapiItemType.CONTACT:
        contact = msg.to_mapi_message_item()
        # You can access to MapiContact properties there. 
        # A name_info.display_name for example. 
        print(contact.name_info.display_name)
    # A calendar item. Can be accessed as MapiCalendar.
    elif item_type == ae.mapi.MapiItemType.CALENDAR:
        calendar = msg.to_mapi_message_item()
        # You can access to MapiCalendar properties there. 
        # A location for example. 
        print(calendar.location)
    # A distribution list. Can be accessed as MapiDistributionList.
    elif item_type == ae.mapi.MapiItemType.DIST_LIST:
        dlist = msg.to_mapi_message_item()
        # You can access to MapiDistributionList properties there
    # A Journal entry. Can be accessed as MapiJournal.
    elif item_type == ae.mapi.MapiItemType.JOURNAL:
        journal = msg.to_mapi_message_item()
        # You can access to MapiJournal properties there
    # A StickyNote. Can be accessed as MapiNote.
    elif item_type == ae.mapi.MapiItemType.NOTE:
        note = msg.to_mapi_message_item()
        # You can access to MapiNote properties there
    # A Task item. Can be accessed as MapiTask.
    elif item_type == ae.mapi.MapiItemType.TASK:
        task = msg.to_mapi_message_item()
        # You can access to MapiTask properties there

Konverze MSG na MIME zprávu

API Aspose.Email poskytuje možnost převést soubor MSG na MIME zprávu pomocí metody ToMailMessage.

Nastavení časového limitu pro konverzi a načítání zprávy

Pro omezení času v milisekundách konverze zprávy (výchozí hodnota 3 s) použijte vlastnost timeout objektu MailConversionOptions třída je použita.

Zde je návod, jak nastavit časový limit pro konverzi zpráv a načítání procesů:

import aspose.email as ae

msg = ae.mapi.MapiMessage.load("my.msg")
options = ae.mapi.MailConversionOptions()
options.timeout = 5000
mailMessage = msg.to_mail_message(options)

Nastavením časového limitu pro konverzi zpráv a načítání procesů můžete kontrolovat maximální dobu, po kterou jsou tyto operace povoleny běžet. Po nastavení časového limitu můžete pokračovat v konverzi a načítání zpráv.

Zpracování souborů Outlook Template (OFT)

Načíst, upravit a uložit soubor OFT

Šablony Outlook (OFT) nabízejí pohodlný způsob, jak zjednodušit proces odesílání opakujících se e‑mailových zpráv. Místo každého vytvoření stejného e‑mailu od začátku můžete zprávu v Outlooku vytvořit a uložit jako Outlook šablonu (OFT). Později, kdykoli potřebujete odeslat podobnou zprávu, můžete ji rychle vygenerovat ze šablony. Tento přístup šetří úsilí …

Aspose.Email MailMessage třída poskytuje výkonný nástroj pro načítání a manipulaci se soubory šablon Outlook (OFT). Jakmile je šablona Outlook načtena do instance třídy MailMessage, můžete snadno aktualizovat vlastnosti jako odesílatel, příjemce, tělo zprávy, předmět a další atributy.

import aspose.email as ae

# Load the OFT file
oft_file_path = "your_template.oft"
mail_message = ae.MailMessage.load(oft_file_path)

# Update properties as needed
mail_message.subject = "Updated Subject"
mail_message.body = "Updated body text."

# Save the updated message as an MSG file
msg_file_path = "updated_message.msg"
mail_message.save(msg_file_path, ae.MailMessageSaveType.outlook_message_format_unicode)

print(f"Updated message saved to {msg_file_path}")

Po provedení nezbytných úprav můžete e‑mail odeslat pomocí SmtpClient třída:

# Send the email
smtpClient.send(message)

Ukládání souboru Outlook MSG jako šablony

Pro tento účel můžete použít MailMessage třída pro vytvoření e‑mailu, který se poté uloží jako soubor OFT. Následující ukázka kódu vám ukáže, jak uložit e‑mail jako Outlook šablonu:

import aspose.email as ae

# Create a new MailMessage
message = ae.MailMessage()
message.subject = "Sample Outlook Template"
message.html_body = "<html><body>This is the body of the email.</body></html>"
message.from_address = ae.MailAddress("your.email@example.com", "Your Name")

# Save the MailMessage as an Outlook Template (OFT) file
oft_file_path = "sample_template.oft"
message.save(oft_file_path, ae.SaveOptions.default_oft)

print(f"Outlook Template saved as {oft_file_path}")

OFT nebo MSG: Určete typ MapiMessage

Následující úryvek kódu ilustruje, jak zjistit, zda načtená MAPI zpráva představuje standardní e‑mailovou zprávu nebo Outlook šablonu (OFT):

msg = ae.mapi.MapiMessage.Load("message.msg");
isOft = msg.is_template # returns false

msg = ae.mapi.MapiMessage.Load("message.oft");
isOft = msg.IsTemplate; # returns true

Po načtení souboru MSG kód kontroluje, zda má vlastnost is_template objektu MapiMessaage třída je True nebo False. V případě, že vrátí false, načtená zpráva je standardní e‑mail, ne šablona Outlook, naopak pokud vrátí true, zpráva není standardní e‑mail, ale šablona Outlook.

Ukládání MapiMessage nebo MailMessage jako OFT

The SaveOptions je abstraktní základní třída pro třídy, které umožňují uživateli zadat další možnosti při ukládání MailMessage do konkrétního formátu. Následující ukázka kódu demonstruje, jak uložit zprávu do formátu OFT:

import aspose.email as ae

# Save the MailMessage to OFT format
eml = ae.MailMessage.load("message.eml")

eml.save("message.oft", ae.SaveOptions.default_oft)

# or alternative way 2
save_options = ae.MsgSaveOptions(ae.MailMessageSaveType.outlook_template_format)
eml.save("message.oft", save_options)

# or alternative way 3
save_options = ae.SaveOptions.create_save_options(ae.MailMessageSaveType.outlook_template_format)
eml.save("message.oft", save_options)

# Save the MapiMessage to OFT format
msg = ae.mapi.MapiMessage.load("message.msg")

msg.save("message.oft", ae.SaveOptions.default_oft)

# or alternative way 2
save_options = ae.MsgSaveOptions(ae.MailMessageSaveType.outlook_template_format)
msg.save("message.oft", save_options)

# or alternative way 3
save_options = ae.SaveOptions.create_save_options(ae.MailMessageSaveType.outlook_template_format)
msg.save("message.oft", save_options)

Správa zpráv s digitálními podpisy

Knihovna poskytuje LoadOptions třída, abstraktní základní třída pro třídy, které umožňují uživateli zadat další možnosti při načítání MailMessage z konkrétního formátu. Možnost zachování podpisu je nastavena ve výchozím nastavení.

Převod z EML na MSG s zachováním podpisu

Níže uvedený ukázkový kód ukazuje, jak načíst zprávu, převést ji do formátu MSG a uložit jako MSG (podpis je ve výchozím nastavení zachován):


import aspose.email as ae

# Load mail message
loadOptions = ae.EmlLoadOptions()
message = ae.MailMessage.load("Message.eml", loadOptions)
# Save as MSG
message.save("ConvertEMLToMSG_out.msg", ae.SaveOptions.default_msg_unicode)

Převést S/MIME zprávy z MSG na EML

Aspose.Email umožňuje převést z formátu MSG na EML při zachování digitálního podpisu, jak je ukázáno v následujícím kódu.

import aspose.email as ae

# Load mail message
loadOptions = ae.EmlLoadOptions()
smime_eml = ae.MailMessage.load("smime.eml", loadOptions)

conversion_options = ae.mapi.MapiConversionOptions(ae.mapi.OutlookMessageFormat.UNICODE)
msg = ae.mapi.MapiMessage.from_mail_message(smime_eml, conversion_options)
# Save File to disk
msg.save("ConvertMIMEMessagesFromMSGToEML_out.msg")

Nastavit barevnou kategorii pro soubory Outlook MSG

Někdy můžete potřebovat odlišit e‑maily zvláštní důležitosti a vizuálně je uspořádat. Knihovna poskytuje způsob, jak to provést přiřazením konkrétní barvy položce zprávy. Když nastavíte barevnou kategorii pro položku, umožní vám snadno identifikovat a najít související položky na první pohled. Použijte FollowUpManager třída pro nastavení barevné kategorie zprávy, jak je ukázáno v následujícím příkladu kódu:


import aspose.email as ae

msg = ae.mapi.MapiMessage.load("my.msg")

# Add Two categories
ae.mapi.FollowUpManager.add_category(msg, "Purple Category")
ae.mapi.FollowUpManager.add_category(msg, "Red Category")

# Retrieve the list of available categories
categories = ae.mapi.FollowUpManager.get_categories(msg)

# Remove the specified category and then Clear all categories
ae.mapi.FollowUpManager.remove_category(msg, "Red Category")
ae.mapi.FollowUpManager.clear_categories(msg)

Přístup k informacím o pokračování z MSG souboru

Extrahovat informace o potvrzení přečtení a doručení

Níže uvedený ukázkový kód demonstruje, jak extrahovat informace o příjemcích a jejich stav sledování z Outlook zprávy (MSG) souboru:

import aspose.email as ae

msg = ae.mapi.MapiMessage.load("received.msg")

for recipient in msg.recipients:
    print(f"Recipient: {recipient.display_name}")
    print(f"Delivery time:  {recipient.properties[ae.mapi.MapiPropertyTag.RECIPIENT_TRACKSTATUS_TIME_DELIVERY]}")
    print(f"Read time:  {recipient.properties[ae.mapi.MapiPropertyTag.RECIPIENT_TRACKSTATUS_TIME_READ]}")

Creating Forward and Reply Messages

Aspose.Email poskytuje jednoduché způsoby, jak vytvořit přeposlané a odpovědní zprávy na základě existujících.

Vytvoření odpovědní zprávy

Můžete použít ReplyMessageBuilder třída pro vytvoření přeposílané zprávy nastavením zdrojové zprávy, odesílatele, příjemců, předmětu a těla. Přeposílané zprávy mohou obsahovat původní zprávu jako přílohu nebo jako tělo přeposílané zprávy. Máte flexibilitu přizpůsobit další vlastnosti, jako jsou přílohy, hlavičky a možnosti formátování. Níže uvedený ukázkový kód ukazuje, jak vytvořit přeposílanou zprávu:


import aspose.email as ae

msg = ae.mapi.MapiMessage.load("original.msg")

builder = ae.tools.ForwardMessageBuilder()
builder.addition_mode = ae.tools.OriginalMessageAdditionMode.TEXTPART

forwardMsg = builder.build_response(msg)
forwardMsg.save("forward_out.msg")

Vytvoření odpovědi

The Aspose.Email API poskytuje možnost vytvářet a formátovat zprávy předání a odpovědi. The třída se používá k nastavení parametrů odpovědi, včetně zdrojové zprávy, odesílatele, příjemců, režimu odpovědi, předpony předmětu a těla odpovědní zprávy. Odpovědní zprávy lze vytvářet v různých režimech, jako je "Odpovědět odesílateli" nebo "Odpovědět všem", podle vašich potřeb. Můžete přizpůsobit různé vlastnosti, jako jsou přílohy, hlavičky a možnosti formátování odpovědní zprávy. Níže uvedený ukázkový kód ukazuje, jak vytvořit přeposílanou zprávu:

import aspose.email as ae

msg = ae.mapi.MapiMessage.load("original.msg")

builder = ae.tools.ReplyMessageBuilder()

# Set ReplyMessageBuilder Properties
builder.reply_all = True
builder.addition_mode = ae.tools.OriginalMessageAdditionMode.TEXTPART
builder.response_text = "<p><b>Dear Friend,</b></p> I want to do is introduce my co-author and co-teacher. <p><a href=\"www.google.com\">This is a first link</a></p><p><a href=\"www.google.com\">This is a second link</a></p>";

replyMsg = builder.build_response(msg)
replyMsg.save("reply_out.msg")