Mesajların Yüklenmesi ve Kaydedilmesi

E-posta Mesajlarını Yükleme ve Kaydetme

Bir Dosya Formatı Tespit Et

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.

Bir E-posta Mesajı Yükle

Belirli yükleme seçenekleriyle bir mesaj yüklemek için Aspose.Email şunu sağlar: LoadOptions aşağıdaki gibi kullanılabilecek sınıf:

Yükleme Sırasında Gömülü Mesaj Formatını Koru

E-posta Mesajlarını 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ı.

Bir E-posta Mesajını Yükle ve 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ı Koruyarak Bir E-posta Mesajını Yükle ve Kaydet

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 Koruyarak EML Olarak Kaydetme

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ı nasıl yükleyeceğinizi ve uygun seçenek kullanarak MSG’ye dönüştüreceğinizi gösterir SaveOptions.

EML’yi Tarihleri Koruyarak MSG’ye Kaydet

Bu MsgSaveOptions sınıf, kaynak mesajı tarihleri koruyarak bir Outlook Mesaj dosyası (MSG) olarak kaydetmenizi sağlar. Aşağıdaki kod parçacığı, Tarihleri Koruyarak MSG Olarak Kaydetmeyi gösterir.

EML’yi MHTML olarak 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.

// Set options for MHTML output
MhtSaveOptions saveOptions = SaveOptions.getDefaultMhtml();
// save a message date as UTC date
saveOptions.setPreserveOriginalDate(false);

// Initialize and load an existing EML file
try (MailMessage mailMessage = MailMessage.load(dataDir + "Message.eml")) {
    mailMessage.save(outDir + "Message_out.mhtml", saveOptions);
}

EML’den Kaydederken MHT Başlıklarını Global Olarak Biçimlendir

Aspose.Email ile, Mht başlığı için global format seçeneklerini kullanabilirsiniz. Global seçenekler, tüm Mht başlıkları için ortak formatı ayarlar. MhtSaveOptions örneklerde. Bu özellik, her örnek için format ayarlamayı önlemek amacıyla tasarlanmıştır. MhtSaveOptions.

Aşağıdaki yöntemleri kullanın GlobalFormattingOptions sınıf ve aşağıdaki kod örneği, bir Mht başlığının formatını ayarlamak için:

// saveOptions1 and saveOptions2 have the same mht header formatting
MhtSaveOptions saveOptions1 = new MhtSaveOptions();
MhtSaveOptions saveOptions2 = new MhtSaveOptions();

EML’yi İsteğe Bağlı Ayarlarla MHTML’e Dönüştür

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 - ana ekleri çıktı dosyasına yazar.
  • WriteCompleteEmailAddress - tam e-posta adresini çıktı dosyasına yazar.
  • NoEncodeCharacters - karakterlerin transfer kodlaması kullanılmamalıdır.
  • HideExtraPrintHeader - çıktı dosyasının üst kısmındaki ekstra yazdırma başlığını gizler.
  • 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 - CC (kopya) alıcıların tam e-posta adreslerini çıktı dosyasına yazar.
  • WriteCompleteBccEmailAddress - BCC (gizli kopya) 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’dan metni çıktı dosyasına yazar.
  • DisplayAsOutlook - From başlığını görüntüler.
  • RenderTaskFields - belirli Görev alanlarını çıktı dosyasına yazar.
  • Yok - 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.

MHTML’ye Dönüştürürken Takvim Etkinliklerini Render Et

Bu MhtFormatOptions.RenderCalendarEvent takvim etkinliklerini çıktı MHTML’ye render eder. Aşağıdaki kod parçacığı, MHTML’ye dönüştürürken takvim etkinliklerini nasıl render edeceğinizi gösterir.

Satır İçi Görseller Olmadan E-posta’yı MHT’ye Aktar

Özelleştirilmiş Saat Dilimi ile E-postayı MHT’ye Aktarma

MailMessage class, şunları sağlar setTimeZoneOffset 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.

MailMessage msg = MailMessage.load(filename, new MsgLoadOptions());
msg.setDate(new Date());

// Set the timezone offset in milliseconds
msg.setTimeZoneOffset(5*60*60*1000);

MhtSaveOptions mhtOptions = new MhtSaveOptions();
mhtOptions.setMhtFormatOptions(MhtFormatOptions.WriteHeader);
msg.save(dataDir + "ExportToMHTWithCustomTimezone_out.mhtml", mhtOptions);

E-postayı EML’ye Aktarma

Aşağıdaki kod parçacığı, e-postaları EML formatına nasıl dışa aktaracağınızı gösterir.

E-postayı HTML Olarak 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.

Kaynaklara Göreceli Yol ile E-posta Mesajını HTML Olarak Kaydet

E-posta mesajlarını HTML formatına dışa aktarırken, e-posta kaynaklarını göreceli yollarla kaydetmeyi seçmek mümkündür. Bu özellik, çıktı HTML dosyasında kaynakların nasıl bağlandığına daha fazla esneklik kazandırır ve kaydedilen e-postaları farklı sistemlerde paylaşmayı ve görüntülemeyi kolaylaştırır. HtmlSaveOptions.UseRelativePathToResources özellik, kaynakları göreceli yollarla kaydetme imkanı sunar. Varsayılan özellik değeri false’tur (kaynaklar mutlak yollarla kaydedilir). True olarak ayarlandığında, kaynaklar göreceli yollarla kaydedilir. Göreceli yollara sahip HTML dosyaları daha taşınabilirdir ve barındırma ortamı dosya yapısından bağımsız olarak doğru görüntülenebilir. Gereksinimlere bağlı olarak mutlak ve göreceli yollar arasında seçim yapabilirsiniz. Kaynaklar için özel yolları şu özellik kullanarak tanımlayabilirsiniz: ResourceHtmlRenderingHandler event.

Kaynaklar için Varsayılan Göreceli Yol ile Kaydet

MapiMessage msg = MapiMessage.load(sourceFileName);

HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions();
htmlSaveOptions.setResourceRenderingMode(ResourceRenderingMode.SaveToFile);
htmlSaveOptions.setUseRelativePathToResources(true);

msg.save("target.html", htmlSaveOptions);

Bu durumda, kaynaklar .html dosyasıyla aynı yolda, [html dosya adı].files klasörüne kaydedilir ve HTML, kaynaklara göreceli yollarla referans verir.

Kaynaklara Mutlak Yol ile Kaydet

MapiMessage msg = MapiMessage.load(sourceFileName);

HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions();
htmlSaveOptions.setResourceRenderingMode(ResourceRenderingMode.SaveToFile);
htmlSaveOptions.setUseRelativePathToResources(false);

msg.save("target.html", htmlSaveOptions);

İlk durumda olduğu gibi, kaynaklar varsayılan olarak [html dosya adı].files klasörüne kaydedilir, ancak HTML kaynaklara mutlak yollarla referans verir.

ResourceHtmlRenderingHandler Olayı ile Özel Göreceli Yol

MapiMessage msg = MapiMessage.load(sourceFileName);

HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions();
htmlSaveOptions.setResourceRenderingMode(ResourceRenderingMode.SaveToFile);
htmlSaveOptions.setUseRelativePathToResources(false);

htmlSaveOptions.setResourceHtmlRenderingHandler(new ResourceHtmlRenderingHandler() {
    @Override
    public void invoke(Object sender, ResourceHtmlRenderingEventArgs args) {
        if (sender instanceof AttachmentBase) {
            AttachmentBase attachment = (AttachmentBase) sender;
            // Since UseRelativePathToResources = true, you should assign a relative path to the PathToResourceFile property.
            args.setPathToResourceFile("images\\" + attachment.getContentType().getName());
        }
    }
});

msg.save(targetPath + "A Day in the Park.html", htmlSaveOptions);

Kullanarak ResourceHtmlRenderingHandler event, kaynaklar için özel göreceli veya mutlak yollar ayarlayabilirsiniz. Yolları şu şekilde özelleştirirken ResourceHtmlRenderingHandler 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.

HTML’e Dönüştürürken Mesajdaki Özelleştirilmiş Simgeleri Koru

Bazen mesaj, mesaj gövdesinde simge resimleri olarak gösterilen satır içi ekler içerir. Bu tür mesajlar, HTML’e dönüştürülürken simge resimlerinin kaybolması nedeniyle sorun yaratabilir. Bunun nedeni eklerin simgelerinin doğrudan mesaj içinde tutulmamasıdır.

Aspose.Email kullanıcısı, mesajı HTML’e dönüştürürken eklerin ikonlarını özelleştirebilir. Bunun için, HtmlSaveOptions.ResourceHtmlRendering event, bir e-posta mesajını HTML dosyası olarak kaydederken kaynak dosyaların (ekler gibi) işlenmesini özelleştirmek için kullanılır. Aşağıdaki kod örneğinde, event işleyicisi, ekin içerik türüne göre kaynak dosyaların (ikonlar) yolunu dinamik olarak ayarlamak için kullanılır. Bu, dosya tipine göre HTML çıktısındaki kaynakların özelleştirilmiş işlenmesini sağlar.


 HtmlSaveOptions options = new HtmlSaveOptions();

options.setResourceHtmlRenderingHandler(new ResourceHtmlRenderingHandler() {

   @Override

   public void invoke(Object sender, ResourceHtmlRenderingEventArgs e) {

        AttachmentBase attachment = (AttachmentBase) sender;

        e.setCaption(attachment.getContentType().getName());

       if (attachment.getContentType().getName().endsWith(".pdf")) {

            e.setPathToResourceFile("pdf_icon.png");

       } else if (attachment.getContentType().getName().endsWith(".docx")) {

            e.setPathToResourceFile("word_icon.jpg");

       } else if (attachment.getContentType().getName().endsWith(".jpg")) {

            e.setPathToResourceFile("jpeg_icon.png");

       } else {

            e.setPathToResourceFile("not_found_icon.png");

       }

   }

});

options.setResourceRenderingMode(ResourceRenderingMode.SubstituteFromFile);

String fileName = "message.msg";

MailMessage mailMessage = MailMessage.load(fileName);

mailMessage.save("fileName.html", options);

EML’yi HTML Olarak Kaydederken Zaman ve Saat Dilimini Ayarlama

Aspose.Email kullanıcıları zaman ve saat dilimi görüntüleme biçimlerini şu konumda ayarlayabilir: HtmlSaveOptions. The HeadersFormattingOptions sınıf, MailMessage’ı Mhtml veya Html formatında kaydederken başlık biçimlendirme seçeneklerini belirtmenizi sağlar. Aşağıdaki yöntemler HtmlFormatOptions sınıf, çıktı dosyasında görüntülenecek alanları belirtir:

  • RenderCalendarEvent - Takvim etkinliğinden gelen metnin çıktı mhtml’ye yazılacağını gösterir.
  • RenderVCardInfo - VCard AlternativeView’den gelen metnin çıktı HTML’ye yazılacağını gösterir.

Aşağıdaki kod örneği, EML’yi HTML olarak kaydederken zaman ve saat dilimini nasıl ayarlayacağınızı gösterir:

MailMessage msg = MailMessage.load("fileName");
HtmlSaveOptions options = new HtmlSaveOptions();
options.setHtmlFormatOptions(HtmlFormatOptions.WriteHeader);
options.getFormatTemplates().set_Item("DateTime", "MM d yyyy HH:mm tt");

Kaynakları Gömmeden HTML Olarak Kaydetme

Bir İletiyi Outlook Şablonu (.oft) Dosyası Olarak Kaydetme

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