Конвертировать ICS в другие форматы
Конвертировать ICS в EML
Для представления календарного события или записи Aspose.Email имеет класс Appointment. Следующий пример кода демонстрирует процесс конвертации ICS в EML:
- Загрузите файл ICS для конвертации с помощью метода Calendar.Appointment.Load.
- Создайте новый объект MailMessage для хранения данных календаря.
- Добавьте запись из файла ICS в EML как альтернативный вид с помощью метода RequestApointment().
- Сохраните файл 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
Следующий пример кода демонстрирует процесс конвертации:
- Загрузите файл ICS для конвертации с помощью метода Calendar.Appointment.Load.
- Создайте новый объект MailMessage для хранения данных календаря.
- Добавьте запись из файла ICS в EML как альтернативный вид с помощью метода RequestApointment().
- Сохраните файл 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.
- Загрузите файл ICS для конвертации с помощью метода Calendar.Appointment.Load.
- Создайте новый объект MailMessage для хранения данных календаря.
- Добавьте запись из файла ICS в EML как альтернативный вид с помощью метода RequestApointment().
- Создайте новый объект MboxrdStorageWriter.
- Добавьте 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:
- Загрузите файл ICS для конвертации с помощью метода Calendar.Appointment.Load.
- Создайте новый объект MailMessage для хранения конвертированных данных.
- Добавьте запись из файла ICS в EML как альтернативный вид с помощью метода RequestApointment().
- Сохраните файл 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 без потери данных или форматирования:
- Загрузите файл ICS с помощью метода Calendar.Appointment.Load() и создайте объект Appointment из данных календаря, хранящихся в файле.
- Вызовите метод 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:
- Создайте новый объект потока для хранения данных о записи в памяти.
- Загрузите данные о записи из файла ICS. Сохраните данные о записи в объекте потока в формате MSG с помощью метода Save().
- Загрузите данные о записи из потока, создав новый объект MapiMessage с использованием метода MapiMessage.Load() .
- Сохраните загруженные данные 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 в календарную папку:
- Создайте поток для хранения данных о записи.
- Загрузите данные о записи из файла ICS с помощью метода Appointment.Load() и сохраните его в потоке в формате MSG с помощью метода Appointment.Save.
- Загрузите файл Личного Хранилища с использованием метода FromFile класса PersonalStorage.
- Извлеките календарную папку из файла Личного Хранилища с помощью метода PersoanlStorage.GetPredefinedFolder .
- Используйте метод 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
Следующий пример кода демонстрирует процесс конвертации:
- Создайте поток для хранения данных о записи.
- Загрузите данные о записи из файла ICS с помощью метода Appointment.Load() и сохраните его в потоке в формате MSG с помощью метода Appointment.Save.
- Создайте новый PST файл с именем файла с помощью метода PersonalStorage.Create.
- Создайте календарную папку внутри PST файла для хранения записей с помощью метода CreatePredefinedFolder.
- Добавьте сообщение о записи в календарную папку внутри 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));