package com.aspose.email.examples.email;
import com.aspose.email.Appointment;
import com.aspose.email.EmlLoadOptions;
import com.aspose.email.EmlSaveOptions;
import com.aspose.email.FileCompatibilityMode;
import com.aspose.email.HtmlFormatOptions;
import com.aspose.email.HtmlSaveOptions;
import com.aspose.email.MailAddress;
import com.aspose.email.MailMessage;
import com.aspose.email.MailMessageSaveType;
import com.aspose.email.MapiConversionOptions;
import com.aspose.email.MapiMessage;
import com.aspose.email.MapiRecipient;
import com.aspose.email.MhtFormatOptions;
import com.aspose.email.MhtSaveOptions;
import com.aspose.email.MsgSaveOptions;
import com.aspose.email.SaveOptions;
import com.aspose.email.examples.Utils;
public class ConvertEmailMessages {
public static void main(String[] args) {
// The path to the resource directory.
String dataDir = Utils.getSharedDataDir(ConvertEmailMessages.class) + "email/";
// Loading EML and Saving as EML
loadingEMLAndSavingAsEML(dataDir);
// Loading EML and Saving as EML Preserving the Original Boundaries
loadingAndSavingAsEMLPreservingTheOriginalBoundaries(dataDir);
// Saving as EML Preserving TNEF Attachments
savingAsEMLPreservingTNEFAttachments(dataDir);
// Loading EML, Saving to MSG
loadingEMLSavingToMSG(dataDir);
// Saving as MSG with Preserved Dates
savingAsMSGWithPreservedDates(dataDir);
// Saving MailMessage as MHTML
savingMailMessageAsMHTML(dataDir);
// Converting to MHTML with Optional Settings
convertingToMHTMLWithOptionalSettings(dataDir);
// Rendering Calendar Events to MHTML
renderingCalendarEventsToMHTML(dataDir);
// Saving Message as HTML
savingMessageAsHTML(dataDir);
// Preserving Original Email Address
preservingOriginalEmailAddress(dataDir);
// Status of Recipients from a Meeting Request
statusOfRecipientsFromAMeetingRequest(dataDir);
}
public static void loadingEMLAndSavingAsEML(String dataDir) {
MailMessage msg = MailMessage.load(dataDir + "test.eml", new EmlLoadOptions());
// Save the Email message to disk by using the SaveOptions
msg.save(dataDir + "LoadAndSaveFileAsEML_out.eml", SaveOptions.getDefaultEml());
}
public static void loadingAndSavingAsEMLPreservingTheOriginalBoundaries(String dataDir) {
MailMessage eml = MailMessage.load(dataDir + "test.eml");
// Save as eml with preserved original boundares
EmlSaveOptions emlSaveOptions = new EmlSaveOptions(MailMessageSaveType.getEmlFormat());
emlSaveOptions.setPreserveOriginalBoundaries(true);
eml.save(dataDir + "PreserveOriginalBoundaries_out.eml", emlSaveOptions);
}
public static void savingAsEMLPreservingTNEFAttachments(String dataDir) {
MailMessage eml = MailMessage.load(dataDir + "PreserveOriginalBoundaries.eml");
// Save as eml with preserved thef attachment
EmlSaveOptions emlSaveOptions = new EmlSaveOptions(MailMessageSaveType.getEmlFormat());
emlSaveOptions.setFileCompatibilityMode(FileCompatibilityMode.PreserveTnefAttachments);
eml.save(dataDir + "PreserveTNEFAttachment_out.eml", emlSaveOptions);
}
public static void loadingEMLSavingToMSG(String dataDir) {
// Initialize and Load an existing EML file by specifying the MessageFormat
MailMessage eml = MailMessage.load(dataDir + "test.eml");
//Save the Email message to disk in Unicode format
eml.save(dataDir + "LoadingEMLSavingToMSG_out.msg", SaveOptions.getDefaultMsgUnicode());
}
public static void savingAsMSGWithPreservedDates(String dataDir) {
MailMessage eml = MailMessage.load(dataDir + "test.eml");
// Save as msg with preserved dates
MsgSaveOptions msgSaveOptions = new MsgSaveOptions(MailMessageSaveType.getOutlookMessageFormatUnicode());
msgSaveOptions.setPreserveOriginalDates(true);
eml.save(dataDir + "SavingAsMSGWithPreservedDates_out.msg", msgSaveOptions);
}
public static void savingMailMessageAsMHTML(String dataDir) {
// Initialize and Load an existing EML file by specifying the MessageFormat
MailMessage eml = MailMessage.load(dataDir + "test.eml");
eml.save(dataDir + "SavingMailMessageAsMHTML_out.mthml", SaveOptions.getDefaultMhtml());
}
public static void convertingToMHTMLWithOptionalSettings(String dataDir) {
MailMessage eml = MailMessage.load(dataDir + "test.eml");
// Save as Mht with header
MhtSaveOptions mhtSaveOptions = new MhtSaveOptions();
int iSaveOptions = MhtFormatOptions.WriteHeader | MhtFormatOptions.HideExtraPrintHeader;
mhtSaveOptions.setMhtFormatOptions(iSaveOptions);
eml.save(dataDir + "ConvertingToMHTMLWithOptionalSettings_out.mht", mhtSaveOptions);
}
public static void renderingCalendarEventsToMHTML(String dataDir) {
Appointment appointment = Appointment.load(dataDir + "test.ics");
MailMessage outlookMsg = new MailMessage();
outlookMsg.addAlternateView(appointment.requestApointment());
MhtSaveOptions opt = SaveOptions.getDefaultMhtml();
opt.setMhtFormatOptions(opt.getMhtFormatOptions() | MhtFormatOptions.RenderCalendarEvent);
outlookMsg.save(dataDir + "RenderingCalendarEventsToMHTML_out.mht", opt);
}
public static void savingMessageAsHTML(String dataDir) {
MailMessage msg = MailMessage.load(dataDir + "Message.msg");
msg.save(dataDir + "SavingMessageAsHTML_out1.html", SaveOptions.getDefaultHtml());
//or
MailMessage eml = MailMessage.load(dataDir + "test.eml");
HtmlSaveOptions options = SaveOptions.getDefaultHtml();
options.setEmbedResources(false);
options.setHtmlFormatOptions(HtmlFormatOptions.WriteHeader | HtmlFormatOptions.WriteCompleteEmailAddress);
eml.save(dataDir + "SavingMessageAsHTML_out2.html", options);
}
public static void preservingOriginalEmailAddress(String dataDir) {
MailMessage mailMsg = new MailMessage();
mailMsg.setSubject("This is subject");
mailMsg.setBody("This is body");
String address = "a\"xasadf@xam.com";
mailMsg.setFrom(new MailAddress(address));
mailMsg.getTo().addMailAddress(new MailAddress(address));
MapiConversionOptions cOpt = MapiConversionOptions.getUnicodeFormat();
cOpt.setPreserveOriginalAddresses(true);
MapiMessage outlookMsg = MapiMessage.fromMailMessage(mailMsg, cOpt);
outlookMsg.save(dataDir + "PreservingOriginalEmailAddress_out.msg");
}
public static void statusOfRecipientsFromAMeetingRequest(String dataDir) {
MapiMessage msg = MapiMessage.fromFile(dataDir + "Message.msg");
for (MapiRecipient rec : msg.getRecipients()) {
rec.getRecipientTrackStatus();
}
}
}