ทำงานกับรายการปฏิทิน 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.

การตั้งค่า Product ID เมื่อบันทึก MapiCalendar เป็นไฟล์ ICS

Aspose.Email library ให้คุณบันทึก MapiCalendar (รายการปฏิทิน) ไปยังไฟล์ ICS (iCalendar) ด้วยตัวเลือกเฉพาะ ด้วยคุณสมบัติ ics_save_options.keep_original_date_time_stamp และ ics_save_options.product_identifier คุณสามารถรักษาเวลาประทับต้นฉบับที่เชื่อมโยงกับรายการปฏิทินและตั้งค่าตัวระบุผลิตภัณฑ์ในไฟล์ ICS ตัวอย่างเช่นเป็น "Foo Ltd" ตามลำดับ ตัวระบุผลิตภัณฑ์เป็นฟิลด์ที่บ่งบอกซอฟต์แวร์หรือบริการที่สร้างไฟล์ ICS

นี่คือตัวอย่างโค้ดที่ให้คุณตั้งค่า Product ID เมื่อบันทึก 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 Body ของนัดหมายเมื่อแปลงจาก 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")