Làm việc với các mục Lịch Outlook
Làm việc với MapiCalendar
Lớp MapiCalendar của Aspose.Email cung cấp các phương thức và thuộc tính để đặt các thuộc tính khác nhau của một mục lịch.
Tạo và Lưu các mục Lịch
Đoạn mã mẫu dưới đây cho bạn thấy cách tạo và lưu một mục lịch ở định dạng 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)
Lưu mục Lịch biểu dưới dạng MSG
Đoạn mã mẫu dưới đây cho bạn thấy cách lưu mục lịch dưới dạng MSG.
Đặt ID Sản phẩm khi Lưu MapiCalendar sang ICS
Thư viện Aspose.Email cho phép bạn lưu một MapiCalendar (một mục lịch) vào tệp ICS (iCalendar) với các tùy chọn cụ thể. Với các thuộc tính ics_save_options.keep_original_date_time_stamp và ics_save_options.product_identifier bạn có thể giữ nguyên các dấu thời gian ngày giờ gốc liên quan đến mục lịch và đặt định danh sản phẩm trong tệp ICS, ví dụ thành "Foo Ltd". Định danh sản phẩm là trường xác định phần mềm hoặc dịch vụ đã tạo ra tệp ICS.
Dưới đây là mẫu mã cho phép bạn đặt ID sản phẩm khi lưu MapiCalendar thành 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)
Lấy tổng số sự kiện
Chức năng của CalendarReader lớp cho phép bạn đọc dữ liệu lịch từ một tệp được chỉ định. Bằng cách tạo một đối tượng CalendarReader, chúng ta có thể trích xuất các thông tin quan trọng như tổng số sự kiện, phiên bản lịch, phương pháp được sử dụng, và liệu lịch có chứa nhiều sự kiện hay không. Đoạn mã sau minh họa cách làm việc với dữ liệu lịch và, bổ sung thêm, tải các cuộc hẹn từ lịch dưới dạng danh sách nhiều sự kiện.
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()
Thêm lời nhắc hiển thị vào Lịch
Đoạn mã mẫu dưới đây cho bạn thấy cách thêm lời nhắc hiển thị vào lịch.
Thêm lời nhắc âm thanh vào Lịch
Đoạn mã dưới đây cho bạn thấy cách thêm lời nhắc âm thanh vào lịch.
Thêm/Lấy tệp đính kèm từ các tệp Lịch
Mô-đun Aspose.Email Calendar ("ae.calendar") cũng cung cấp chức năng thêm và lấy thông tin tệp đính kèm.
-
Để bao gồm một tệp đính kèm vào cuộc hẹn, một đối tượng "Attachment" được tạo, cung cấp đường dẫn tệp. Tệp đính kèm này sau đó được thêm vào danh sách đính kèm của cuộc hẹn. Cuộc hẹn được lưu vào một đường dẫn tệp cụ thể ở định dạng iCalendar bằng cách sử dụng lưu phương thức và định dạng tệp phù hợp.
-
Để lấy các tệp đính kèm từ một cuộc hẹn, đầu tiên nó được tải từ tệp đã lưu bằng cách sử dụng load phương thức, số lượng tệp đính kèm có trong "appointment2" được hiển thị, và bằng cách lặp qua các tệp đính kèm, tên của chúng được in ra.
Đoạn mã dưới đây minh họa cách tạo cuộc hẹn có tệp đính kèm, lưu chúng và lấy thông tin tệp đính kèm bằng mô-đun "ae.calendar". Nó nêu bật chức năng và khả năng làm việc với cuộc hẹn và tệp đính kèm trong ứng dụng lịch.
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)
Trạng thái người nhận từ yêu cầu họp
Đoạn mã sau cho bạn thấy cách lấy trạng thái của người nhận từ yêu cầu họp.
Chuyển đổi Cuộc hẹn EML sang MSG giữ nguyên Phần thân ở định dạng HTML
Aspose.Email cho phép chuyển đổi cuộc hẹn EML sang MSG và giữ lại phần thân HTML. Thuộc tính "forced_rtf_body_for_appointment" của MapiConversionOptions lớp được sử dụng để thao tác loại nội dung của cuộc hẹn. Khi đặt là True, nội dung sẽ được chuyển sang định dạng RTF theo mặc định. Để giữ nội dung ở định dạng HTML, nên đặt là False. Đoạn mã dưới đây cho thấy cách bảo tồn nội dung HTML của cuộc hẹn khi chuyển đổi từ EML sang 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")