Trabalhando com Tarefas do Outlook

Criando, Salvando e Lendo Tarefas

Aspose.Email para .NET permite que você crie tarefas do Outlook e as salve no formato MSG. A classe MapiTask fornece uma série de propriedades, como Percentcomplete, Estimatedeffort, ActualEffort, History, LastUpdate e outras, para acomodar e definir informações necessárias para uma tarefa do Outlook. Este artigo mostra como criar, salvar e ler uma MapiTask do disco. Para criar e salvar uma tarefa no disco:

  1. Instanciar um novo objeto da classe MapiContact.
  2. Inserir informações das propriedades da tarefa.
  3. Salvar a tarefa no disco no formato MSG.

O seguinte trecho de código mostra como criar, salvar e ler Tarefas.

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)

Lendo uma MapiTask

O objeto da classe MapiContact é usado para converter o objeto MapiMessage que carrega uma tarefa do disco no formato MSG. O seguinte trecho de código mostra como ler uma 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()

Lendo uma Tarefa VToDo

Tarefas do Google exportadas no formato iCalendar como eventos VToDo podem ser carregadas usando a classe MapiTask, como mostrado no seguinte exemplo de código. O seguinte trecho de código mostra como ler uma Tarefa 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)

Adicionando Informações de Lembrete a uma MapiTask

Semelhante ao Microsoft Outlook, Aspose.Email pode adicionar informações de lembrete a uma MapiTask. O seguinte trecho de código mostra como adicionar informações de lembrete a uma 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)

Adicionando Anexos a uma MapiTask

Use o método Add da classe MapiAttachmentCollection para adicionar um anexo a uma MapiTask. O seguinte exemplo de código ajudará você com isso:

import aspose.email as ae
import datetime as dt

task = ae.mapi.MapiTask("Tarefa com anexo", "Corpo de teste da tarefa com anexo", dt.datetime.now(), dt.datetime.now());
task.attachments.add("Attachment.txt", str.encode("dados do anexo"))
task.save("AddAttachmentsToMapiTask_out", ae.mapi.TaskSaveFormat.MSG)

Adicionando Recorrência a MapiTask

Aspose.Email permite criar uma tarefa recorrente onde a recorrência pode ser diária, semanal, mensal ou anual. O seguinte trecho de código mostra como criar uma tarefa com diferentes tipos de recorrência.

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)

Convertendo uma Tarefa para MHT

O seguinte exemplo de código demonstra como converter uma tarefa para o formato MHT especificando opções adicionais para o formato MHT quando campos específicos da tarefa devem ser renderizados (RENDER_TASK_FIELDS) e que as informações do cabeçalho devem ser incluídas (WRITE_HEADER). A propriedade mht_format_options da classe MhtSaveOptions é usada para definir opções adicionais ao salvar no formato 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)