Робота з пунктами календаря Outlook

Робота з MapiCalendar

Клас MapiCalendar від Aspose.Email надає методи та атрибути для встановлення різних властивостей елементу календаря.

Створення та збереження елементів календаря

У наведеному фрагменті коду показано, як створити і зберегти елемент календаря у форматі ICS.

import aspose.email as ae
from datetime import datetime

data_dir = "path/to/data/directory"

# Create the appointment
calendar = ae.mapi.MapiCalendar(
    "LAKE ARGYLE WA 6743",
    "Appointment",
    "This is a very important meeting :)",
    datetime(2012, 4, 1),
    datetime(2012, 5, 1))

calendar.save(data_dir + "CalendarItem_out.ics", ae.calendar.AppointmentSaveFormat.ICS)

Збереження елементу календаря у форматі MSG

У наведеному фрагменті коду показано, як зберегти елемент календаря у форматі MSG.

Встановлення ідентифікатора продукту при збереженні MapiCalendar у ICS

Бібліотека Aspose.Email дозволяє зберігати MapiCalendar (елемент календаря) у файл ICS (iCalendar) з певними параметрами. За допомогою властивостей ics_save_options.keep_original_date_time_stamp та ics_save_options.product_identifier ви можете зберегти початкові мітки дати та часу, пов’язані з елементом календаря, і встановити ідентифікатор продукту у файлі ICS, наприклад "Foo Ltd". Ідентифікатор продукту – це поле, яке ідентифікує програмне забезпечення або сервіс, що створив файл ICS.

Ось приклад коду, який дозволяє встановити ідентифікатор продукту під час збереження MapiCalendar у форматі ICS:

import aspose.email as ae

ics_save_options = ae.mapi.MapiCalendarIcsSaveOptions()
ics_save_options.keep_original_date_time_stamp = True
ics_save_options.product_identifier = "Foo Ltd"

mapiCalendar.save("my.ics", ics_save_options)

Отримання загальної кількості подій

Функціональність CalendarReader Клас дозволяє читати дані календаря з зазначеного файлу. Створивши об’єкт CalendarReader, ми можемо витягти важливу інформацію, таку як загальна кількість подій, версію календаря, використаний метод і чи містить календар кілька подій. Нижче наведено фрагмент коду, який демонструє роботу з даними календаря та, додатково, завантаження зустрічей з календаря у вигляді списку багатьох подій.

import aspose.email as ae

reader = ae.calendar.CalendarReader(fileName)
print(f"Calendar contains {reader.count} events")
print(f"The Version of the calendar is {reader.version}")
print(f"The Method of the calendar is {reader.method}")
print(f"Is calendar contains contains multiple events? - {reader.is_multi_events}")
appointments = reader.load_as_multiple()

Додавання візуального нагадування до календаря

У наведеному фрагменті коду показано, як додати візуальне нагадування до календаря.

Додавання аудіо нагадування до календаря

Наступний фрагмент коду показує, як додати аудіо-нагадування до календаря.

Додати/Отримати вкладення з файлів календаря

Модуль Aspose.Email Calendar ("ae.calendar") також забезпечує можливість додавати та отримувати інформацію про вкладення.

  • Щоб включити вкладення до зустрічі, створюється об’єкт "Attachment", вказуючи шлях до файлу. Це вкладення потім додається до списку вкладень зустрічі. Зустріч зберігається за певним шляхом у форматі iCalendar за допомогою зберегти метод і відповідний формат файлу.

  • Щоб отримати вкладення з зустрічі, спочатку завантажують її з збереженого файлу за допомогою завантажити метод, кількість вкладень у "appointment2" відображається, а при переборі вкладень їхні імена виводяться.

Нижчий фрагмент коду демонструє, як створювати записи з вкладеннями, зберігати їх та отримувати інформацію про вкладення за допомогою модуля "ae.calendar". Це підкреслює функціональність та можливості роботи з записами та їх вкладеннями в календарному додатку.

import aspose.email as ae
import datetime as dt

# Add an attachment to an appointment
attendees = ae.MailAddressCollection()
attendees.append(ae.MailAddress("attendee@domain.com", "Recipient 1"))

appointment = ae.calendar.Appointment("Room 112", dt.datetime(2023, 5, 27), dt.date(2023, 5, 28),  ae.MailAddress("organizer@domain.com"), attendees)

attachment = ae.Attachment("D:\\Aspose\\Files\\Attachment.txt")
appointment.attachments.append(attachment)

appointment.save("D:\\Aspose\\Files\\appWithAttachments_out.ics", ae.calendar.AppointmentSaveFormat.ICS)

# Retrieve attachments from an appointment 
appointment2 = ae.calendar.Appointment.load("D:\\Aspose\\Files\\appWithAttachments_out.ics")
print(appointment2.attachments.length)
for att in appointment2.attachments:
    print(att.name)

Статус одержувачів із запиту на зустріч

Нижче наведено фрагмент коду, який показує, як отримати статус отримувачів із запиту на зустріч.

Конвертування EML зустрічі у MSG з збереженням тіла у форматі HTML

Aspose.Email робить можливим конвертування EML зустрічі у MSG і збереження HTML тексту. Властивість "forced_rtf_body_for_appointment" об’єкта MapiConversionOptions клас використовується для керування типом тіла запису. Коли встановлено True, тіло за замовчуванням конвертується у формат RTF. Щоб зберегти тіло у форматі HTML, його слід встановити в False. Наступний приклад коду показує, як зберегти HTML‑тіло запису при конвертації з EML у MSG:

import aspose.email as ae

eml = ae.MailMessage.load("appointment.eml")

conversionOptions = ae.mapi.MapiConversionOptions()
conversionOptions.format = ae.mapi.OutlookMessageFormat.UNICODE
# default value for ForcedRtfBodyForAppointment is true
conversionOptions.forced_rtf_body_for_appointment = False

msg = ae.mapi.MapiMessage.from_mail_message(eml, conversionOptions)

print(f"Body Type: {msg.body_type}")

msg.save("appointment.msg")