Aspose.Email.Outlook ile Mesaj Dosyalarını Yönetme

MSG’yi MIME mesaja Dönüştürme

Aspose.Email API, MSG dosyalarını MIME mesajlarına dönüştürme yeteneği sağlar, toMailMessage metod.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
MapiMessage msg = new MapiMessage(
                            "sender@test.com",
                            "recipient1@test.com; recipient2@test.com",
                            "Test Subject",
                            "This is a body of message.");
MailConversionOptions options = new MailConversionOptions();
options.setConvertAsTnef(true);
MailMessage mail = msg.toMailMessage(options);

MSG’yi EML’ye Dönüştürürken RTF Gövdesini Korumak

API, MSG’yi EML’ye dönüştürürken RTF gövdesini korumak için aşağıdaki yöntemleri sunar:

Aşağıdaki kod örnekleri, MailMessage içinde rtf gövdesini nasıl koruyacağınızı gösterir:

MsgLoadOptions options = new MsgLoadOptions();
options.setPreserveRtfContent(true);
MailMessage message = MailMessage.load("fileName", options);
MapiMessage mapi = MapiMessage.load("fileName");
MailConversionOptions options = new MailConversionOptions();
options.setPreserveRtfContent(true);
MailMessage message = mapi.toMailMessage(options);

MSG’yi MHTML’ye Dönüştürürken Kategori Başlığını Korumak

Aspose.Email API, mesajı MHTML’ye dönüştürürken bir kategori başlığı ekleme imkanı sağlar. Bu özellik, MhtSaveOptions MailMessage’ı Mhtml formatında kaydederken ek bir seçenek olarak sınıf.

Aşağıdaki kod örneği, bir MapiMessage nesnesinden MHT (MHTML) dosyası nasıl oluşturulacağını, MhtSaveOptions kullanarak MHT dosyasının biçimlendirmesini ve başlıklarını özelleştirmeyi, e-posta mesajı için kategorileri ayarlamayı ve ardından kaydetmeden önce MHT dosyasının format şablonlarını ve render başlıklarını nasıl değiştireceğinizi gösterir.

 MapiMessage msg = new MapiMessage("from@aaa.com", "to@aaa.com", "subj", "body");

msg.setCategories(new String[] { "Urgently", "Important" });

MhtSaveOptions saveOptions = new MhtSaveOptions();

saveOptions.getFormatTemplates().set_Item(MhtTemplateName.CATEGORIES,

    saveOptions.getFormatTemplates().get_Item(MhtTemplateName.CATEGORIES).replace("Categories", "Les catégories"));

saveOptions.getRenderingHeaders().add(MhtTemplateName.CATEGORIES);

msg.save("fileName.mhtml", saveOptions);

Outlook Şablon Dosyası (.OFT) Okuma ve Yazma

Outlook şablonları, benzer bir e-posta mesajını tekrar tekrar göndermek istediğinizde çok faydalıdır. Her seferinde baştan mesaj hazırlamak yerine, önce mesajı Outlook’ta hazırlayın ve Outlook Şablonu (OFT) olarak kaydedin. Daha sonra, mesajı göndermeniz gerektiğinde, şablondan oluşturabilirsiniz; böylece gövde veya konu satırına aynı metni yazmak, biçimlendirme ayarlamak gibi zaman tasarrufu sağlanır. Aspose.Email 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:

  1. Şablonu şunu kullanarak yükle MailMessage sınıf.
  2. Bazı özellikleri güncelle.
  3. Mesajı MSG formatında kaydet.

Aşağıdaki kod parçacığı, OFT dosyasını nasıl yükleyeceğinizi, mesajı güncelleyeceğinizi ve MSG formatında kaydedeceğinizi gösterir.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// The path to the File directory.
String dataDir = "outlook/";

// Load the Outlook template (OFT) file in MailMessage's instance
MailMessage message = MailMessage.load(dataDir + "sample.oft", new MsgLoadOptions());

// Set the sender and recipients information
String senderDisplayName = "John";
String senderEmailAddress = "john@abc.com";
String recipientDisplayName = "William";
String recipientEmailAddress = "william@xzy.com";

message.setSender(new MailAddress(senderEmailAddress, senderDisplayName));
message.getTo().addMailAddress(new MailAddress(recipientEmailAddress, recipientDisplayName));
message.setHtmlBody(message.getHtmlBody().replace("DisplayName", "<b>" + recipientDisplayName + "</b>"));

// Set the name, location and time in email body
String meetingLocation = "<u>" + "Hall 1, Convention Center, New York, USA" + "</u>";
String meetingTime = "<u>" + "Monday, June 28, 2010" + "</u>";
message.setHtmlBody(message.getHtmlBody().replace("MeetingPlace", meetingLocation));
message.setHtmlBody(message.getHtmlBody().replace("MeetingTime", meetingTime));

// Save the message in MSG format and open in Office Outlook
MapiMessage mapimessage = MapiMessage.fromMailMessage(message);
mapimessage.setMessageFlags(MapiMessageFlags.MSGFLAG_UNSENT);
mapimessage.save(dataDir + "ReadAndWritingOutlookTemplateFile_out.msg");

Outlook MSG Dosyasını Şablon Olarak Kaydetme

Aşağıdaki kod parçacığı, Outlook MSG dosyasını şablon olarak nasıl kaydedeceğinizi gösterir.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// The path to the File directory.
String dataDir = "outlook/";

try (MapiMessage mapi = new MapiMessage("test@from.to", "test@to.to", "template subject", "Template body")) {
    mapi.saveAsTemplate(dataDir + "mapiToOft.msg");
}

Outlook MSG Dosyaları için Renk Kategorisi Ayarlama

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:

  1. Bir renk kategorisi ekle.
  2. Başka bir renk kategorisi ekle.
  3. Tüm kategorilerin listesini al.
  4. Tüm kategorileri kaldır.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// The path to the File directory.
String dataDir = "outlook/";

MapiMessage msg = MapiMessage.fromFile(dataDir + "message.msg");

// Add Two category
FollowUpManager.addCategory(msg, "Purple Category");
FollowUpManager.addCategory(msg, "Red Category");

// Retrieve the list of available categories
IList categories = FollowUpManager.getCategories(msg);

// Remove the specified category and then Clear all categories
FollowUpManager.removeCategory(msg, "Red Category");
FollowUpManager.clearCategories(msg);

MSG dosyasından Takip Bilgilerine Erişme

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 Teslim Alındı Bilgilerini Alma

Aşağıdaki kod parçacığı, okuma ve teslim alındı bilgilerini nasıl alacağınızı gösterir.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// The path to the File directory.
String dataDir = "outlook/";

MapiMessage msg = MapiMessage.fromFile(dataDir + "message.msg");
for (MapiRecipient recipient : msg.getRecipients()) {
    System.out.println("Recipient: " + recipient.getDisplayName());

    // Get the PR_RECIPIENT_TRACKSTATUS_TIME_DELIVERY property
    System.out.println("Delivery time: " + recipient.getProperties().get_Item(MapiPropertyTag.PR_RECIPIENT_TRACKSTATUS_TIME_DELIVERY).getDateTime());

    // Get the PR_RECIPIENT_TRACKSTATUS_TIME_READ property
    System.out.println("Read time" + recipient.getProperties().get_Item(MapiPropertyTag.PR_RECIPIENT_TRACKSTATUS_TIME_READ).getDateTime());
}

İletme ve Yanıt Mesajları Oluşturma

Aspose.Email API, iletme 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 bir metin olarak eklenir

Yanıt Mesajı Oluşturma

Aşağıdaki kod parçacığı, bir yanıt mesajı nasıl oluşturulacağını gösterir.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// The path to the File directory.
String dataDir = "outlook/";

MapiMessage originalMsg = MapiMessage.fromFile(dataDir + "message1.msg");
ReplyMessageBuilder builder = new ReplyMessageBuilder();

// Set ReplyMessageBuilder Properties
builder.setReplyAll(true);
builder.setAdditionMode(OriginalMessageAdditionMode.Textpart);
builder.setResponseText(
        "<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>");

MapiMessage replyMsg = builder.buildResponse(originalMsg);
replyMsg.save(dataDir + "reply_out.msg");

İletme Mesajı Oluşturma

Aşağıdaki kod parçacığı, bir iletme mesajı nasıl oluşturulacağını gösterir.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// The path to the File directory.
String dataDir = "outlook/";

MapiMessage originalMsg = MapiMessage.fromFile(dataDir + "message1.msg");
ForwardMessageBuilder builder = new ForwardMessageBuilder();
builder.setAdditionMode(OriginalMessageAdditionMode.Textpart);
MapiMessage forwardMsg = builder.buildResponse(originalMsg);
forwardMsg.save(dataDir + "forward_out.msg");

Mesaj Dönüştürürken Boş Tarihleri Koru

MapiConversionOptions.setPreserveEmptyDates(boolean) mesaj dönüştürürken boş tarihlerin korunup korunmayacağını gösteren özellik. Bu API Aspose.Email 21.5’te bulunur. Aşağıdaki kod parçacığı boş tarihleri nasıl koruyacağınızı gösterir.

MailMessage mailMessage = MailMessage.load("message.eml");
System.out.println(mailMessage.getDate()); // zero date
MapiConversionOptions mco = MapiConversionOptions.getUnicodeFormat();
// keep empty dates when converting a message
mco.setPreserveEmptyDates(true);
MapiMessage mapiMessage = MapiMessage.fromMailMessage(mailMessage, mco);
System.out.println(mapiMessage.getClientSubmitTime()); // zero date
// check zero date
if (mapiMessage.getClientSubmitTime().equals(JavaHelper.ZERO_DATE))
    System.out.println("ZERO DATE");