Správa položek kalendáře Outlook
The MapiCalendar třída v knihovně Aspose.Email nabízí různé metody a atributy pro konfiguraci a manipulaci s položkami kalendáře. To umožňuje efektivní správu položek kalendáře Outlook, zvyšuje produktivitu a organizaci. Níže jsou sekce, které vás provedou různými aspekty správy položek kalendáře.
Vytváření a ukládání položek kalendáře
Vytvořit a uložit položky kalendáře
Následující úryvek kódu demonstruje, jak vytvořit a uložit položku kalendáře ve formátu ICS:
- Určete cestu, kde bude váš kalendářní soubor uložen.
- Vytvořte schůzku inicializací nového MapiCalendar objekt s konkrétními podrobnostmi, jako jsou místo, předmět, popis, čas začátku a konce.
- Uložte vytvořenou schůzku jako soubor ICS ve zvoleném adresáři.
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)
Uložit položky kalendáře jako MSG
Následující úryvek kódu vám ukáže, jak uložit položku kalendáře jako MSG:
Nastavit ID produktu pro převod MapiCalendar na ICS
Knihovna Aspose.Email vám umožňuje uložit MapiCalendar (položku kalendáře) do souboru ICS (iCalendar) s konkrétními volbami. Následující vlastnosti umožní vám zachovat původní datum a časové razítko spojené s položkou kalendáře a nastavit identifikátor produktu v souboru ICS, například na "Foo Ltd", respektive:
- ics_save_options.keep_original_date_time_stamp
- ics_save_options.product_identifier
Identifikátor produktu je pole, které určuje software nebo službu, která vygenerovala soubor ICS.
Zde je ukázka kódu, která vám umožní nastavit ID produktu při ukládání MapiCalendar do formátu ICS:
import aspose.email as ae
from datetime import datetime
mapi_calendar = ae.mapi.MapiCalendar(
"LAKE ARGYLE WA 6743",
"Appointment",
"This is a very important meeting :)",
datetime(2024, 4, 1),
datetime(2024, 4, 2))
ics_save_options = ae.mapi.MapiCalendarIcsSaveOptions()
ics_save_options.keep_original_date_time_stamp = True
ics_save_options.product_identifier = "Foo Ltd"
mapi_calendar.save("my.ics", ics_save_options)
Spočítat celkový počet událostí v kalendáři
The CalendarReader třída poskytuje funkci pro čtení a analýzu dat kalendáře z určeného souboru. Inicializací objektu CalendarReader můžete získat klíčové podrobnosti, jako je celkový počet událostí, verze kalendáře, použítá metoda a zda kalendář obsahuje více událostí. Níže je úryvek kódu, který ukazuje, jak pracovat s daty kalendáře a načíst schůzky jako komplexní seznam událostí:
import aspose.email as ae
reader = ae.calendar.CalendarReader("calendar.ics")
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()
Přidat zobrazovací připomínky do položek kalendáře
Následující úryvek kódu ukazuje, jak přidat vizuální připomínku do kalendáře.
Přidat zvukové připomínky do položek kalendáře
Následující úryvek kódu vám ukáže, jak přidat zvukovou připomínku do kalendáře.
Explicitně nastavit stav MapiCalendar
Aspose.Email poskytuje metodu pro explicitní definování stavu objektu MapiCalendar, přepisující výchozí chování:
- void MapiCalendar.set_state_forced(MapiCalendarState state) - poskytuje větší kontrolu nad stavem položky kalendáře, zejména při práci s přijatými žádostmi o schůzku.
Když je vytvořen objekt MapiCalendar, je automaticky přiřazen stav MapiCalendarState.MEETING. Když je položka přijata příjemcem, stav se obvykle změní na MapiCalendarState.RECEIVED a třída zprávy se aktualizuje na "IPM.Schedule.Meeting.Request".
Níže uvedený ukázkový kód demonstruje, jak vytvořit schůzku pomocí Aspose.Email pro Python via .NET, ručně nastavit organizátora a stav kalendáře a uložit schůzku jako soubor Outlook .msg:
from aspose.email.mapi import MapiCalendar, MapiCalendarState, MapiElectronicAddress
from aspose.email.calendar import AppointmentSaveFormat
from datetime import datetime, timezone
# Create a MapiCalendar appointment
appointment = MapiCalendar(
"LAKE ARGYLE WA 6743", # Location
"Appointment", # Subject
"This is a very important meeting :)", # Body
datetime(2024, 5, 10, 12, 30, 0, tzinfo=timezone.utc), # Start time (UTC)
datetime(2024, 5, 10, 13, 30, 0, tzinfo=timezone.utc) # End time (UTC)
)
# Set the organizer
appointment.organizer = MapiElectronicAddress()
appointment.organizer.email_address = "test@aaa.com"
appointment.organizer.display_name = "test display Name"
# Forcefully set the calendar state to Meeting | Received
appointment.set_state_forced(MapiCalendarState.MEETING | MapiCalendarState.RECEIVED)
# Save the appointment to a .msg file
appointment.save("appointment.msg", AppointmentSaveFormat.MSG)
Voláním set_state_forced, můžete ručně nastavit stav položky kalendáře na konkrétní hodnotu (např. MapiCalendarState.RECEIVED). To je zvláště užitečné, když chcete:
-
Simulovat přijatou žádost o schůzku.
-
Zachovat metadata organizátora a schůzky při ukládání schůzky do souboru .MSG.
-
Přizpůsobte pracovní postupy kalendáře, kde výchozí chování není dostačující.
Poznámka: Ruční nastavení stavu pomocí
set_state_forcedmůže ovlivnit chování Outlooku, například možnost přeposlat nebo znovu odeslat schůzku. Proto by se mělo používat opatrně a jen když je to nezbytné pro logiku vaší aplikace.
Správa souborů kalendáře
Přidat nebo získat přílohy ze souborů kalendáře
Modul Aspose.Email Calendar ("ae.calendar") také poskytuje funkci přidávat a získávat informace o přílohách.
Pro zahrnutí přílohy do schůzky postupujte podle níže uvedených kroků:
- Vytvořte Attachment objekt poskytující cestu k souboru.
- Přidejte tuto přílohu do seznamu příloh schůzky.
- Uložte schůzku na konkrétní cestu souboru ve formátu iCalendar pomocí uložit metodu a vhodný formát souboru.
Pro získání příloh ze schůzky proveďte následující kroky:
- Načtěte schůzku ze uloženého souboru pomocí načíst metoda.
- Získejte počet příloh ve schůzce pomocí vlastnosti .attachments.length.
- Iterujte přes každou přílohu.
- Vypište název každé přílohy pomocí vlastnosti .name uvnitř smyčky.
Níže uvedený úryvek kódu demonstruje, jak vytvořit schůzky s přílohami, uložit je a získat informace o příloze pomocí modulu "ae.calendar". Zvýrazňuje funkčnost a možnosti práce se schůzkami a přílohami v kalendářové aplikaci.
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)
Získat stav příjemce z žádostí o schůzku
Aspose.Email vám umožňuje pracovat s žádostmi o schůzku, reprezentovanými jako objekt MapiCalendar, a získat stav příjemce (sledování účasti) z takových žádostí. Následující úryvek kódu vám ukáže, jak identifikovat stav e‑mailu pro každého příjemce:
Převést schůzky z EML na MSG při zachování HTML těla
Aspose.Email umožňuje převést schůzku z EML na MSG a zachovat HTML tělo. Vlastnost forced_rtf_body_for_appointment třídy MapiConversionOptions třída se používá k manipulaci s typem těla schůzky. Když je nastavena na True, tělo je ve výchozím nastavení převedeno do formátu RTF. Pro zachování těla v HTML formátu by měla být nastavena na False. Následující ukázkový kód ukazuje, jak zachovat HTML tělo schůzky při převodu z EML na 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")