Mesaj Eklerini Yönetme

Outlook’ta Ekleri İşleme

Outlook Mesajı (MSG) Dosyaları Oluşturma ve Kaydetme mesajları oluşturma ve kaydetme, ayrıca ekli MSG dosyaları oluşturmayı açıklar. Bu makale Aspose.Email ile Microsoft Outlook eklerini nasıl yöneteceğinizi açıklar. Bir mesaj dosyasındaki ekler, … kullanılarak diske erişilir ve kaydedilir. the MapiMessage sınıf Ekler özelliği. Şu Ekler özellik, tip koleksiyonudur MapiAttachmentCollection sınıf.

Ek Türünü Kontrol Et (Satır İçi veya Normal)

Satır içi ve normal ekler farklı amaçlara hizmet eder. Satır içi ekler e-posta mesajına görsel olarak entegre edilir ve tipik olarak resim veya medya dosyalarıdır. Öte yandan, normal ekler e-postaya eklenen ayrı dosyalardır ve çeşitli dosya tiplerini içerebilir. The MapiAttachment.IsInline özellik MapiAttachment sınıf, ekin satır içi mi yoksa normal mi olduğunu gösteren bir değer alır.

Aşağıdaki kod örneği yüklü MapiMessage içindeki her ek hakkında bilgileri çıkarır ve görüntüler; eklerin gösterim adları ve satır içi (inline) olup olmadıkları da dahil.

var message = MapiMessage.Load(fileName);

foreach (var attach in message.Attachments)
{
    Console.WriteLine($"{attach.DisplayName0} : {attach.IsInline)}");
}

Ek Türünü Kontrol Et (IsReference)

Bu MapiAttachment sınıf şunları içerir: IsReference mesaj içinde referans eklerini tanımlamayı sağlayan özellik. Aşağıdaki kod örneğiyle bir ekin referans ek olup olmadığını kontrol edebilirsiniz:

foreach (var attachment in msg.Attachments)
{
    if (attachment.IsReference)
    {
        // Process reference attachment
    }
}

MSG Dosyalarından Ekleri Kaydet

Bir MSG dosyasından ekleri kaydetmek için:

  1. İçinde döngü yap MapiAttachmentCollection koleksiyon ve bireysel ekleri alın.
  2. Ekleri kaydetmek için MapiAttachment sınıfının Save() metodunu çağırın.

Aşağıdaki kod örneği ekleri yerel diske nasıl kaydedeceğinizi gösterir.

RTF Biçimli MSG Dosyalarından Ekleri Çıkar

RTF formatında olan mesajlar için aşağıdaki kod, eklerin satır içi mi yoksa mesaj gövdesinde simge olarak mı göründüğünü ayırt etmek ve çıkarmak için kullanılabilir. Aşağıdaki kod örneği, RTF formatında bir MSG dosyasından gömülü bir eki tanımlama ve çıkarmayı gösterir.


var eml = MapiMessage.Load("MSG file with RTF Formatting.msg");

foreach (var attachment in eml.Attachments)
{
    if (IsAttachmentInline(attachment))
    {
        try
        {
            SaveAttachment(attachment, Data.Out/new Guid().ToString());
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
    }
}

static bool IsAttachmentInline(MapiAttachment attachment)
{
    foreach (var property in attachment.ObjectData.Properties.Values)
    {
        if (property.Name == "\x0003ObjInfo")
        {
            var odtPersist1 = BitConverter.ToUInt16(property.Data, 0);
            return (odtPersist1 & (1 << (7 - 1))) == 0;
        }
    }
    return false;
}

static void SaveAttachment(MapiAttachment attachment, string fileName)
{
    foreach (var property in attachment.ObjectData.Properties.Values)
    {
        if (property.Name == "Package")
        {
            using var fs = new FileStream(fileName, FileMode.Create, FileAccess.Write);
            fs.Write(property.Data, 0, property.Data.Length);
        }
    }
}

İç İçe Mail Mesajı Eklerini Al

Gömülü OLE ekleri de … içinde görünür. MapiMessage Attachment sınıfı koleksiyonu. Aşağıdaki kod örneği bir mesaj dosyasını gömülü mesaj ekleri için ayrıştırır ve diske kaydeder. The MapiMessage FromProperties() sınıfının statik yöntemi gömülü ekten yeni bir mesaj oluşturabilir. Aşağıdaki kod örneği iç içe posta mesajı eklerini nasıl alacağınızı gösterir.

Ekleri Kaldır

Aspose Outlook kütüphanesi, Microsoft Outlook Message (.msg) dosyalarından ekleri kaldırma işlevselliği sağlar:

  • RemoveAttachments() metodunu çağırın. Parametre olarak mesaj dosyasının yolunu alır. Bu metod, public static bir metod olarak uygulanmıştır, bu yüzden nesne oluşturmanıza gerek yoktur.

Aşağıdaki kod parçacığı, Ekleri nasıl kaldıracağınızı gösterir.

Ayrıca …‘ı çağırabilirsiniz MapiMessage sınıf statik yöntemi DestroyAttachment(). RemoveAttachment() yönteminden daha hızlı çalışır, çünkü RemoveAttachment() yöntemi mesaj dosyasını ayrıştırır.

MSG Ekleri Ekle

Outlook mesajı, eklerde başka Microsoft Outlook mesajlarını normal veya gömülü olarak içerebilir. The MapiAttachmentCollection ekleme (Add) metodunun aşırı yüklenmiş üyelerini sağlayarak, her iki tür ekle Outlook mesajları oluşturmanıza olanak tanır.

MapiMessage’lara Referans Eklerini Ekle

Bu ReferenceAttachmentOptions sınıf, tüm gerekli özellikleri tek bir nesnede kapsülleyerek referans eklerinin eklenmesini basitleştirir.

ReferenceAttachmentOptions Parametreleri:

  • sharedLink: dosyayı barındıran web hizmeti tarafından sağlanan tam nitelikli paylaşımlı bağlantı.
  • url: dosya konumu veya kaynak URL’si.
  • providerName: referans ek sağlayıcısının adı (ör. Google Drive, Dropbox).
  • Örnek: ReferenceAttachmentOptions ile Referans Eki Eklemek
var options = new ReferenceAttachmentOptions(
    "https://drive.google.com/file/d/1HJ-M3F2qq1oRrTZ2GZhUdErJNy2CT3DF/",
    "https://drive.google.com/drive/my-drive",
    "GoogleDrive");

// Add reference attachment
msg.Attachments.Add("Document.pdf", options);

Mesajları Ek Olarak Göm

Aşağıdaki kod örneği bir MSG dosyası ekini bir mesaja nasıl gömeceğinizi gösterir.

Eklerden Gömülü Mesajları Okuma

Aşağıdaki kod parçacığı, eklerden gömülü mesajları nasıl okuyacağınızı gösterir.

Ek Ekleme ve Değiştirme

Aspose.Email API, ekleri üst mesajda belirli bir indeksde ekleme yeteneği sağlar. Ayrıca bir ekin içeriğini başka bir mesaj ekiyle değiştirme imkanı sunar.

Ekleri Belirli Konumlara Ekle

Aspose.Email API, MapiAttachmentCollection’ın Insert yöntemi (MapiAttachmentCollection Insert(int index, string name, MapiMessage msg)) kullanarak bir MSG ekini bir üst MSG’ye ekleme yeteneği sağlar. Aşağıdaki kod örneği belirli bir konuma ek nasıl ekleyeceğinizi gösterir.

Ek İçeriklerini Değiştir

Bu, Replace metodu kullanılarak gömülü ek içeriklerini yenileriyle değiştirmek için kullanılabilir. Ancak, PR_ATTACH_NUM = 4 (örneğin) olan bir eki, koleksiyon.Count = 2 iken eklemeye yarmaz. Aşağıdaki kod parçacığı, ek içeriklerini nasıl değiştireceğinizi gösterir.

MapiMessage İçindeki Ekleri Yeniden Adlandır

MapiMessage eklerinde DisplayName özelliği değerini düzenlemek mümkündür.

var msg = MapiMessage.Load(fileName);
msg.Attachments[0].DisplayName = "New display name 1";
msg.Attachments[1].DisplayName = "New display name 2";

Dijital Olarak İmzalı Mesajlardan Ekleri Kaydet

Aspose.Email API, temiz imzalı bir mesajın çözüleceğini gösteren bir değeri alıp ayarlama yeteneği sağlar.