E-posta Mesajını Yükle ve Kaydet

E-posta Mesajını Yükle

EML’den Yükle

Bu bölüm, bir EML dosyasını MailMessage nesnesine … kullanarak nasıl yükleyeceğinizi açıklar: EmlLoadOptions sınıf. EmlLoadOptions sınıfı, EML dosyasının nasıl yükleneceğini özelleştirmek için çeşitli seçenekler sunar; örneğin gömülü mesaj formatlarını koruma veya TNEF ek yükleme davranışını kontrol etme.

  1. EmlLoadOptions bir örnek başlatın.
  2. Yükleme seçeneklerini gerektiği gibi yapılandırın.
  3. Kullan MailMessage.Load() belirtilen seçeneklerle EML dosyasını yükleyen metod.
using Aspose.Email;

// Initialize EmlLoadOptions
var loadOptions = new EmlLoadOptions
{
    // Configure load options
    PreferredTextEncoding = Encoding.UTF8, // Sets preferred encoding for the message
    PreserveEmbeddedMessageFormat = true, // Preserve format of embedded messages
    PreserveTnefAttachments = true, // Control TNEF attachment loading
    RemoveSignature = false // Do not remove the signature
};

// Load the EML file
var eml = MailMessage.Load("file.eml", loadOptions);

EmlLoadOptions Özellikleri

  • PreferredTextEncoding: Mesaj konusunun ve gövdesinin tercih edilen kodlamasını ayarlar. Varsayılan: null.
  • PreserveEmbeddedMessageFormat: Yükleme sırasında gömülü mesajların formatının korunup korunmayacağını gösterir. Varsayılan: false.
  • PreserveTnefAttachments: TNEF ek yükleme davranışını kontrol eder. Varsayılan: false.
  • RemoveSignature: Yükleme sırasında imzanın kaldırılıp kaldırılmayacağını belirtir. Varsayılan: false.

Gömülü Mesaj Formatını Koru

İmzalı/İmzalı Olmadan Mesaj Yükleme

EML dosyaları yüklenirken imza koruması varsayılan olarak desteklenir. İmzayı kaldırmak için aşağıdakiyi ayarlayabilirsiniz LoadOptions.RemoveSignature özelliği true olarak ayarlayın.

Aşağıdaki kod örneği, bir mesaj yüklerken imzanın nasıl kaldırılacağını gösterir:

var msg = MailMessage.Load(fileName, new EmlLoadOptions() { RemoveSignature = true});

EMLX’den Yükle

Aşağıdaki bölüm, bir EMLX dosyasını … ile yüklemeyi kapsar EmlxLoadOptions sınıf. Bu sınıf, EmlLoadOptions’a benzer seçenekler sunar; kodlama, imza kaldırma ve daha fazlası üzerinde kontrol sağlar.

  1. EmlxLoadOptions bir örnek oluşturun.
  2. Gerektiği gibi özellikleri yapılandırın.
  3. Kullan MailMessage.Load() EMLX dosyasını yükleme yöntemi.
using Aspose.Email;

// Instantiate EmlxLoadOptions
var loadOptions = new EmlxLoadOptions
{
    // Configure load options
    PreferredTextEncoding = Encoding.UTF8, // Set encoding preference
    PreserveEmbeddedMessageFormat = true, // Preserve embedded message formats
    RemoveSignature = true // Remove signatures during loading
};

// Load the EMLX file
var emlx = MailMessage.Load("file.emlx", loadOptions);

EmlxLoadOptions Özellikleri

  • PreferredTextEncoding: Mesaj konusunun ve gövdesinin tercih edilen kodlamasını ayarlar. Varsayılan: null.
  • PreserveEmbeddedMessageFormat: Gömülü mesajların formatının korunup korunmayacağını gösterir. Varsayılan: false.
  • RemoveSignature: Yükleme sırasında imzanın kaldırılıp kaldırılmayacağını belirtir. Varsayılan: false.

HTML’den Yükle

HTML dosyasını bir MailMessage içine … kullanarak nasıl yükleyeceğinizi öğrenin HtmlLoadOptions sınıf. Bu sınıf, HTML içeriğini kaynakları yönetme ve düz metin görünümleri ekleme seçenekleriyle işlemek için özel olarak tasarlanmıştır.

  1. HtmlLoadOptions bir örnek başlatın.
  2. Gerekli özellikleri yapılandırın.
  3. Kullan MailMessage.Load() belirtilen seçeneklerle HTML dosyasını yükleme yöntemi.
using Aspose.Email;

// Initialize HtmlLoadOptions
var loadOptions = new HtmlLoadOptions
{
    // Configure load options
    PathToResources = "resources/", // Path to directory containing resource files
    PreferredTextEncoding = Encoding.UTF8, // Set encoding preference
    ShouldAddPlainTextView = true // Add plain text view of the body
};

// Load the HTML file
var html = MailMessage.Load("file.html", loadOptions);

HtmlLoadOptions Özellikleri

  • PathToResources: Kaynak dosyaları (örneğin resimler) içeren dizinin yolunu tanımlar.
  • PreferredTextEncoding: Mesaj konusunun ve gövdesinin tercih edilen kodlamasını ayarlar. Varsayılan null.
  • PreserveEmbeddedMessageFormat: Gömülü mesajların formatının korunup korunmayacağını belirler. Varsayılan false.
  • ShouldAddPlainTextView: Mesaj gövdesinin düz metin görünümünün eklenip eklenmeyeceğini belirler. Varsayılan false.

MHTML’den Yükle

Bu bölüm, bir MHTML dosyasını … kullanarak nasıl yükleyeceğinizi açıklar. MhtmlLoadOptions sınıf. MhtmlLoadOptions sınıfı, kodlamayı yönetme, gömülü mesaj formatlarını koruma ve TNEF eklerini işleme seçenekleri sunar.

  1. MhtmlLoadOptions bir örnek oluşturun.
  2. İstenen özellikleri yapılandırın.
  3. MHTML dosyasını şu şekilde yükleyin: MailMessage.Load() metod.
using Aspose.Email;

// Create MhtmlLoadOptions
var loadOptions = new MhtmlLoadOptions
{
    // Set load options
    PreferredTextEncoding = Encoding.UTF8, // Set encoding preference
    PreserveEmbeddedMessageFormat = true, // Preserve format of embedded messages
    PreserveTnefAttachments = true, // Handle TNEF attachments
    RemoveSignature = false // Keep the signature
};

// Load the MHTML file
var mhtml = MailMessage.Load("file.mht", loadOptions);

MhtmlLoadOptions Özellikleri

  • MessageFormat: EML, MSG veya MHTML olabilen e-posta mesajı formatını temsil eder. Varsayılan EML.
  • PreferredTextEncoding: Mesaj konusunun ve gövdesinin tercih edilen kodlamasını ayarlar. Varsayılan: null.
  • PreserveEmbeddedMessageFormat: Gömülü mesajların formatının korunup korunmayacağını belirler. Varsayılan false.
  • PreserveTnefAttachments: TNEF ek yükleme davranışını kontrol eder. Varsayılan: false.
  • RemoveSignature: Yükleme sırasında imzanın kaldırılıp kaldırılmayacağını belirtir. Varsayılan: false.

MSG’den Yükle

Bu bölüm, bir MSG dosyasını MailMessage nesnesine … kullanarak nasıl yükleyeceğinizi açıklar MsgLoadOptions sınıf. MsgLoadOptions sınıfı, MSG dosyalarının nasıl yükleneceğini yönetmek için çeşitli özellikler sunar; bunlar arasında RTF içeriğini koruma veya TNEF eklerini yönetme seçenekleri bulunur.

  1. MsgLoadOptions bir örnek oluşturun.
  2. Yüklemeyi özelleştirmek için istediğiniz özellikleri ayarlayın.
  3. MSG dosyasını şu kullanarak yükleyin: MailMessage.Load() metod.
using Aspose.Email;

// Create MsgLoadOptions
var loadOptions = new MsgLoadOptions
{
    // Set load options
    KeepOriginalEmailAddresses = true, // Preserve original email addresses
    PreferredTextEncoding = Encoding.UTF8, // Set preferred encoding
    PreserveRtfContent = true, // Keep RTF content in the message
    PreserveTnefAttachments = true, // Handle TNEF attachments
    RemoveSignature = false, // Keep the signature
    Timeout = 5000 // Set timeout to 5 seconds
};

// Load the MSG file
var msg = MailMessage.Load("file.msg", loadOptions);

MsgLoadOptions Özellikleri

  • KeepOriginalEmailAddresses: Orijinal e-posta adreslerinin korunup korunmayacağını gösterir. Varsayılan false.
  • PreferredTextEncoding: Mesaj konusunun ve gövdesinin tercih edilen kodlamasını tanımlar. Varsayılan null.
  • PreserveEmbeddedMessageFormat: Gömülü mesajların formatının korunup korunmayacağını belirler. Varsayılan false.
  • PreserveRtfContent: RTF gövde içeriğinin korunup korunmayacağını belirtir MailMessage. Varsayılan false.
  • PreserveTnefAttachments: TNEF ekleme yükleme davranışını yönetir. Varsayılan false.
  • RemoveSignature: Yükleme sırasında imzanın kaldırılıp kaldırılmayacağını belirler. Varsayılan false.
  • Zaman Aşımı: Dönüştürme sırasında biçimlendirme süresini milisaniye cinsinden sınırlar. Varsayılan 3000 ms.

TNEF’den Yükle

TNEF eml dosyasını … ile nasıl yükleyeceğinizi öğrenin TnefLoadOptions sınıf. Bu sınıf, kodlamayı yönetmek ve yükleme sürecinde imzaları kaldırmak için seçenekler sunar.

  1. TnefLoadOptions örneğini oluşturun.
  2. Özellikleri gerektiği gibi yapılandırın.
  3. Kullan MailMessage.Load() TNEF dosyasını yükleyen metod.
using Aspose.Email;

// Instantiate TnefLoadOptions
var loadOptions = new TnefLoadOptions
{
    // Configure load options
    PreferredTextEncoding = Encoding.UTF8, // Set encoding preference
    PreserveEmbeddedMessageFormat = true, // Preserve embedded message formats
    RemoveSignature = true // Remove signatures during loading
};

// Load the TNEF file
var tnef = MailMessage.Load("file.eml", loadOptions);

TnefLoadOptions Özellikleri

  • MessageFormat: E-posta mesajı formatını temsil eder; örneğin EML, MSG veya MHTML. Varsayılan: EML.
  • PreferredTextEncoding: Mesaj konusunun ve gövdesinin tercih edilen kodlamasını ayarlar. Varsayılan: null.
  • PreserveEmbeddedMessageFormat: Gömülü mesajların formatının korunup korunmayacağını gösterir. Varsayılan: false.
  • RemoveSignature: Yükleme sırasında imzanın kaldırılıp kaldırılmayacağını belirtir. Varsayılan: false.

Dosya Formatlarını Tespit Etme

Aspose.Email API, sağlanan mesaj dosyasının dosya formatını tespit etme yeteneği sağlar. The DetectFileFormat metodu FileFormatUtil bu amaçla kullanılabilecek sınıf. Aşağıdaki sınıflar ve yöntemler, yüklü dosya formatını tespit etmek için kullanılabilir.

Aşağıdaki kod parçacığı, dosya formatlarını nasıl tespit edeceğinizi gösterir.

Mesajları Kaydet ve Dönüştür

Aspose.Email, herhangi bir mesaj tipini başka bir formata dönüştürmeyi kolaylaştırır. Bu özelliği göstermek için, bu makaledeki kod diskten üç tip mesaj yükleyip bunları diğer formatlarda geri kaydeder. Temel sınıf SaveOptions ve sınıflar EmlSaveOptions, MsgSaveOptions, MhtSaveOptions, HtmlSaveOptions kaydederken ek ayarlar için MailMessage diğer formatlarda mesaj kaydetmek için kullanılabilir. Makale, bu sınıfları kullanarak örnek bir e-postayı şu şekilde kaydetmeyi gösterir:

  • EML formatı.
  • Outlook MSG.
  • MHTML formatı.
  • HTML formatı.

EML’ye Kaydet

Aşağıdaki kod parçacığı, bir EML mesajını nasıl yükleyeceğinizi ve aynı formatta diske kaydedeceğinizi gösterir.

Orijinal Sınırları Koru

Aşağıdaki kod parçacığı, EML’yi nasıl yükleyip orijinal sınırları koruyarak EML olarak kaydedeceğinizi gösterir.

TNEF Eklerini Koru

Aşağıdaki kod parçacığı, TNEF eklerini koruyarak EML olarak nasıl kaydedileceğini gösterir.

EML’yi MSG’ye Kaydet

Aşağıdaki kod parçacığı, bir EML mesajını yükleyip uygun seçeneği kullanarak MSG’ye nasıl dönüştüreceğinizi gösterir: SaveOptions.

Tarihleri Koru

Bu MsgSaveOptions sınıf, kaynak mesajı tarihleri koruyarak bir Outlook Mesaj dosyası (MSG) olarak kaydetmenizi sağlar. Aşağıdaki kod örneği, Tarihler Korunarak MSG olarak nasıl kaydedileceğini gösterir.

EML’yi MHTML’ye Kaydet

İstenilen sonuçları elde etmek için farklı MHTML seçenekleri kullanılabilir. Aşağıdaki kod parçacığı, bir EML mesajını şuna yüklemeyi gösterir MailMessage ve mesaj tarihini UTC sisteminde tutarak MHTML’ye dönüştür.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET

// Set options for MHTML output
MhtSaveOptions saveOptions = SaveOptions.DefaultMhtml;
saveOptions.PreserveOriginalDate = false; // save a message date as UTC date

// Initialize and load an existing EML file
using (MailMessage mailMessage = MailMessage.Load(folderPath + "Message.eml"))
{
    mailMessage.Save(folderPath + "Message_out.mhtml", saveOptions);
}

Dönüştürme Seçenekleri

Bu MhtSaveOptions sınıf, e-posta mesajlarını MHTML formatında kaydetmek için ek seçenekler sağlar. Enumerator MhtFormatOptions çıktı MHTML’ye ek e-posta bilgileri yazılmasını mümkün kılar. Aşağıdaki ek alanlar yazılabilir:

  • WriteHeader – e-posta başlığını çıktı dosyasına yazar.
  • WriteOutlineAttachments – özet eklerini çıktı dosyasına yazar.
  • WriteCompleteEmailAddress – tam e-posta adresini çıktı dosyasına yazar.
  • NoEncodeCharacters – karakterlerin aktarım kodlaması kullanılmamalıdır.
  • HideExtraPrintHeader – çıktı dosyasının üst kısmındaki ekstra baskı başlığını gizle.
  • WriteCompleteToEmailAddress – alıcının tam e-posta adresini çıktı dosyasına yazar.
  • WriteCompleteFromEmailAddress – göndericinin tam e-posta adresini çıktı dosyasına yazar.
  • WriteCompleteCcEmailAddress – karbon kopyalı alıcıların tam e-posta adreslerini çıktı dosyasına yazar.
  • WriteCompleteBccEmailAddress – gizli karbon kopyalı alıcıların tam e-posta adresini çıktı dosyasına yazar.
  • RenderCalendarEvent – takvim etkinliğinden metni çıktı dosyasına yazar.
  • SkipByteOrderMarkInBody – Byte Order Mark (BOM) baytlarını çıktı dosyasına yazar.
  • RenderVCardInfo – VCard AlternativeView’den metni çıktı dosyasına yazar.
  • DisplayAsOutlook – From başlığını göster.
  • RenderTaskFields – belirli Görev alanlarını çıktı dosyasına yazar.
  • None – Ayar belirtilmedi.

Aşağıdaki kod parçacığı, EML dosyalarını isteğe bağlı ayarlarla MHTML’e nasıl dönüştüreceğinizi gösterir.

Takvim Etkinliklerini Oluştur

Bu MhtFormatOptions.RenderCalendarEvent Takvim etkinliklerini çıkış MHTML’ye render eder. Aşağıdaki kod örneği, MHTML’ye dönüştürürken takvim etkinliklerinin nasıl render edileceğini gösterir.

Satır İçi Görseller Olmadan E-postayı MHT’ye Dışa Aktarma

Özelleştirilmiş Saat Dilimiyle E-postayı MHT’ye Dışa Aktarma

MailMessage class, şunları sağlar TimeZoneOffset MHT’ye dışa aktarırken özelleştirilmiş Saat Dilimini ayarlamak için özellik. Aşağıdaki kod parçacığı, özelleştirilmiş Saat Dilimi ile e-postayı MHT’ye nasıl dışa aktaracağınızı gösterir.

Yazı Tipi Ayarı

EML’yi HTML’ye Kaydet

Bu HtmlSaveOptions sınıf, ileti gövdesini HTML olarak dışa aktarmanıza olanak tanır. Aşağıdaki kod parçacığı, bir iletiyi HTML olarak nasıl kaydedeceğinizi gösterir.

Gömülü Kaynaklar Olmadan Kaydet

EML’yi OFT’ye Kaydet

Aşağıdaki kod parçacığı, bir iletiyi Outlook şablonu (.oft) dosyası olarak nasıl kaydedeceğinizi gösterir.

EML’yi MSG’ye Dönüştür (MailMessage’dan MapiMessage’ye)

Birini dönüştürmek için MailMessage EML dosyasından yüklendiği nesneyi bir MapiMessage nesne, şu kullanın MapiConversionOptions sınıf. Bu dönüşüm genellikle gereklidir çünkü bu iki nesne farklı amaçlara hizmet eder ve e-posta işleme sürecinde ayrı ihtiyaçları karşılar. MapiMessage özellikle Microsoft Outlook ve Exchange Server ile uyumluluk sağlamak için tasarlanmıştır, çünkü Mesaj Uygulama Programlama Arayüzü (MAPI) formatına uyar. Bu, MSG dosyalarına dönüştürülen e-postaların Microsoft ürünleriyle tam uyumlu olmasını sağlar ve Outlook içinde doğrudan açılmalarına, değiştirilmelerine ve yönetilmelerine olanak tanır.

Bu dönüşüm, e-postaların arşivlenmesi, indekslenmesi veya MAPI formatı, PST/OST, OLM depoları gibi gerektiren depolama sistemleri tarafından işlenmesi gerektiğinde de gereklidir. The MapiConversionOptions sınıf, orijinal ileti formatını koruma, orijinal tarihleri tutma ve dönüşüm sırasında RTF gövdesini sıkıştırma gibi ek seçenekleri belirlemenizi sağlar. Aşağıdaki kod örneği, .eml formatında bir dosyadan e-posta yükleyip Outlook .msg formatına dönüştürmenin özelleştirilebilir olduğunu ancak dönüşüm sırasında orijinal e-postanın belirli özelliklerinin korunduğunu gösterir.

  1. Bir örnek oluştur MapiConversionOptions ve özelliklerini yapılandır.
  2. Dönüştür MailMessage nesneyi bir MapiMessage yapılandırılmış dönüşüm seçeneklerini kullanan nesne.
MailMessage eml = MailMessage.Load("email.eml", new EmlLoadOptions());

// Create an instance of MapiConversionOptions
var conversionOptions = new MapiConversionOptions
{
    // Configure MapiConversionOptions
    Format = OutlookMessageFormat.Unicode, // Use Unicode format for MSG
    PreserveEmbeddedMessageFormat = true, // Preserve the format of embedded messages
    PreserveOriginalAddresses = true, // Keep original email addresses
    PreserveOriginalDates = true, // Preserve original dates
    PreserveEmptyDates = false, // Generate new dates if original are empty
    RemoveSignature = false, // Do not remove the signature
    UseBodyCompression = true, // Enable RTF body compression
    ForcedRtfBodyForAppointment = false // Disable forced RTF body for appointments
};

// Convert MailMessage to MapiMessage
MapiMessage msg = MapiMessage.FromMailMessage(eml, conversionOptions);

MapiConversionOptions’un Mevcut Özellikleri

  • ASCIIFormat: Döndürür MapiConversionOptions yapılandırılmış OutlookMessageFormat ASCII olarak, ile PreserveSignature false olarak ayarlayın ve UseBodyCompression false olarak ayarlayın. Bu seçenek, yalın bir ASCII formatı dönüşümüne ihtiyacınız olduğunda faydalıdır.

  • UnicodeFormat: Döndürür MapiConversionOptions ile OutlookMessageFormat Unicode olarak ayarlayın ve her ikisi PreserveSignature ve UseBodyCompression false olarak ayarlayın. MSG dosyalarında daha kapsamlı karakter desteği için bu seçeneği kullanın.

  • ForcedRtfBodyForAppointment: true olarak ayarlandığında, takvim randevuları için RTF gövdesi kullanılmasını zorlar. Bu, belirli e-posta istemcileriyle uyumluluğu sağlamak için faydalıdır. Varsayılan true.

  • Format: MSG dosyası için çıktı formatını belirtir. Şu değerlerden birine ayarlanabilir OutlookMessageFormat.ASCII veya OutlookMessageFormat.Unicode, dönüştürülen MSG’nin ASCII ya da Unicode kodlamasını kullanıp kullanmayacağını kontrol eder.

  • PreserveEmbeddedMessageFormat: Gömülü mesajların dönüşüm sırasında orijinal EML formatının korunup korunmayacağını belirler MapiMessage. Bunu true olarak ayarlamak, gömülü e-postaların orijinal yapısını korumasını sağlar. Varsayılan false.

  • PreserveEmptyDates: true olarak ayarlanırsa, EML’den orijinal kaydetme ve değiştirme tarihlerini korur. Aksi takdirde, orijinal tarih boşsa yeni tarihler oluşturulur.

  • PreserveOriginalAddresses: true olarak ayarlanırsa, orijinal e-posta adreslerini doğrulama olmadan korur. Bu, katı standartlara uymayan ancak olduğu gibi korunması gereken e-posta adresleriyle çalışırken faydalıdır. Varsayılan false.

  • PreserveOriginalDates: Dönüştürme sırasında orijinal gönderim ve alım tarihlerinin korunmasını sağlar. Bunu true olarak ayarlamak, daha iyi tarihsel doğruluk için bu tarihleri saklar.

  • RemoveSignature: Mesajın dönüşüm sırasında mevcut ise dijital imzanın kaldırılıp kaldırılmayacağını kontrol eder. Varsayılan false’tur, yani imza açıkça kaldırılmadıkça tutulur.

  • UseBodyCompression: true olarak ayarlanırsa RTF gövde sıkıştırmasını etkinleştirir. Bu, özellikle zengin biçimlendirmeye sahip büyük mesajlarda MSG dosyasının boyutunu azaltmaya yardımcı olabilir.