Работа с Встречами
Загрузка и Сохранение Встречи в Формате ICS
Класс Appointment в Aspose.Email API может быть использован для загрузки встречи в формате ICS, а также для создания новой встречи и сохранения её на диск в формате ICS. В этой статье мы сначала создадим встречу и сохраним её на диск в формате ICS, а затем мы загрузим её.
Создание Встречи и Сохранение на Диск в Формате ICS
Для создания встречи и сохранения её в формате ICS необходимо выполнить следующие шаги.
- Создайте экземпляр класса Appointment и инициализируйте его с помощью этого конструктора.
- Передайте следующие аргументы в вышеприведённый конструктор:
- Участники
- Описание
- Дата окончания
- Место
- Организатор
- Дата начала
- Резюме
- Вызовите метод Save() и укажите имя файла и формат в аргументах.
Встречу можно открыть в Microsoft Outlook или в любой программе, которая может загрузить файл ICS. Если файл открыт в Microsoft Outlook, он автоматически добавляет встречу в календарь Outlook.
Следующий код показывает, как создать и сохранить встречу на диск в формате ICS.
For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet | |
#Create Appointment instance | |
attendees = MailAddressCollection() | |
attendees.append("attendee@domain.com") | |
app = Appointment("Room 112", dt.datetime(2018, 5, 27, 22, 12, 11), dt.date(2018, 5, 28), "from@domain.com", attendees); | |
app.summary = "Release Meetting"; | |
app.description = "Discuss for the next release" | |
app.save(dataDir + "AppointmentInICSFormat_out.ics", AppointmentSaveFormat.ICS) |
Загрузка Встречи в Формате ICS
Для загрузки встречи в формате ICS необходимо выполнить следующие шаги:
- Создайте экземпляр класса Appointment.
- Вызовите метод Load(), указав путь к файлу ICS.
- Считайте любое свойство, чтобы получить информацию о встрече (файл ICS).
Следующий код показывает, как загрузить встречу в формате ICS.
For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet | |
#Load Appointment instance | |
loadedAppointment = Appointment.load(dataDir + "AppointmentInICSFormat_out.ics") | |
print("Summary: " + loadedAppointment.summary) | |
print("Location: " + loadedAppointment.location) | |
print("Description: " + loadedAppointment.description) | |
print("Start date: " + str(loadedAppointment.start_date)) | |
print("End date: " + str(loadedAppointment.end_date)) | |
print("Organizer: " + loadedAppointment.organizer.address) | |
print("Attendees: " + loadedAppointment.attendees[0].address) |
Чтение Нескольких Событий из Файла ICS
For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet | |
#Load Appointment instance | |
reader = CalendarReader(dataDir + "US-Holidays.ics") | |
appointments = [] | |
while reader.next_event(): | |
appointments.append(reader.current) | |
print ("Total Appointments: " + str(len(appointments))) |
Запись Нескольких Событий в Файл ICS
For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet | |
saveOptions = IcsSaveOptions() | |
saveOptions.action = AppointmentAction.CREATE | |
writer = CalendarWriter(dataDir + "WriteMultipleEventsToICS_out.ics", saveOptions) | |
attendees = MailAddressCollection() | |
attendees.append("attendee@domain.com") | |
for i in range(10): | |
app = Appointment("Room 112", dt.datetime(2018, 5, 27, 22, 12, 11), dt.date(2018, 5, 28), "from@domain.com", attendees) | |
app.description = "Test body " + str(i) | |
app.summary = "Test summary:" + str(i) | |
writer.write(app) |
Создание Запроса на Встречу в Черновике
В наших предыдущих статьях было показано, как создать и сохранить встречу в формате ICS. Часто требуется создать запрос на встречу в режиме черновика, чтобы основная информация была добавлена, а затем этот черновик встречи был перенаправлен другим пользователям для необходимых изменений в соответствии с индивидуальными пользователями. Чтобы сохранить встречу в режиме черновика, свойство Method класса Appointment должно быть установлено в Publish. Следующий код показывает, как создать запрос на встречу в черновике.
For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet | |
#Create Appointment instance | |
attendees = MailAddressCollection() | |
attendees.append("attendee@domain.com") | |
app = Appointment("Room 112", dt.datetime(2018, 5, 27, 22, 12, 11), dt.date(2018, 5, 28), "from@domain.com", attendees); | |
app.summary = "Release Meetting"; | |
app.description = "Discuss for the next release" | |
app.method_type = AppointmentMethodType.PUBLISH | |
message = MailMessage("sender@domain.com", "recipient@domain.com", "", "") | |
message.add_alternate_view(app.request_apointment()) | |
msg = MapiMessage.from_mail_message(message) | |
# Save the appointment as draft. | |
msg.save("DraftAppointmentRequest_out.msg") |
Создание Черновика Встречи из Текста
Следующий код показывает, как создать черновик встречи из текста.
For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet | |
ical = """BEGIN:VCALENDAR | |
METHOD:PUBLISH | |
PRODID:-//Aspose Ltd//iCalender Builder (v3.0)//EN | |
VERSION:2.0 | |
BEGIN:VEVENT | |
ATTENDEE;CN=test@gmail.com:mailto:test@gmail.com | |
DTSTART:20130220T171439 | |
DTEND:20130220T174439 | |
DTSTAMP:20130220T161439Z | |
END:VEVENT | |
END:VCALENDAR""" | |
sender = "test@gmail.com" | |
recipient = "test@email.com" | |
message = MailMessage(sender, recipient, "", "") | |
av = AlternateView.create_alternate_view_from_string(ical, ContentType("text/calendar")) | |
message.alternate_views.append(av) | |
msg = MapiMessage.from_mail_message(message) | |
msg.save(dataDir + "draft_out.msg") |
Установить Статус Участников Встречи
Aspose.Email для .NET API позволяет установить статус участников встречи во время составления ответного сообщения. Это добавляет свойство PARTSTAT в файл ICS.
For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet | |
location = "Room 5" | |
startDate = dt.datetime(2011, 12, 10, 10, 12, 11) | |
endDate = dt.date(2012, 11, 13) | |
organizer = ae.MailAddress("aaa@amail.com", "Organizer") | |
attendees = ae.MailAddressCollection() | |
attendee1 = ae.MailAddress("bbb@bmail.com", "First attendee") | |
attendee2 = ae.MailAddress("ccc@cmail.com", "Second attendee") | |
attendee1.participation_status = ae.ParticipationStatus.ACCEPTED | |
attendee2.participation_status = ae.ParticipationStatus.DECLINED | |
attendees.append(attendee1) | |
attendees.append(attendee2) | |
target2 = Appointment(location, startDate, endDate, organizer, attendees) |