Trabajando con Tareas de Outlook
Crear, Guardar y Leer Tareas
Aspose.Email para C++ 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 el disco:
- Instanciar un nuevo objeto de la clase MapiTask.
- Ingresar la información de las propiedades de la tarea.
- Guardar la tarea en el 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/kashifiqb/Aspose.Email-for-C | |
// The path to the File directory. | |
System::String dataDir = RunExamples::GetDataDir_Outlook(); | |
System::SharedPtr<MapiTask> task = System::MakeObject<MapiTask>(L"To Do", L"Just click and type to add new task", System::DateTime::get_Now(), System::DateTime::get_Now().AddDays(3)); | |
task->set_PercentComplete(20); | |
task->set_EstimatedEffort(2000); | |
task->set_ActualEffort(20); | |
task->set_History(Aspose::Email::Outlook::MapiTaskHistory::Assigned); | |
task->set_LastUpdate(System::DateTime::get_Now()); | |
task->get_Users()->set_Owner(L"Darius"); | |
task->get_Users()->set_LastAssigner(L"Harkness"); | |
task->get_Users()->set_LastDelegate(L"Harkness"); | |
task->get_Users()->set_Ownership(Aspose::Email::Outlook::MapiTaskOwnership::AssignersCopy); | |
task->set_Companies(System::MakeArray<System::String>({L"company1", L"company2", L"company3"})); | |
task->set_Categories(System::MakeArray<System::String>({L"category1", L"category2", L"category3"})); | |
task->set_Mileage(L"Some test mileage"); | |
task->set_Billing(L"Test billing information"); | |
task->get_Users()->set_Delegator(L"Test Delegator"); | |
task->set_Sensitivity(Aspose::Email::Outlook::Pst::MapiSensitivity::Personal); | |
task->set_Status(Aspose::Email::Outlook::MapiTaskStatus::Complete); | |
task->set_EstimatedEffort(5); | |
task->Save(dataDir + L"MapiTask.msg", Aspose::Email::Outlook::TaskSaveFormat::Msg); |
Leer un MapiTask
El objeto de la clase MapiTask se utiliza para transformar 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/kashifiqb/Aspose.Email-for-C | |
System::SharedPtr<MapiMessage> msg = MapiMessage::FromFile(dataDir + L"Contact.msg"); | |
System::SharedPtr<MapiContact> mapiContact = System::DynamicCast<Aspose::Email::Outlook::MapiContact>(msg->ToMapiMessageItem()); |
Leer una Tarea VToDo
Las tareas de Google exportadas en formato iCalendar como eventos VToDo se pueden cargar 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.
For complete examples and data files, please go to https://github.com/kashifiqb/Aspose.Email-for-C | |
System::SharedPtr<MapiTask> task = MapiTask::FromVTodo(dataDir + L"VToDoTask.ics"); | |
task->Save(dataDir + L"VToDo_out.msg", Aspose::Email::Outlook::TaskSaveFormat::Msg); |
Agregar 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/kashifiqb/Aspose.Email-for-C | |
// The path to the File directory. | |
System::String dataDir = RunExamples::GetDataDir_Outlook(); | |
// Create MapiTask and set Task Properties | |
System::SharedPtr<MapiTask> testTask = System::MakeObject<MapiTask>(L"task with reminder", L"this is a body", System::DateTime::get_Now(), System::DateTime::get_Now().AddHours(1)); | |
testTask->set_ReminderSet(true); | |
testTask->set_ReminderTime(System::DateTime::get_Now()); | |
testTask->set_ReminderFileParameter(dataDir + L"Alarm01.wav"); | |
testTask->Save(dataDir + L"AddReminderInformationToMapiTask_out", Aspose::Email::Outlook::TaskSaveFormat::Msg); |
Agregar Adjuntos a un MapiTask
El siguiente fragmento de código te muestra cómo agregar adjuntos a un MapiTask.
For complete examples and data files, please go to https://github.com/kashifiqb/Aspose.Email-for-C | |
// The path to the File directory. | |
System::String dataDir = RunExamples::GetDataDir_Outlook(); | |
System::String attachmentContent = L"Test attachment body"; | |
System::String attachmentName = L"Test attachment name"; | |
System::SharedPtr<MapiTask> testTask = System::MakeObject<MapiTask>(L"Task with attacment", L"Test body of task with attacment", System::DateTime::get_Now(), System::DateTime::get_Now().AddHours(1)); | |
testTask->get_Attachments()->Add(attachmentName, System::Text::Encoding::get_Unicode()->GetBytes(attachmentContent)); | |
testTask->Save(dataDir + L"AddAttachmentsToMapiTask_out", Aspose::Email::Outlook::TaskSaveFormat::Msg); |
Agregar Recurrencia a 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/kashifiqb/Aspose.Email-for-C | |
System::DateTime startDate(2015, 4, 30, 10, 00, 00); | |
System::SharedPtr<MapiTask> task = System::MakeObject<MapiTask>(L"abc", L"def", startDate, startDate.AddHours(1)); | |
task->set_State(Aspose::Email::Outlook::MapiTaskState::NotAssigned); | |
// Set the weekly recurrence | |
auto rec = System::MakeObject<MapiCalendarDailyRecurrencePattern>(); | |
rec->set_PatternType(Aspose::Email::Outlook::MapiCalendarRecurrencePatternType::Day); | |
rec->set_Period(1); | |
rec->set_WeekStartDay(System::DayOfWeek::Sunday); | |
rec->set_EndType(Aspose::Email::Outlook::MapiCalendarRecurrenceEndType::NeverEnd); | |
rec->set_OccurrenceCount(0); | |
task->set_Recurrence(rec); | |
task->Save(dataDir + L"AsposeDaily_out.msg", Aspose::Email::Outlook::TaskSaveFormat::Msg); | |
// Set the weekly recurrence | |
auto rec1 = System::MakeObject<MapiCalendarWeeklyRecurrencePattern>(); | |
rec1->set_PatternType(Aspose::Email::Outlook::MapiCalendarRecurrencePatternType::Week); | |
rec1->set_Period(1); | |
rec1->set_DayOfWeek(Aspose::Email::Outlook::MapiCalendarDayOfWeek::Wednesday); | |
rec1->set_EndType(Aspose::Email::Outlook::MapiCalendarRecurrenceEndType::NeverEnd); | |
rec1->set_OccurrenceCount(0); | |
task->set_Recurrence(rec1); | |
task->Save(dataDir + L"AsposeWeekly_out.msg", Aspose::Email::Outlook::TaskSaveFormat::Msg); | |
// Set the monthly recurrence | |
auto recMonthly = System::MakeObject<MapiCalendarMonthlyRecurrencePattern>(); | |
recMonthly->set_PatternType(Aspose::Email::Outlook::MapiCalendarRecurrencePatternType::Month); | |
recMonthly->set_Period(1); | |
recMonthly->set_EndType(Aspose::Email::Outlook::MapiCalendarRecurrenceEndType::NeverEnd); | |
recMonthly->set_Day(30); | |
recMonthly->set_OccurrenceCount(0); | |
recMonthly->set_WeekStartDay(System::DayOfWeek::Sunday); | |
task->set_Recurrence(recMonthly); | |
//task.Save(dataDir + "AsposeMonthly_out.msg", TaskSaveFormat.Msg); | |
// Set the yearly recurrence | |
auto recYearly = System::MakeObject<MapiCalendarMonthlyRecurrencePattern>(); | |
recYearly->set_PatternType(Aspose::Email::Outlook::MapiCalendarRecurrencePatternType::Month); | |
recYearly->set_EndType(Aspose::Email::Outlook::MapiCalendarRecurrenceEndType::NeverEnd); | |
recYearly->set_OccurrenceCount(10); | |
recYearly->set_Period(12); | |
task->set_Recurrence(recYearly); | |
//task.Save(dataDir + "AsposeYearly_out.msg", TaskSaveFormat.Msg); |