Trabajando con Tareas de Outlook

Creación, Guardado y Lectura de Tareas

Aspose.Email para .NET te permite crear tareas de Outlook y guardarlas en formato MSG. La clase MapiTask proporciona una serie de propiedades como Percentcomplete, Estimatedeffort, ActualEffort, History, LastUpdate y otras, para acomodar y establecer la información requerida para una tarea de Outlook. Este artículo muestra cómo crear, guardar y leer un MapiTask desde el disco. Para crear y guardar una tarea en disco:

  1. Instanciar un nuevo objeto de la clase MapiContact.
  2. Ingresar la información de las propiedades de la tarea.
  3. Guardar la tarea en disco en formato MSG.

El siguiente fragmento de código te muestra cómo crear, guardar y leer Tareas.

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)

Leyendo un MapiTask

El objeto de la clase MapiContact se utiliza para convertir el objeto MapiMessage que carga una tarea desde el disco en formato MSG. El siguiente fragmento de código te muestra cómo leer un 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()

Leyendo una Tarea VToDo

Las Tareas de Google exportadas en formato iCalendar como eventos VToDo pueden ser cargadas utilizando la clase MapiTask, como se muestra en el siguiente ejemplo de código. El siguiente fragmento de código te muestra cómo leer una Tarea 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)

Agregando Información de Recordatorio a un MapiTask

Similar a Microsoft Outlook, Aspose.Email puede agregar información de recordatorio a un MapiTask. El siguiente fragmento de código te muestra cómo agregar información de recordatorio a un 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)

Agregando Adjuntos a un MapiTask

Usa el Add método de la clase MapiAttachmentCollection para agregar un adjunto a un MapiTask. El siguiente ejemplo de código te ayudará con eso:

import aspose.email as ae
import datetime as dt

task = ae.mapi.MapiTask("Tarea con adjunto", "Cuerpo de prueba de tarea con adjunto", dt.datetime.now(), dt.datetime.now());
task.attachments.add("Attachment.txt", str.encode("datos del adjunto"))
task.save("AddAttachmentsToMapiTask_out", ae.mapi.TaskSaveFormat.MSG)

Agregando Recurrencia a un MapiTask

Aspose.Email permite crear una tarea recurrente donde la recurrencia puede ser diaria, semanal, mensual o anual. El siguiente fragmento de código te muestra cómo crear una tarea con diferentes tipos de recurrencia.

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)

Convirtiendo una Tarea a MHT

El siguiente ejemplo de código demuestra cómo convertir una tarea a formato MHT especificando opciones adicionales para el formato MHT cuando los campos específicos de la tarea deben ser renderizados (RENDER_TASK_FIELDS) y que la información del encabezado debe ser incluida (WRITE_HEADER). La propiedad mht_format_options de la clase MhtSaveOptions se utiliza para definir opciones adicionales al guardar en 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)