Работа с задачами Outlook
Создание, сохранение и чтение задач
Aspose.Email для .NET позволяет создавать задачи Outlook и сохранять их в формате MSG. Класс MapiTask предоставляет ряд свойств, таких как Percentcomplete, Estimatedeffort, ActualEffort, History, LastUpdate и другие, чтобы учитывать и устанавливать информацию, необходимую для задачи Outlook. Эта статья показывает, как создать, сохранить и прочитать MapiTask с диска. Чтобы создать и сохранить задачу на диск:
- Создайте новый объект класса MapiContact.
- Введите информацию о свойствах задачи.
- Сохраните задачу на диск в формате MSG.
Следующий кодовый фрагмент показывает, как создать, сохранить и прочитать задачи.
For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet | |
task = MapiTask("To Do", "Just click and type to add new task", dt.datetime(2018, 6, 1, 21, 30, 0), dt.datetime(2018, 6, 4, 21, 30, 0)) | |
task.percent_complete = 20 | |
task.estimated_effort = 2000 | |
task.actual_effort = 20 | |
task.history = MapiTaskHistory.ASSIGNED | |
task.last_update = dt.datetime(2018, 6, 1, 21, 30, 0) | |
task.users.owner = "Darius" | |
task.users.last_assigner = "Harkness" | |
task.users.last_delegate = "Harkness" | |
task.users.ownership = MapiTaskOwnership.ASSIGNERS_COPY | |
task.companies = [ "company1", "company2", "company3" ] | |
task.categories = [ "category1", "category2", "category3" ] | |
task.mileage = "Some test mileage" | |
task.billing = "Test billing information" | |
task.users.delegator = "Test Delegator" | |
task.sensitivity = MapiSensitivity.PERSONAL | |
task.status = MapiTaskStatus.COMPLETE | |
task.estimated_effort = 5 | |
task.save(dataDir + "CreatingAndSavingOutlookTask_out.msg", TaskSaveFormat.MSG) |
Чтение MapiTask
Объект класса MapiContact используется для преобразования объекта MapiMessage, который загружает задачу с диска в формате MSG. Следующий кодовый фрагмент показывает, как читать MapiTask.
For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet | |
message = MapiMessage.from_file("Contact.msg") | |
apiContact = message.to_mapi_message_item() |
Чтение задачи VToDo
Задачи Google, экспортируемые в формате iCalendar как события VToDo, могут быть загружены с использованием класса MapiTask, как показано в следующем примере кода. Следующий кодовый фрагмент показывает, как читать задачу VToDo.
import aspose.email as ae
data_dir = "path/to/data/directory"
task = ae.mapi.MapiTask.from_v_todo(data_dir + "VToDoTask.ics")
task.save(data_dir + "VToDo_out.msg", ae.TaskSaveFormat.Msg)
Добавление информации о напоминании к MapiTask
Аналогично Microsoft Outlook, Aspose.Email может добавлять информацию о напоминании к MapiTask. Следующий кодовый фрагмент показывает, как добавить информацию о напоминании к MapiTask.
For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet | |
task = MapiTask("To Do", "Just click and type to add new task", dt.datetime(2018, 6, 1, 21, 30, 0), dt.datetime(2018, 6, 4, 21, 30, 0)) | |
task.reminder_set = True | |
task.reminder_time = dt.datetime(2018, 6, 1, 21, 30, 0) | |
task.reminder_file_parameter =dataDir + "file://Alarm01.wav" | |
task.save(dataDir + "AddReminderInformationToMapiTask_out.msg", TaskSaveFormat.MSG) |
Добавление вложений к MapiTask
Используйте метод Add класса MapiAttachmentCollection для добавления вложения к MapiTask. Следующий пример кода поможет вам с этим:
import aspose.email as ae
import datetime as dt
task = ae.mapi.MapiTask("Задача с вложением", "Текст задачи с вложением", dt.datetime.now(), dt.datetime.now());
task.attachments.add("Attachment.txt", str.encode("attachment data"))
task.save("AddAttachmentsToMapiTask_out", ae.mapi.TaskSaveFormat.MSG)
Добавление повторения к MapiTask
Aspose.Email позволяет создавать повторяющуюся задачу, где частота может быть ежедневной, еженедельной, ежемесячной или ежегодной. Следующий кодовый фрагмент показывает, как создать задачу с различными типами повторений.
For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet | |
startDate = dt.datetime(2015, 4, 30, 10, 00, 00) | |
task = MapiTask("abc", "def", startDate, dt.datetime(2015, 4, 30, 11, 00, 00)) | |
task.state = MapiTaskState.NOT_ASSIGNED | |
# Set the weekly recurrence | |
rec = MapiCalendarDailyRecurrencePattern() | |
rec.pattern_type = MapiCalendarRecurrencePatternType.DAY | |
rec.period = 1 | |
rec.week_start_day = 0 #0 is for Sunday and so on. WeekStartDay=0 | |
rec.occurrence_count = 0 | |
task.recurrence = True | |
task.save(dataDir + "AsposeDaily_out.msg", TaskSaveFormat.MSG) | |
# Set the weekly recurrence | |
rec1 = MapiCalendarWeeklyRecurrencePattern() | |
rec1.pattern_type = MapiCalendarRecurrencePatternType.WEEK | |
rec1.period = 1 | |
rec1.day_of_week = MapiCalendarDayOfWeek.WEDNESDAY | |
rec1.end_type = MapiCalendarRecurrenceEndType.NEVER_END | |
rec1.occurrence_count = 0 | |
task.recurrence = rec1 | |
task.save(dataDir + "AsposeWeekly_out.msg", TaskSaveFormat.MSG); | |
# Set the monthly recurrence | |
recMonthly = MapiCalendarMonthlyRecurrencePattern() | |
recMonthly.pattern_type = MapiCalendarRecurrencePatternType.MONTH | |
recMonthly.period = 1 | |
recMonthly.end_type = MapiCalendarRecurrenceEndType.NEVER_END | |
recMonthly.day = 30 | |
recMonthly.occurrence_count = 0 | |
recMonthly.week_start_day = 0 #0 is for Sunday and so on. WeekStartDay=0 | |
task.recurrence = recMonthly | |
task.save(dataDir + "AsposeMonthly_out.msg", TaskSaveFormat.MSG); | |
# Set the yearly recurrence | |
recYearly = MapiCalendarMonthlyRecurrencePattern() | |
recYearly.pattern_type = MapiCalendarRecurrencePatternType.MONTH | |
recYearly.end_type = MapiCalendarRecurrenceEndType.NEVER_END | |
recYearly.occurrence_count = 10 | |
recYearly.period = 12 | |
task.recurrence = recYearly | |
task.save(dataDir + "AsposeYearly_out.msg", TaskSaveFormat.MSG) |
Преобразование задачи в MHT
Следующий пример кода демонстрирует, как преобразовать задачу в формат MHT, указывая дополнительные параметры для формата MHT, когда специфические для задачи поля должны быть отображены (RENDER_TASK_FIELDS) и что информация заголовка должна быть включена (WRITE_HEADER). Свойство mht_format_options класса MhtSaveOptions используется для определения дополнительных опций при сохранении в формате MHTML.
import aspose.email as ae
msg = ae.mapi.MapiMessage.load("MapiTask.msg")
opt = ae.SaveOptions.default_mhtml
opt.mht_format_options = ae.MhtFormatOptions.RENDER_TASK_FIELDS | ae.MhtFormatOptions.WRITE_HEADER
msg.save("MapiTask_out.mht", opt)