ניהול פריטי לוח השנה של Outlook
ה MapiCalendar מחלקה בספריה Aspose.Email מציעה שיטות ותגים שונים לתצורה ולניהול פריטי לוח השנה. אפשרות זו מאפשרת ניהול יעיל של פריטי לוח השנה של Outlook, ומשפרת את הפרודוקטיביות והארגון. להלן הסעיפים שינחו אותך בהיבטים שונים של ניהול פריטי לוח השנה.
יצירה ושמירת פריטי יומן
יצירת ושמירת פריטי לוח השנה
קטע הקוד הבא מדגים כיצד ליצור ולשמור פריט לוח שנה בתצורת ICS:
- הגדר את הנתיב שבו יישמר קובץ הלוח שנה שלך.
- צור פגישה על‑ידי אתחול של MapiCalendar אובייקט עם פרטים ספציפיים כגון מיקום, נושא, תיאור, זמני תחילה וסיום.
- שמור את הפגישה שנוצרה כקובץ 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, לדוגמה ל‑"Foo Ltd", בהתאמה:
- ics_save_options.keep_original_date_time_stamp
- ics_save_options.product_identifier
מזהה המוצר הוא שדה המזהה את התוכנה או השירות שייצרו את קובץ ה‑ICS.
הנה דוגמת קוד המאפשרת לך להגדיר מזהה מוצר כאשר שומרים MapiCalendar ל‑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)
ספירת כל אירועי הלוח השנה
ה CalendarReader מחלקה מספקת פונקציונליות לקריאת וניתוח נתוני לוח שנה מקובץ מסוים. על‑ידי אתחול של אובייקט CalendarReader, ניתן לחלץ פרטים קריטיים כגון סך כל האירועים, גרסת הלוח שנה, השיטה המשמשת, והאם הלוח כולל מספר אירועים. למטה קטע קוד שממחיש כיצד לתקשר עם נתוני לוח השנה ולטעון פגישות כרשימה מקיפה של אירועים:
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()
הוספת תזכורות תצוגה לפריטי לוח השנה
קטע הקוד הבא מציג איך להוסיף תזכורת תצוגה ליומן.
הוספת תזכורות קוליות לפריטי לוח השנה
קטע הקוד הבא מראה לך כיצד להוסיף תזכורת קולית ללוח השנה.
הגדרת מצב MapiCalendar במפורש
ספריית Aspose.Email מספקת שיטה להגדרה מפורשת של מצבה של אובייקט MapiCalendar, וכך לעקוף את ההתנהגות ברירת המחדל:
- void MapiCalendar.set_state_forced(MapiCalendarState state) - מציע שליטה רבה יותר על מצב פריט הלוח השנה, במיוחד בעבודה עם בקשות פגישה שהתקבלו.
כאשר נוצר אובייקט MapiCalendar, הוא מקבל אוטומטית את המצב MapiCalendarState.MEETING. כאשר הפריט מתקבל על ידי נמען, המצב בדרך כלל משתנה ל-MapiCalendarState.RECEIVED, ושיעור ההודעה מתעדכן ל-"IPM.Schedule.Meeting.Request".
דוגמת הקוד הבאה מדגימה כיצד ליצור פגישת פגישה באמצעות Aspose.Email ל‑Python דרך .NET, להגדיר את המארגן ואת מצב הלוח השנה ידנית, ולשמור את הפגישה כקובץ 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)
בקריאה ל‑ set_state_forced, ניתן להגדיר ידנית את מצבה של פריט היומן לערך ספציפי (למשל, MapiCalendarState.RECEIVED). זה שימושי במיוחד כשאתה רוצה:
-
הדמיית בקשת פגישה שהתקבלה.
-
שמר את המטא‑נתונים של המארגן והפגישה בעת שמירת הפגישה כקובץ .MSG.
-
התאם תהליכי עבודה של לוח השנה כאשר ההתנהגות ברירת המחדל לא מספיקה.
הערה: הגדרת המצב באופן ידני עם
set_state_forcedעשוי להשפיע על התנהגות Outlook, כגון היכולת להעביר או לשלוח מחדש את הפגישה. לכן, יש להשתמש בזה בזהירות ורק כאשר נדרש ללוגיקה של היישום שלך.
ניהול קבצי לוח שנה
הוספה או שליפה של קבצים מצורפים מקבצי לוח שנה
מודול Aspose.Email Calendar ("ae.calendar") מספק גם את הפונקציונליות להוספה ושליפה של מידע על קבצים מצורפים.
כדי לכלול קובץ מצורף בפגישה, פעל לפי הצעדים הבאים:
- צור Attachment אובייקט המספק את נתיב הקובץ.
- הוסף קובץ מצורף זה לרשימת הקבצים המצורפים של הפגישה.
- שמור את הפגישה לנתיב קובץ ספציפי בתצורת iCalendar באמצעות ה‑ שמירה מתודה והפורמט הקובץ המתאים.
כדי לשלוף קבצים מצורפים מפגישה, בצע את הצעדים הבאים:
- טען פגישה מהקובץ השמור באמצעות ה‑ טעינה שיטה.
- קבל את מספר הקבצים המצורפים בפגישה באמצעות המאפיין .attachments.length.
- עבור על כל קובץ מצורף.
- הדפס את שם כל קובץ מצורף באמצעות המאפיין .name בתוך הלולאה.
קטע הקוד למטה מדגים כיצד ליצור פגישות עם קבצים מצורפים, לשמור אותן, ולשלוף מידע על הקבצים המצורפים באמצעות מודול "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)
שליפת סטטוס הנמען מבקשות פגישה
ספריית Aspose.Email מאפשרת לך לעבוד עם בקשות פגישה, המיוצגות כאובייקט MapiCalendar, ולשלוף את סטטוס הנמען (מעקב נוכחות) מבקשות פגישה אלו. קטע הקוד הבא מראה כיצד לזהות את הסטטוס של המייל לכל נמען:
המרת פגישות 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")