Praca z elementami kalendarza Outlook

Praca z MapiCalendar

Klasa MapiCalendar z Aspose.Email udostępnia metody i atrybuty do ustawiania różnych właściwości elementu kalendarza.

Tworzenie i zapisywanie elementów Kalendarza

Poniższy fragment kodu pokazuje, jak utworzyć i zapisać element kalendarza w formacie 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)

Zapisywanie elementu Kalendarza jako MSG

Poniższy fragment kodu pokazuje, jak zapisać element kalendarza jako MSG.

Ustawianie identyfikatora produktu przy zapisywaniu MapiCalendar do ICS

Biblioteka Aspose.Email umożliwia zapis MapiCalendar (elementu kalendarza) do pliku ICS (iCalendar) z określonymi opcjami. Dzięki właściwościom ics_save_options.keep_original_date_time_stamp i ics_save_options.product_identifier możesz zachować oryginalne znaczniki daty i czasu powiązane z elementem kalendarza oraz ustawić identyfikator produktu w pliku ICS, na przykład na "Foo Ltd". Identyfikator produktu to pole, które określa oprogramowanie lub usługę, która wygenerowała plik ICS.

Oto przykład kodu, który pozwala ustawić identyfikator produktu przy zapisywaniu MapiCalendar do formatu 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)

Pobieranie łącznej liczby zdarzeń

Funkcjonalność CalendarReader klasa umożliwia odczyt danych kalendarza z określonego pliku. Tworząc obiekt CalendarReader, możemy wyodrębnić ważne informacje, takie jak łączna liczba zdarzeń, wersja kalendarza, użyta metoda oraz czy kalendarz zawiera wiele zdarzeń. Poniższy fragment kodu demonstruje, jak pracować z danymi kalendarza oraz dodatkowo wczytać spotkania z kalendarza jako listę wielu zdarzeń.

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()

Dodawanie wyświetlanego przypomnienia do Kalendarza

Poniższy fragment kodu pokazuje, jak dodać przypomnienie wyświetlane do kalendarza.

Dodawanie dźwiękowego przypomnienia do Kalendarza

Poniższy fragment kodu pokazuje, jak dodać dźwiękowe przypomnienie do kalendarza.

Dodawanie/Pobieranie załączników z plików Kalendarza

Moduł Aspose.Email Calendar ("ae.calendar") zapewnia również funkcjonalność dodawania i pobierania informacji o załącznikach.

  • Aby dołączyć załącznik do spotkania, tworzony jest obiekt "Attachment" z podaniem ścieżki do pliku. Ten załącznik jest następnie dodawany do listy załączników spotkania. Spotkanie jest zapisywane pod określoną ścieżką w formacie iCalendar przy użyciu zapis metodę i odpowiedni format pliku.

  • Aby pobrać załączniki ze spotkania, najpierw ładuje się je z zapisanego pliku przy użyciu załaduj metoda wyświetla liczbę załączników obecnych w "appointment2", a iterując po załącznikach, wypisuje ich nazwy.

Poniższy fragment kodu demonstruje, jak tworzyć spotkania z załącznikami, zapisywać je i pobierać informacje o załącznikach przy użyciu modułu "ae.calendar". Podkreśla funkcjonalność i możliwości pracy ze spotkaniami i załącznikami w aplikacji kalendarza.

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)

Status odbiorców z żądania spotkania

Poniższy fragment kodu pokazuje, jak sprawdzić status odbiorców w zaproszeniu na spotkanie.

Konwersja spotkania EML do MSG zachowując ciało w formacie HTML

Aspose.Email umożliwia konwersję spotkania w formacie EML do MSG i zachowanie ciała HTML. Właściwość "forced_rtf_body_for_appointment" klasy MapiConversionOptions klasa służy do manipulacji typem treści spotkania. Gdy ustawiona na True, treść jest domyślnie konwertowana do formatu RTF. Aby zachować treść w formacie HTML, należy ustawić ją na False. Poniższy przykład kodu pokazuje, jak zachować HTML‑ową treść spotkania przy konwersji z EML do 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")