Aspose.Email.Outlook ile Mesaj Dosyalarını Yönetme
Bir PST klasöründeki MAPI öğesi türünü belirleme
Bir PST dosyası tipik olarak e-posta mesajları, takvim etkinlikleri, kişiler ve daha fazlası gibi çeşitli veri türleri içerir. MapiItemType Aspose.Email sınıfı, bir PST dosyası içinde farklı MAPI öğelerinin türlerine erişmenizi ve sınıflandırmanızı sağlar. Aşağıdaki kod bir PST klasöründeki bir MAPI öğesinin türünü belirlemeyi gösterir:
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
MSG’yi MIME mesaja Dönüştürme
Aspose.Email API, ToMailMessage metodu kullanarak MSG dosyasını MIME mesajına dönüştürme yeteneği sağlar.
Bir Mesajın Dönüştürülmesi ve Yüklenmesi İçin Zaman Aşımını Ayarlama
Mesaj dönüştürme süresini milisaniye cinsinden sınırlamak için (varsayılan değer 3 saniye), timeout özelliği: MailConversionOptions sınıf kullanılır.
İşte mesaj dönüştürme ve yükleme işlemleri için zaman aşımı nasıl ayarlanır:
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)
Mesaj dönüştürme ve yükleme işlemleri için bir zaman aşımı ayarlayarak, bu işlemlerin çalışabileceği maksimum süreyi kontrol edebilirsiniz. Zaman aşımı ayarlandıktan sonra mesaj dönüştürme ve yükleme işlemlerinize devam edebilirsiniz.
Outlook Şablonu (OFT) dosyaları İşleme
Bir OFT Dosyasını Yükle, Değiştir ve Kaydet
Outlook şablonları (OFT), tekrarlayan e-posta mesajlarını göndermek sürecini kolaylaştıran bir yöntem sunar. Her seferinde aynı e-postayı sıfırdan oluşturmak yerine, Outlook’ta bir mesaj oluşturup OFT olarak kaydedebilirsiniz. Daha sonra benzer bir mesaj göndermeniz gerektiğinde, şablondan hızlıca oluşturabilirsiniz. Bu yaklaşım, mesaj gövdesindeki aynı içeriği, konu satırını, biçimlendirmeyi ve diğer öğeleri yeniden yazma zahmetini ortadan kaldırır.
Aspose.Email’in MailMessage sınıfı, Outlook şablon dosyalarını (OFT) yüklemek ve manipüle etmek için güçlü bir araç sağlar. Outlook şablonu, MailMessage sınıfının bir örneğine yüklendikten sonra, gönderen, alıcı, mesaj gövdesi, konu ve diğer çeşitli özellikleri kolayca güncelleyebilirsiniz.
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}")
Gerekli güncellemeleri yaptıktan sonra, e-postayı şu şekilde gönderebilirsiniz: SmtpClient sınıf:
# Send the email
smtpClient.send(message)
Outlook MSG Dosyasını Şablon Olarak Kaydetme
Bu amaçla, şunu kullanabilirsiniz MailMessage Bu sınıf, bir e-posta oluşturup daha sonra OFT dosyası olarak kaydetmek için kullanılır. Aşağıdaki kod örneği, bir e-postayı Outlook Şablonu olarak nasıl kaydedeceğinizi gösterir:
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 veya MSG: Bir MapiMessage Türünü Belirleme
Aşağıdaki kod parçacığı, yüklenen bir MAPI mesajının standart bir e-posta mesajı mı yoksa Outlook Şablonu (OFT) mu olduğunu nasıl belirleyeceğinizi gösterir:
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
MSG dosyası yüklendikten sonra kod, is_template özelliğinin olup olmadığını kontrol eder MapiMessage sınıf True veya False. false dönerse, yüklenen mesaj standart bir e-posta mesajıdır, Outlook Şablonu değil; true dönerse, mesaj standart bir e-posta mesajı değildir, bir Outlook Şablonudur.
MapiMessage veya MailMessage’ı OFT Olarak Kaydetme
Bu SaveOptions Bu, bir MailMessage’ı belirli bir formata kaydederken kullanıcının ek seçenekler belirlemesine izin veren sınıflar için soyut bir temel sınıftır. Aşağıdaki kod örneği, bir mesajı OFT formatına nasıl kaydedeceğinizi gösterir.
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)
Dijital İmzalı Mesajları Yönetme
Kütüphane şunları sağlar LoadOptions Bu sınıf, bir MailMessage’ı belirli bir formatta yüklerken kullanıcının ek seçenekler belirlemesine izin veren sınıflar için soyut bir temel sınıftır. İmza koruma seçeneği varsayılan olarak ayarlanmıştır.
İmza Korunarak EML’den MSG’ye Dönüştürme
Aşağıdaki kod örneği, bir mesajı nasıl yükleyeceğinizi, MSG formatına dönüştüreceğinizi ve MSG olarak kaydedeceğinizi (imza varsayılan olarak korunur) gösterir:
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)
S/MIME Mesajlarını MSG’den EML’ye Dönüştür
Aspose.Email, aşağıdaki kod parçacığında gösterildiği gibi bir dijital imzayı koruyarak MSG’den EML’ye dönüştürmenizi sağlar.
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")
Outlook MSG Dosyalarına Renk Kategorisi Ayarlama
Bazen belirli öneme sahip e-postaları ayırmak ve görsel olarak düzenlemek isteyebilirsiniz. Kütüphane, bir mesaj öğesine belirli bir renk atayarak bunu yapmanın bir yolunu sunar. Bir öğeye renk kategorisi atadığınızda, ilgili öğeleri bir bakışta kolayca tanımlayıp bulabilirsiniz. Kullan: FollowUpManager Aşağıdaki kod örneğinde olduğu gibi bir mesaj için renk kategorisi ayarlayan sınıf:
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)
MSG dosyasından Takip Bilgilerine Erişim
Okuma ve Teslimat Makbuzu Bilgilerini Çıkarma
Aşağıdaki kod örneği, bir Outlook (MSG) dosyasından alıcı bilgilerini ve izleme durumlarını nasıl çıkaracağınızı gösterir:
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]}")
İletme ve Yanıt Mesajları Oluşturma
Aspose.Email, mevcut mesajlara dayanarak iletileri ve yanıt mesajlarını oluşturmak için basit yollar sunar.
İletme Mesajı Oluşturma
Şunu kullanabilirsiniz: ForwardMessageBuilder sınıf, kaynak mesaj, gönderici, alıcılar, konu ve gövde ayarlanarak bir iletilmiş mesaj oluşturur. İletilen mesajlar, orijinal mesajı ek olarak veya iletilen mesajın gövdesi olarak içerebilir. Ekler, başlıklar ve biçimlendirme seçenekleri gibi ek özellikleri özelleştirme esnekliğine sahipsiniz. Aşağıdaki kod örneği bir iletilmiş mesaj oluşturmayı gösterir:
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")
Yanıt Mesajı Oluşturma
Bu ReplyMessageBuilder sınıf, kaynak mesaj, gönderici, alıcılar, yanıt modu, konu ön eki ve yanıt mesajı gövdesi dahil yanıt ayarlarını yapılandırmak için kullanılır. Yanıt mesajları, gereksiniminize göre "Gönderene Yanıt" veya "Hepsine Yanıt" gibi farklı yanıt modlarında oluşturulabilir. Ekler, başlıklar ve biçimlendirme seçenekleri gibi çeşitli özellikleri özelleştirebilirsiniz. Aşağıdaki kod örneği bir iletilmiş mesaj oluşturmayı gösterir:
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")