Конвертировать ICS в другие форматы

Конвертировать ICS в EML

Для представления календарного события или записи Aspose.Email имеет класс Appointment. Следующий пример кода демонстрирует процесс конвертации ICS в EML:

  1. Загрузите файл ICS для конвертации с помощью метода Calendar.Appointment.Load.
  2. Создайте новый объект MailMessage для хранения данных календаря.
  3. Добавьте запись из файла ICS в EML как альтернативный вид с помощью метода RequestApointment().
  4. Сохраните файл EML с конвертированными данными с помощью метода Save с параметрами EmlSaveOptions, указывая тип сохранения как EmlFormat.
// load the ICS file to be converted
var ics = Calendar.Appointment.Load("My File.ics");
// create an EML
var eml = new MailMessage();
// add appointment to EML
eml.AlternateViews.Add(ics.RequestApointment());
// save the EML
eml.Save("Saved File.eml", new EmlSaveOptions(MailMessageSaveType.EmlFormat));

Конвертировать ICS в EMLX

Чтобы конвертировать файл ICS в формат EMLx, следуйте инструкциям из статьи Конвертировать ICS в EML и сохраните файл .emlx, как показано в следующей строке кода:

// save as a EMLX
eml.Save("Saved File.emlx", new EmlSaveOptions(MailMessageSaveType.EmlxFormat));

Конвертировать ICS в HTML

Следующий пример кода демонстрирует процесс конвертации:

  1. Загрузите файл ICS для конвертации с помощью метода Calendar.Appointment.Load.
  2. Создайте новый объект MailMessage для хранения данных календаря.
  3. Добавьте запись из файла ICS в EML как альтернативный вид с помощью метода RequestApointment().
  4. Сохраните файл EML с конвертированными данными с помощью метода Save с параметрами HtmlSaveOptions, чтобы предоставить параметры форматирования для сохраняемого HTML файла. В данном конкретном случае используется HtmlFormatOptions.WriteHeader, чтобы включить HTML заголовок в выходной файл, в то время как HtmlFormatOptions.RenderCalendarEvent используется для вывода любых календарных событий, содержащихся в EML сообщении, в формате, подходящем для отображения.
// load the ICS file to be converted
var ics = Aspose.Email.Calendar.Appointment.Load("My File.ics");
// create an EML
var eml = new MailMessage();
// add appointment to EML
eml.AlternateViews.Add(ics.RequestApointment());
// save EML as a HTML
eml.Save("Saved File.html", new HtmlSaveOptions { HtmlFormatOptions = HtmlFormatOptions.WriteHeader | HtmlFormatOptions.RenderCalendarEvent });

Используйте другие значения и свойства перечисления HtmlFormatOptions и класса HtmlSaveOptions, чтобы установить параметры формата по мере необходимости.

Конвертировать ICS в MBOX

Следующий пример кода демонстрирует процесс конвертации ICS в MBOX. Он загружает файл ICS, создает EML сообщение, добавляет детали записи из файла ICS в EML сообщение и затем записывает EML сообщение в файл хранения MBOX.

  1. Загрузите файл ICS для конвертации с помощью метода Calendar.Appointment.Load.
  2. Создайте новый объект MailMessage для хранения данных календаря.
  3. Добавьте запись из файла ICS в EML как альтернативный вид с помощью метода RequestApointment().
  4. Создайте новый объект MboxrdStorageWriter.
  5. Добавьте EML сообщение в хранилище, записав содержимое сообщения в формате MBOX в указанный файл MBOX.
// load the ICS file to be converted
var ics = Aspose.Email.Calendar.Appointment.Load("My File.ics");
// create an EML
var eml = new MailMessage();
// add appointment to EML
eml.AlternateViews.Add(ics.RequestApointment());
// create an MBOX storage
using var mboxStorage = new MboxrdStorageWriter("Saved File.mbox" , false);
// add EML to MBOX storage
mboxStorage.WriteMessage(eml);

Конвертировать ICS в MHTML

Следующий пример кода демонстрирует представление всех этих шагов в процессе конвертации с использованием библиотеки Aspose.Email для .NET:

  1. Загрузите файл ICS для конвертации с помощью метода Calendar.Appointment.Load.
  2. Создайте новый объект MailMessage для хранения конвертированных данных.
  3. Добавьте запись из файла ICS в EML как альтернативный вид с помощью метода RequestApointment().
  4. Сохраните файл EML с конвертированными данными с помощью метода Save с MhtSaveOptions, чтобы предоставить параметры сохранения для MHTML файла. В данном конкретном случае используется MhtFormatOptions.WriteHeader, чтобы включить заголовок сообщения электронной почты в выходной файл, в то время как MhtFormatOptions.RenderCalendarEvent используется для вывода любых календарных событий, содержащихся в EML сообщении, в формате, подходящем для отображения.
// load the ICS file to be converted
var ics = Aspose.Email.Calendar.Appointment.Load("My File.ics");
// create an EML
var eml = new MailMessage();
// add appointment to EML
eml.AlternateViews.Add(ics.RequestApointment());
// save EML as a MHTML
eml.Save("Saved File.mht", new MhtSaveOptions{MhtFormatOptions = MhtFormatOptions.WriteHeader | MhtFormatOptions.RenderCalendarEvent});

Этот подход гарантирует, что конвертированный MHTML файл сохраняет детали и форматирование календарного события, обеспечивая эффективный обмен и просмотр на различных платформах и почтовых клиентах.

Пользуйтесь другими значениями и свойствами перечисления MhtFormatOptions и класса MhtSaveOptions, чтобы установить параметры формата по мере необходимости.

Конвертировать ICS в MSG

Конвертация файлов ICS (iCalendar) в формат MSG имеет смысл для лучшей совместимости с Microsoft Outlook, так как файлы MSG обычно используются для хранения электронных сообщений, записей и других данных, связанных с Outlook. Следующий пример кода демонстрирует, как загрузить файл ICS, обработать его содержимое и сохранить его в файл MSG без потери данных или форматирования:

  1. Загрузите файл ICS с помощью метода Calendar.Appointment.Load() и создайте объект Appointment из данных календаря, хранящихся в файле.
  2. Вызовите метод Save на объекте Appointment, чтобы конвертировать и сохранить загруженные данные записи из файла ICS в файл MSG в указанном месте.
// load the ICS file to be converted
// save ICS as a MSG
Aspose.Email.Calendar.Appointment.Load("My File.ics").Save("Saved File.msg", AppointmentSaveFormat.Msg);

Конвертировать ICS в OFT

Процесс включает в себя загрузку файлов ICS и сохранение их как файлов MSG с последующей конвертацией в формат OFT:

  1. Создайте новый объект потока для хранения данных о записи в памяти.
  2. Загрузите данные о записи из файла ICS. Сохраните данные о записи в объекте потока в формате MSG с помощью метода Save().
  3. Загрузите данные о записи из потока, создав новый объект MapiMessage с использованием метода MapiMessage.Load() .
  4. Сохраните загруженные данные MapiMessage как файл шаблона Outlook, используя метод Save() с предоставленными параметрами формата SaveOptions.DefaultOft.
// load the ICS file to be converted
// save ICS as a MSG
using var msgStream = new MemoryStream();
Aspose.Email.Calendar.Appointment.Load("My File.ics").Save(msgStream, AppointmentSaveFormat.Msg);
// save MSG as an OFT
MapiMessage.Load(ms).Save("Saved File.oft", SaveOptions.DefaultOft);

Конвертировать ICS в OST

Aspose.Email предоставляет функциональность для загрузки файла ICS, сохранения его как файла MSG, затем открытия файла OST, доступа к календарным папкам внутри файла и легкого добавления файлов MSG в календарную папку:

  1. Создайте поток для хранения данных о записи.
  2. Загрузите данные о записи из файла ICS с помощью метода Appointment.Load() и сохраните его в потоке в формате MSG с помощью метода Appointment.Save.
  3. Загрузите файл Личного Хранилища с использованием метода FromFile класса PersonalStorage.
  4. Извлеките календарную папку из файла Личного Хранилища с помощью метода PersoanlStorage.GetPredefinedFolder .
  5. Используйте метод FolderInfo.AddMessage для добавления сообщения о записи в календарную папку в файле OST.
// load the ICS file to be converted
// save ICS as a MSG
using var msgStream = new MemoryStream();
Aspose.Email.Calendar.Appointment.Load("My File.ics").Save(msgStream, AppointmentSaveFormat.Msg);
// open an OST file
using var pst = PersonalStorage.FromFile("Saved File.ost");
// get a calendar folder
var calendarFolder = pst.GetPredefinedFolder(StandardIpmFolder.Appointments);
// add MSG to the calendar folder
calendarFolder.AddMessage(MapiMessage.Load(msgStream));

Конвертировать ICS в PST

Следующий пример кода демонстрирует процесс конвертации:

  1. Создайте поток для хранения данных о записи.
  2. Загрузите данные о записи из файла ICS с помощью метода Appointment.Load() и сохраните его в потоке в формате MSG с помощью метода Appointment.Save.
  3. Создайте новый PST файл с именем файла с помощью метода PersonalStorage.Create.
  4. Создайте календарную папку внутри PST файла для хранения записей с помощью метода CreatePredefinedFolder.
  5. Добавьте сообщение о записи в календарную папку внутри PST файла с помощью метода FolderInfo.AddMessage .
// load the ICS file to be converted
// save ICS as a MSG
using var msgStream = new MemoryStream();
Aspose.Email.Calendar.Appointment.Load("My File.ics").Save(msgStream, AppointmentSaveFormat.Msg);
// create a PST file
using var pst = PersonalStorage.Create("Saved File.pst", FileFormatVersion.Unicode);
// create a calendar folder
var calendarFolder = pst.CreatePredefinedFolder("Calendar", StandardIpmFolder.Appointments);
// add MSG to the calendar folder
calendarFolder.AddMessage(MapiMessage.Load(msgStream));