Zarządzanie plikami wiadomości przy użyciu Aspose.Email.Outlook
Określ typ elementu MAPI w folderze PST
Plik PST zazwyczaj zawiera różne rodzaje danych, takie jak wiadomości e‑mail, zdarzenia kalendarza, kontakty i inne. MapiItemType klasa w Aspose.Email pozwala na dostęp i kategoryzację różnych typów elementów MAPI w pliku PST. Poniższy kod demonstruje, jak określić typ elementu MAPI w folderze 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
Konwertowanie MSG do wiadomości MIME
API Aspose.Email umożliwia konwersję pliku MSG na wiadomość MIME przy użyciu metody ToMailMessage.
Ustawianie limitu czasu dla konwersji i ładowania wiadomości
Aby ograniczyć czas konwersji wiadomości w milisekundach (wartość domyślna 3 sek), właściwość timeout z MailConversionOptions class jest używany.
Oto jak możesz ustawić limit czasu dla procesów konwersji i ładowania wiadomości:
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)
Ustawiając limit czasu (timeout) dla procesów konwersji i ładowania wiadomości, możesz kontrolować maksymalny czas, jaki te operacje mogą działać. Po ustawieniu limitu czasu możesz kontynuować konwersję i ładowanie wiadomości.
Przetwarzanie plików szablonów Outlook (OFT)
Załaduj, zmodyfikuj i zapisz plik OFT
Szablony Outlook (OFT) oferują wygodny sposób usprawnienia procesu wysyłania powtarzalnych wiadomości e‑mail. Zamiast za każdym razem tworzyć tę samą wiadomość od podstaw, możesz utworzyć wiadomość w Outlook i zapisać ją jako Szablon Outlook (OFT). Później, gdy potrzebujesz wysłać podobną wiadomość, możesz szybko wygenerować ją z szablonu. Takie podejście oszczędza wysiłek związany z ponownym pisaniem tej samej treści w ciele wiadomości, określaniem tematu, formatowaniem i innymi elementami.
Aspose.Email MailMessage klasa zapewnia potężne narzędzie do ładowania i manipulacji plikami szablonów Outlook (OFT). Po załadowaniu szablonu Outlook do instancji klasy MailMessage, możesz łatwo aktualizować właściwości takie jak nadawca, odbiorca, treść wiadomości, temat i różne inne atrybuty.
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 wprowadzeniu niezbędnych aktualizacji możesz wysłać e‑mail przy użyciu SmtpClient klasa:
# Send the email
smtpClient.send(message)
Zapisywanie pliku Outlook MSG jako szablonu
Do tego celu możesz użyć MailMessage klasa do tworzenia e‑maila, a następnie zapisu go jako pliku OFT. Poniższy przykład kodu pokaże, jak zapisać e‑mail jako szablon Outlook:
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 czy MSG: Określ typ MapiMessage
Poniższy fragment kodu ilustruje, jak określić, czy wczytana wiadomość MAPI jest standardową wiadomością e‑mail, czy szablonem Outlook (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 załadowaniu pliku MSG, kod sprawdza, czy właściwość is_template obiektu MapiMessaage klasa jest True lub False. Jeśli zwróci false, załadowana wiadomość jest standardową wiadomością e‑mail, a nie szablonem Outlook; w przeciwnym razie, jeśli zwróci true, wiadomość nie jest standardową wiadomością e‑mail, lecz szablonem Outlook.
Zapisywanie MapiMessage lub MailMessage jako OFT
Ten SaveOptions jest abstrakcyjną klasą bazową dla klas umożliwiających użytkownikowi określenie dodatkowych opcji przy zapisywaniu MailMessage w określonym formacie. Poniższy przykład kodu demonstruje, jak zapisać wiadomość w formacie 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)
Zarządzanie wiadomościami z podpisami cyfrowymi
Biblioteka zapewnia LoadOptions klasa, abstrakcyjna klasa bazowa dla klas umożliwiających użytkownikowi określenie dodatkowych opcji przy ładowaniu MailMessage z konkretnego formatu. Opcja zachowania podpisu jest ustawiona domyślnie.
Konwersja z EML do MSG z zachowaniem podpisu
Poniższy przykład kodu demonstruje, jak wczytać wiadomość, przekonwertować ją do formatu MSG i zapisz jako MSG (podpis jest domyślnie zachowywany):
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)
Konwertuj wiadomości S/MIME z MSG do EML
Aspose.Email pozwala na konwersję z MSG do EML zachowując podpis cyfrowy, co pokazano w poniższym fragmencie kodu.
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")
Ustawienie kategorii koloru dla plików Outlook MSG
Czasami możesz potrzebować odróżnić e-maile o szczególnej ważności i wizualnie je zorganizować. Biblioteka zapewnia sposób na to, poprzez przypisanie określonego koloru elementowi wiadomości. Ustawiając kategorię koloru dla elementu, umożliwiasz łatwe zidentyfikowanie i odnalezienie powiązanych elementów na pierwszy rzut oka. Użyj FollowUpManager klasa do ustawiania kategorii kolorów dla wiadomości, jak w poniższym przykładzie kodu:
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)
Uzyskiwanie informacji o śledzeniu z pliku MSG
Wyodrębnij informacje o potwierdzeniach odczytu i doręczenia
Poniższy przykład kodu demonstruje, jak wyodrębnić informacje o odbiorcach i ich status śledzenia z wiadomości Outlook (plik MSG):
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]}")
Tworzenie wiadomości przekazywanych i odpowiedzi
Aspose.Email zapewnia proste metody tworzenia wiadomości przekazywanych dalej oraz odpowiedzi na podstawie istniejących.
Tworzenie wiadomości przekazanej dalej
Możesz użyć ForwardMessageBuilder klasa służy do tworzenia wiadomości przekazywanych poprzez ustawienie wiadomości źródłowej, nadawcy, odbiorców, tematu i treści. Wiadomości przekazywane mogą zawierać oryginalną wiadomość jako załącznik lub jako treść przekazywanej wiadomości. Masz elastyczność w dostosowywaniu dodatkowych właściwości, takich jak załączniki, nagłówki i opcje formatowania. Poniższy przykład kodu pokazuje, jak utworzyć wiadomość przekazaną:
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")
Tworzenie wiadomości odpowiedzi
Ten ReplyMessageBuilder klasa służy do konfigurowania ustawień odpowiedzi, w tym wiadomości źródłowej, nadawcy, odbiorców, trybu odpowiedzi, prefiksu tematu oraz treści wiadomości odpowiedzi. Wiadomości odpowiedzi mogą być tworzone w różnych trybach, takich jak „Odpowiedz nadawcy” lub „Odpowiedz wszystkim”, w zależności od potrzeb. Możesz dostosować różne właściwości, takie jak załączniki, nagłówki i opcje formatowania wiadomości odpowiedzi. Poniższy przykład kodu pokazuje, jak utworzyć wiadomość przekazaną:
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")