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")