Outlook Mesajlarını Yönetme
E-postaları HTML Olarak Kaydet
Aspose.Email, mesajları HTML formatında dışa aktarırken e-posta kaynaklarını göreli yollarla kaydetmeyi mümkün kılar. Bu özellik, çıktı HTML dosyasındaki kaynakların nasıl bağlanacağını daha esnek hale getirir, böylece kaydedilen e-postaları farklı sistemlerde paylaşmayı ve görüntülemeyi kolaylaştırır. Kaynakları göreli yollarla kaydetmek için, kullan HtmlSaveOptions.UseRelativePathToResources özelliği. Varsayılan özellik değeri false’tur (kaynaklar mutlak yollarla kaydedilir). True olarak ayarlandığında, kaynaklar göreli yollarla kaydedilir.
Göreli yollar içeren HTML dosyaları daha taşınabilirdir ve barındırma ortamının dosya yapısına bakılmaksızın doğru görüntülenebilir. İhtiyacınıza göre mutlak veya göreli yollar arasında seçim yapabilirsiniz. Kaynaklar için özel yolları property kullanarak tanımlayabilirsiniz. ResourceHtmlRendering event.
Aşağıdaki kod örneği, kaynaklara varsayılan göreli yol ile bir e-postayı kaydetmenin nasıl yapılacağını gösterir:
var msg = MapiMessage.Load(sourceFileName);
var htmlSaveOptions = new HtmlSaveOptions
{
ResourceRenderingMode = ResourceRenderingMode.SaveToFile,
UseRelativePathToResources = true
};
msg.Save(Path.Combine("target_files"), htmlSaveOptions);
Bu durumda, kaynaklar .html dosyasıyla aynı yolda, [html dosya adı]_files klasöründe kaydedilecek ve HTML kaynakları göreli yollarla referans gösterecek.
Aşağıdaki kod örneği, kaynaklara mutlak yol ile kaydetmenin nasıl yapılacağını gösterir:
var msg = MapiMessage.Load(sourceFileName);
var htmlSaveOptions = new HtmlSaveOptions
{
ResourceRenderingMode = ResourceRenderingMode.SaveToFile,
UseRelativePathToResources = false
};
msg.Save(Path.Combine("target_files"), htmlSaveOptions);
İlk durumda olduğu gibi, kaynaklar varsayılan olarak [html dosya adı]_files klasöründe kaydedilecek, ancak HTML kaynakları mutlak yollarla referans gösterecek.
Kullanarak ResourceHtmlRendering event, kaynaklar için özel göreceli veya mutlak yollar ayarlayabilirsiniz. Yolları şu şekilde özelleştirirken ResourceHtmlRendering event işleyicisi, ve çünkü UseRelativePathToResources true olarak ayarlandığında, şuna göre bir göreceli yol atamalısınız PathToResourceFile doğru referanslamayı sağlamak için özellik.
Aşağıdaki kod örneği, ResourceHtmlRendering Olayı kullanarak özel göreli yol nasıl oluşturulacağını gösterir
var msg = MapiMessage.Load(sourceFileName);
var htmlSaveOptions = new HtmlSaveOptions
{
ResourceRenderingMode = ResourceRenderingMode.SaveToFile,
UseRelativePathToResources = true
};
htmlSaveOptions.ResourceHtmlRendering += (o, args) =>
{
if (o is AttachmentBase attachment)
{
// Since UseRelativePathToResources = true, you should assign a relative path to the PathToResourceFile property.
args.PathToResourceFile = $@"images\{attachment.ContentType.Name}";
}
};
msg.Save(Path.Combine(targetPath, "A Day in the Park.html"), htmlSaveOptions);
MSG’yi MIME Mesajlarına Dönüştür
Aspose.Email API, MSG dosyalarını MIME mesajlarına dönüştürme yeteneği sağlar, ToMailMessage metod.
Mesaj Dönüştürme ve Yükleme İçin Zaman Aşımı Ayarla
Aşağıdaki özellikler, dönüştürme ve yükleme işlemleri için milisaniye cinsinden zaman aşımını ayarlamanızı sağlar:
-
MailConversionOptions.Timeout property - Bir mesajı dönüştürürken milisaniye cinsinden zaman limitini belirler.
-
MailConversionOptions.TimeoutReached - MailMessage’e dönüştürürken zaman aşımı gerçekleşirse ortaya çıkar.
-
MsgLoadOptions.Timeout - Bir mesajı dönüştürürken milisaniye cinsinden zamanı sınırlar.
-
MsgLoadOptions.TimeoutReached - MailMessage’e dönüştürürken zaman aşımı gerçekleşirse ortaya çıkar.
Aşağıdaki kod örneği, bir mesajı dönüştürürken zaman aşımını nasıl ayarlayacağınızı gösterir:
var options = new MailConversionOptions();
// Set the timeout to 5 seconds
options.Timeout = 5000;
options.TimeoutReached += (object sender, EventArgs args) =>
{
string subj = (sender as MailMessage).Subject;
// Set a flag indicating the timeout was reached
isTimedOut = true;
};
var mailMessage = mapiMessage.ToMailMessage(options);
RTF Gövdesi Korunarak MSG’den EML’ye Dönüştürme
MSG dosyasının RTF gövdesi korunarak EML’ye dönüştürülmesi iki şekilde yapılabilir:
-
kullanarak MsgLoadOptions.PreserveRtfContent özellik MsgLoadOptions class;
-
kullanarak MailConversionOptions.PreserveRtfContent özellik MailConversionOptions class;
Her iki özellik de, MailMessage içinde rtf gövdesinin korunup korunmayacağını gösteren bir değeri alır veya ayarlar.
Aşağıdaki kod parçacıkları, bir MSG dosyasını EML’ye dönüştürüp RTF gövdesini korumanın nasıl yapılacağını gösterir:
var loadOptions = new MsgLoadOptions
{
PreserveRtfContent = true
};
var eml = MailMessage.Load("my.msg", loadOptions);
var conversionOptions = new MailConversionOptions
{
PreserveRtfContent = true
};
var msg = MapiMessage.Load("my.msg");
var eml = msg.ToMailMessage(conversionOptions);
Outlook Şablon Dosyalarını (.OFT) İşleme
Outlook şablonları, aynı e-posta mesajını tekrar tekrar göndermek istediğinizde çok faydalıdır. Her seferinde mesajı sıfırdan hazırlamak yerine, önce Outlook’ta mesajı hazırlayıp bir Outlook Şablonu (OFT) olarak kaydedersiniz. Daha sonra mesajı göndermeniz gerektiğinde, şablondan oluşturabilir, böylece gövde ya da konu satırındaki aynı metni yazma, biçimlendirme vb. zaman tasarrufu sağlarsınız. Aspose.Email’in MailMessage sınıfı, bir Outlook şablonu (OFT) dosyasını yüklemek ve okumak için kullanılabilir. Outlook şablonu, bir örnekte yüklendiğinde MailMessage sınıfı ile gönderen, alıcı, gövde, konu ve diğer özellikleri güncelleyebilirsiniz. Özellikleri güncelledikten sonra:
- E-postayı şunu kullanarak gönder SmtpClient sınıfı veya
- Mesajı MSG olarak kaydedin ve Microsoft Outlook kullanarak daha fazla güncelleme/doğrulama yapın.
Aşağıdaki kod örneklerinde, biz:
- Şablonu şunu kullanarak yükle MailMessage sınıf.
- Bazı özellikleri güncelle.
- Mesajı MSG formatında kaydet.
Aşağıdaki kod parçacığı, OFT dosyasını nasıl yükleyeceğinizi, mesajı güncelleyip MSG formatında kaydedeceğinizi gösterir.
MSG Dosyalarını Şablon Olarak Kaydet
Aşağıdaki kod parçacığı, Outlook MSG dosyasını şablon olarak nasıl kaydedeceğinizi gösterir.
MAPI Mesaj Tipini Belirle (OFT veya MSG)
Bir dosyadan MapiMessage nesnesi yüklerken, yüklenen mesajın bir şablon dosyası mı yoksa normal bir e-posta dosyası mı olduğunu belirlemeniz gerekebilir. Kullanarak IsTemplate özellik MapiMessage class, bir e-postanın şablon olup olmadığını kesin olarak tespit etmenizi sağlar. Bu işlevsellik, uygulama ve sistemler içinde çeşitli e-posta dosyalarını işleme ve yönetmede değerli olabilir.
Aşağıdaki kod örneği, bir MapiMessage’ın OFT mi yoksa MSG mi olduğunu nasıl belirleyeceğinizi göstermektedir:
var msg = MapiMessage.Load("message.msg");
var isOft = msg.IsTemplate; // returns false
var msg = MapiMessage.Load("message.oft");
var isOft = msg.IsTemplate; // returns true
MapiMessage veya MailMessage’ı OFT Formatında Kaydet
Bu SaveOptions class, bir MailMessage veya MapiMessage’ı belirli bir formata kaydederken ek seçenekler belirlemenizi sağlar.
Aşağıdaki kod örneği, bir mesajın OFT formatına nasıl kaydedileceğini göstermektedir:
// Save the MailMessage to OFT format
using (var eml = MailMessage.Load("message.eml"))
{
eml.Save("message.oft", SaveOptions.DefaultOft);
// or alternative way #2
var saveOptions = new MsgSaveOptions(MailMessageSaveType.OutlookTemplateFormat);
eml.Save("message.oft", saveOptions);
// or alternative way #3
saveOptions = SaveOptions.CreateSaveOptions(MailMessageSaveType.OutlookTemplateFormat);
eml.Save("message.oft", saveOptions);
}
// Save the MapiMessage to OFT format
using (var msg = MapiMessage.Load("message.msg"))
{
msg.Save("message.oft", SaveOptions.DefaultOft);
// or alternative way #2
var saveOptions = new MsgSaveOptions(MailMessageSaveType.OutlookTemplateFormat);
msg.Save("message.oft", saveOptions);
// or alternative way #3
saveOptions = SaveOptions.CreateSaveOptions(MailMessageSaveType.OutlookTemplateFormat);
msg.Save("message.oft", saveOptions);
}
Dijital İmzalı Mesajları Yönetme
Aspose.Email, tam S/MIME e-posta nesnesi algoritmasını uygular. Bu, API’ye mesajları formatlar arasında dönüştürürken dijital imzaları koruma konusunda tam güç verir.
EML’den MSG’ye Dönüşüm Sırasında İmzayı Koru
Aspose.Email, EML’den MSG’ye dönüştürürken dijital imzayı korur. Aşağıdaki kod parçacığı, EML’den MSG’ye nasıl dönüştürüleceğini gösterir.
S/MIME Mesajlarını MSG’den EML’ye Dönüştür
Aspose.Email, MSG’den EML’ye dönüştürürken dijital imzayı aşağıdaki kod parçacığında gösterildiği gibi korur.
Güvenli E-postaların İmzalarını Kontrol Et
Aşağıdaki özellikler, MapiMessage nesnelerinin imzasını kontrol etmek için kullanılabilir.
- SecureEmailManager güvenli e-postaların imzasını kontrol etmek için class.
- SmimeResult kontrol sonuçlarını saklamak için class.
- SecureEmailManager.CheckSignature(MapiMessage msg) metod.
- SecureEmailManager.CheckSignature(MapiMessage msg, X509Certificate2 certificateForDecrypt) metod.
- SecureEmailManager.CheckSignature(MapiMessage msg, X509Certificate2 certificateForDecrypt, X509Store store) metod.
Aşağıdaki kod örneği, özelliklerin projenize nasıl uygulanacağını gösterir:
var msg = MapiMessage.Load(fileName, new EmlLoadOptions());
var result = new SecureEmailManager().CheckSignature(msg);
var certFileName = "cert.pfx";
var cert = new X509Certificate2(certFileName, "pass");
var eml = MapiMessage.Load(fileName);
var store = new X509Store();
store.Open(OpenFlags.ReadWrite);
store.Add(cert);
store.Close();
var result = new SecureEmailManager().CheckSignature(eml, cert, store);
MapiMessage’lardan İmzaları Kaldır
Daha iyi uyumluluk için, MapiMessage.RemoveSignature metodu ve MapiMessage.IsSigned özellikler, bir mesajdan dijital imzayı kaldırmak için kullanılır.
Aşağıdaki kod kesiti, bu özelliklerin projenize nasıl uygulanacağını gösterir:
var msg = MapiMessage.Load(fileName);
if (msg.IsSigned)
{
var unsignedMsg = msg.RemoveSignature();
}
MapiMessage’ları Sertifikalarla Şifre Çöz
Şifreli MAPI mesajlarınız varsa ve bunları bir sertifikada depolanan özel anahtarla çözmeniz gerekiyorsa, Aspose.Email’in aşağıdaki özellikleri faydalı olabilir:
- MapiMessage.IsEncrypted - Mesajın şifreli olup olmadığını gösteren bir değer döndürür.
- MapiMessage.Decrypt() - Bu mesajı şifre çözer (yöntem, geçerli kullanıcı ve bilgisayarın My mağazalarında uygun sertifika ve özel anahtarı arar).
- MapiMessage.Decrypt(X509Certificate2 certificate) - Bu mesajı sertifika ile şifre çözer.
Aşağıdaki kod parçacığı, şifreli MAPI mesajlarıyla nasıl çalışılacağını gösterir:
var privateCert = new X509Certificate2(privateCertFile, "password");
var msg = MapiMessage.Load("encrypted.msg");
if (msg.IsEncrypted);
{
var decryptedMsg = msg.Decrypt(privateCert);
}
MSG Dosyaları için Renk Kategorileri Ayarla
Renk kategorisi, bir e-posta mesajını belirli bir önem seviyesine veya kategoriye işaretler. Microsoft Outlook, kullanıcıların e-postaları ayırt etmek için renk kategorileri atamasına izin verir. Renk kategorisini işlemek için şunu kullanın FollowUpManager. Aşağıdaki gibi işlevler içerir AddCategory, RemoveCategory, ClearCategories ve GetCategories.
- AddCategory alır MapiMessage ve renk kategori dizesi, örneğin "Purple Category" veya "Red Category" gibi argümanlar.
- RemoveCategory alır MapiMessage ve mesajdan kaldırılacak renk kategori dizesi.
- ClearCategories mesajdan tüm renk kategorilerini kaldırmak için kullanılır.
- GetCategories belirli bir mesajdan tüm renk kategorilerini almak için kullanılır.
Aşağıdaki örnek, aşağıda verilen görevleri yerine getirir:
- Bir renk kategorisi ekle.
- Başka bir renk kategorisi ekle.
- Tüm kategorilerin listesini al.
- Tüm kategorileri kaldır.
MSG Dosyalarındaki Takip Bilgilerine Eriş
Aspose.Email API, gönderilmiş veya alınmış bir mesajdan takip bilgilerine erişme yeteneği sağlar. Bir mesaj dosyasından Okuma, Teslim Alındı ve oy sonuçları bilgilerini alabilir.
Okuma ve Teslimat Makbuzu Bilgilerini Al
Aşağıdaki kod parçacığı, okuma ve teslim alındı bilgilerini nasıl alacağınızı gösterir.
İleri ve Yanıt Mesajları Oluştur
Aspose.Email API, yönlendirme ve yanıt mesajları oluşturma ve biçimlendirme yeteneği sağlar. ReplyMessageBuilder ve ForwardMessageBuilder API sınıfları, yanıt ve iletme mesajlarını sırasıyla oluşturmak için kullanılır. Bir Yanıt veya İletme mesajı, … modlarından herhangi biri kullanılarak oluşturulabilir. OriginalMessageAdditionMode enum. Bu enum aşağıdaki değerlere sahiptir:
- OriginalMessageAdditionMode.None - Orijinal mesaj yanıt mesajına eklenmez.
- OriginalMessageAdditionMode.Attachment - Orijinal mesaj yanıt mesajına ek olarak eklenir
- OriginalMessageAdditionMode.Textpart - Orijinal mesaj, yanıt mesajının gövdesinde metin olarak eklenir
Yanıt Mesajları Oluştur
Aşağıdaki kod kesiti, bir yanıt mesajı oluşturmanın nasıl yapılacağını gösterir.
İleri Mesajlar Oluştur
Aşağıdaki kod parçacığı, bir iletme mesajı nasıl oluşturulacağını gösterir.