Hantera Outlook-kalenderobjekt

Aspose.Email MapiCalendar klassen tillhandahåller metoder och attribut för att sätta olika egenskaper för ett kalenderobjekt. Detta avsnitt ger kodexempel för:

Skapa och spara kalenderobjekt

Följande kodsnutt visar hur du skapar och sparar ett kalenderobjekt i ICS-format.

Spara kalenderobjekt som MSG‑filer

Följande kodsnutt visar hur du sparar kalenderobjektet som MSG.

Spara produkt‑ID:n för MAPI‑kalenderobjekt till ICS

Den ProductIdentifier egenskap hos MapiCalendarIcsSaveOptions klassen används för att spara ett MAPI-kalenderobjekt till en iCalendar (ICS)-fil och bevara originaldatum och -tid samt en anpassad produktidentifierare. Egenskapen specificerar identifieraren för produkten som skapade iCalendar-objektet.

Följande kodexempel visar hur man arbetar med iCalendar (ICS)-data i ett MAPI-kalenderobjekt:

var icsSaveOptions = new MapiCalendarIcsSaveOptions
{
    KeepOriginalDateTimeStamp = true,
    ProductIdentifier = "Foo Ltd"
};

mapiCalendar.Save("my.ics", icsSaveOptions);

Hämta totalt antal händelser

CalendarReader‑klassen möjliggör enkel hantering av kalenderhändelser. Följande egenskaper och en metod låter dig arbeta med flera händelser:

  • CalendarReader.Count – Count‑egenskapen i CalendarReader‑klassen låter dig hämta antalet Vevent‑komponenter (händelser) som finns i kalendern, vilket gör det enklare att hålla reda på det totala antalet händelser.
  • CalendarReader.IsMultiEvents – Denna egenskap avgör om kalendern innehåller flera händelser. Den ger ett boolean‑värde som indikerar om kalendern har mer än en händelse, vilket hjälper till att identifiera kalendrar med en eller flera händelser.
  • CalendarReader.Method – Egenskapen Method får iCalendar‑metodtypen som är associerad med kalenderobjektet. Den returnerar metodtypen, såsom “REQUEST”, “PUBLISH” eller “CANCEL”, och ger värdefull insikt i kalenderns syfte.
  • CalendarReader.Version – Hämtar versionen av iCalendar.
  • CalendarReader.LoadAsMultiple() Denna metod möjliggör laddning av en lista med händelser från en kalender som innehåller flera händelser. Den returnerar en lista med Appointment‑objekt, vilket ger enkel åtkomst och bearbetning av varje händelse individuellt.

Följande kodexempel demonstrerar hur du kan implementera dessa funktioner i ditt projekt:

var reader = new CalendarReader(fileName);
Console.WriteLine("Calendar contains " + reader.Count + " events");
Console.WriteLine("The Version of the calendar is " + reader.Version);
Console.WriteLine("The Method of the calendar is " + reader.Method);
Console.WriteLine("Is calendar contains contains multiple events? - " + reader.IsMultiEvents);
List<Appointment> appointments = reader.LoadAsMultiple();

Lägg till displaypåminnelser

Följande kodsnutt visar hur du lägger till en displaypåminelse i en kalender.

Lägg till ljudpåminnelser

Följande kodsnutt visar hur du lägger till en ljudpåminnelse i en kalender.

Lägg till/återställ bilagor från kalenderfiler

Följande kodsnutt visar hur du lägger till/återställer bilagor från kalenderfiler.

Kontrollera mottagarnas status i mötesförfrågningar

Följande kodsnutt visar hur du visar mottagarnas status från en mötesförfrågan.

Skapa MAPI‑kalender tidszon från standardtidszon

Följande kodsnutt visar hur du skapar MapiCalendarTimeZone från standardtidszon.

Ställ in påminnelser för avtal

En påminnelse kan läggas till när ett möte skapas. Dessa alarm kan triggas baserat på olika kriterier, t.ex. n minuter före schemaläggningens start, upprepa n gånger med n intervall. Olika taggar kan användas för att skapa dessa triggrar i skriptet som omges av BEGIN:VALARM och END:VALARM i ett möte. Det finns ett antal varianter för hur påminnelsen kan ställas in för ett möte.

Lägg till taggar för att sätta påminnelser

Följande kodsnutt visar hur du ställer in en påminnelse genom att lägga till taggar.

Konvertera Appointment EML till MSG med HTML-kropp

Sedan version 19.3 erbjuder Aspose.Email möjligheten att konvertera Appointment EML till MSG samtidigt som HTML-kroppen i mötet behålls. Aspose.Email tillhandahåller en MapiConversionOptions.ForcedRtfBodyForAppointment egenskap som har standardvärdet true. När värdet på MapiConversionOptions.ForcedRtfBodyForAppointment är satt till true, konverteras möteskroppen till RTF-format. För att behålla möteskroppens format i HTML, sätt värdet på MapiConversionOptions.ForcedRtfBodyForAppointment till false.

Följande exempel demonstrerar användningen av MapiConversionOptions.ForcedRtfBodyForAppointment egenskap för att behålla möteskroppens format i HTML-format.

Ställ in tillståndet för MAPI‑kalenderobjekt manuellt

Sätt tillståndet för ett MAPI‑kalenderobjekt explicit, vilket åsidosätter standardbeteendet. Detta ger bättre kontroll över kalenderhändelse‑tillstånd, särskilt vid hantering av mottagna mötesförfrågningar. Som standard, när ett möte skapas, är dess tillstånd MapiCalendarState.Meeting. När den mottas i mottagarens inkorg ändras den automatiskt till MapiCalendarState.Received, och dess meddelandeklass uppdateras till “IPM.Schedule.Meeting.Request”. Användning av SetStateForced tillåter manuell inställning av tillståndet till Received, vilket kan vara användbart för att bevara organisationsinformationen när kalendern sparas som en MSG‑fil. Detta kan dock förhindra korrekt vidarebefordran eller omsändning av mötet.

Kodexemplet nedan demonstrerar hur man skapar en MapiCalendar objekt, tilldela en organisator och uttryckligen sätta dess tillstånd till båda Meeting och Received med hjälp av SetStateForced. Den sparar sedan kalenderobjektet som en .msg‑fil.

MapiCalendar appointment = new MapiCalendar(
    "LAKE ARGYLE WA 6743",
    "Appointment",
    "This is a very important meeting :)",
    new DateTime(2024, 5, 10, 12, 30, 0, DateTimeKind.Utc),
    new DateTime(2024, 5, 10, 13, 30, 0, DateTimeKind.Utc));

appointment.Organizer = new MapiElectronicAddress
{
    EmailAddress = "test@aaa.com",
    DisplayName = "test display Name"
};

appointment.SetStateForced(MapiCalendarState.Meeting | MapiCalendarState.Received);

appointment.Save("appointment.msg", AppointmentSaveFormat.Msg);