Работа с назначениями

Загрузка и сохранение назначения в формате ICS

Класс Appointment в Aspose.Email для Java может использоваться для загрузки назначения в формате ICS, а также для создания нового назначения и его сохранения на диск в формате ICS. В этой статье мы сначала создадим назначение и сохраним его на диск в формате ICS, а затем загрузим его.

Загрузка назначения в формате ICS

Для загрузки назначения в формате ICS необходимо выполнить следующие шаги:

  1. Создать экземпляр класса Appointment.
  2. Вызвать метод Load() с указанием пути к файлу ICS.
  3. Прочитать любое свойство, чтобы получить информацию о назначении (файл ICS).

Следующие фрагменты кода показывают, как загрузить назначение в формате ICS.

Создание назначения и сохранение на диск в формате ICS

Для создания назначения и его сохранения в формате ICS необходимо выполнить следующие шаги.

  1. Создать экземпляр класса Appointment и инициализировать его с помощью этого конструктора.
  2. Передать следующие аргументы в указанный выше конструктор
    1. Участники
    2. Описание
    3. Дата окончания
    4. Место
    5. Организатор
    6. Дата начала
    7. Краткое содержание
    8. Дата создания
    9. Дата последнего изменения
  3. Вызвать метод Save() и указать имя файла и формат в аргументах.

Назначение может быть открыто в Microsoft Outlook или любой программе, которая может загрузить файл ICS. Если файл открыт в Microsoft Outlook, он автоматически добавляет назначение в календарь Outlook.

Следующие фрагменты кода показывают, как создать и сохранить назначение на диск в формате ICS.

Сохранение назначений в формате MSG

Aspose.Email позволяет сохранять назначения непосредственно в .msg файлы. Доступны следующие общедоступные классы для настройки процесса сохранения назначений:

  • Класс AppointmentMsgSaveOptions с дополнительными опциями для сохранения назначений в формате msg.
  • Класс AppointmentIcsSaveOptions с дополнительными опциями для сохранения назначения в формате ics. Он был добавлен для замены устаревшего IcsSaveOptions.

Пример кода ниже показывает, как загрузить назначение из файла, а затем сохранить его в двух различных форматах: .ics и .msg.

Appointment appointment = Appointment.load("fileName");
appointment.save("fileName.ics", new AppointmentIcsSaveOptions());
appointment.save("fileName.msg", new AppointmentMsgSaveOptions());

Создание назначения с HTML-содержимым

Распространенной практикой является использование заголовка X-ALT-DESC в формате iCalendar (RFC 5545). Это расширенное свойство, которое предоставляет альтернативное описание календарного элемента или события в формате, удобном для чтения человеком. Этот заголовок часто используется для включения текстового или HTML представления описания события, что может быть полезно для совместимости со старым календарным программным обеспечением или для предоставления упрощенной версии описания. В случаях, когда основное описание не поддерживается или отображается неправильно в календарном приложении получателя, заголовок X-ALT-DESC используется для предоставления альтернативного описания события. Это позволяет отправителю включать различные представления описания события для обеспечения лучшей совместимости и доступности между различными календарными программами и платформами. Чтобы создать назначение с HTML-содержимым, установите свойство HtmlDescription в ‘true’. Попробуйте следующий пример кода, который демонстрирует, как создать и определить объект назначения с конкретными деталями и настройками, включая дату, время, место, организатора, участников и отформатированное описание:

Date startDate = new Date();
Appointment appointment = new Appointment("Bygget 83",
        startDate, // дата начала
        addHours(startDate, 1), // дата окончания
        new MailAddress("TintinStrom@from.com", "Tintin Strom"), // организатор
        MailAddressCollection.to_MailAddressCollection(
                new MailAddress("AinaMartensson@to.com", "Aina Martensson"))); // участник
appointment.setHtmlDescription("<html>\n"
        + "     <style type=\"\"text/css\"\">\n"
        + "      .text {\n"
        + "             font-family:'Comic Sans MS';\n"
        + "             font-size:16px;\n"
        + "            }\n"
        + "     </style>\n"
        + "    <body>\n"
        + "     <p class=\"\"text\"\">Привет, я рад пригласить вас на нашу вечеринку.</p>\n"
        + "    </body>\n"
        + "    </html>");

Создание черновика запроса на назначение

Чтобы сохранить назначение в режиме черновика, свойство Method класса Appointment должно быть установлено на Publish. Следующий пример кода демонстрирует использование этого свойства в качестве примера.

Создание черновика назначения из текста

Добавление и удаление вложений из календарных элементов

Aspose.Email предоставляет коллекцию вложений, которую можно использовать для добавления и извлечения вложений, связанных с календарными элементами. Эта статья показывает, как:

  1. Создать и добавить вложения к объекту класса Appointment.
  2. Извлечь информацию о вложениях из назначения.
  3. Извлечь вложения из назначения.

Форматирование назначений

Ниже приведены примеры программирования, которые демонстрируют, как использовать класс AppointmentFormattingOptions для форматирования текста и HTML.

Пример программирования - Форматирование текста

Пример программирования - Форматирование HTML

Чтение нескольких событий из файла ICS

Запись нескольких событий из файла ICS

Установка статуса участников назначений

Aspose.Email для .NET API позволяет установить статус участников назначений при формировании ответа. Это добавляет свойство PARTSTAT в файл ICS.

Настройка идентификатора продукта для iCalendar

Aspose.Email для Java API позволяет получить или установить идентификатор продукта, который создал объект iCalendar.

Как избежать проверки адреса при попытке загрузить назначения

Aspose.Email для Java API позволяет обойти ошибку проверки электронной почты, установив опцию IgnoreSmtpAddressCheck на объекте AppointmentLoadOptions и передав его в вызов загрузки.

AppointmentLoadOptions lo = new AppointmentLoadOptions();
lo.setIgnoreSmtpAddressCheck(true);
Appointment appointment = Appointment.load("app.ics", lo);