Trabajando con Tareas de Outlook
Crear, Guardar y Leer 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 el disco:
- Instancia un nuevo objeto de la clase MapiContact.
- Ingresa la información de las propiedades de la tarea.
- Guarda 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-for-.NET | |
// The path to the File directory. | |
string dataDir = RunExamples.GetDataDir_Outlook(); | |
MapiTask task = new MapiTask("To Do", "Just click and type to add new task", DateTime.Now, DateTime.Now.AddDays(3)); | |
task.PercentComplete = 20; | |
task.EstimatedEffort = 2000; | |
task.ActualEffort = 20; | |
task.History = MapiTaskHistory.Assigned; | |
task.LastUpdate = DateTime.Now; | |
task.Users.Owner = "Darius"; | |
task.Users.LastAssigner = "Harkness"; | |
task.Users.LastDelegate = "Harkness"; | |
task.Users.Ownership = MapiTaskOwnership.AssignersCopy; | |
task.Companies = new string[] { "company1", "company2", "company3" }; | |
task.Categories = new string[] { "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.EstimatedEffort = 5; | |
task.Save(dataDir + "MapiTask.msg", TaskSaveFormat.Msg); |
Leer 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-for-.NET | |
MapiMessage msg = MapiMessage.FromFile(dataDir + "Contact.msg"); | |
MapiContact mapiContact = (MapiContact)msg.ToMapiMessageItem(); |
Leer 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.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET | |
MapiTask task = MapiTask.FromVTodo(dataDir + "VToDoTask.ics"); | |
task.Save(dataDir + "VToDo_out.msg", 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/aspose-email/Aspose.Email-for-.NET | |
// The path to the File directory. | |
string dataDir = RunExamples.GetDataDir_Outlook(); | |
// Create MapiTask and set Task Properties | |
MapiTask testTask = new MapiTask("task with reminder", "this is a body", DateTime.Now, DateTime.Now.AddHours(1)); | |
testTask.ReminderSet = true; | |
testTask.ReminderTime = DateTime.Now; | |
testTask.ReminderFileParameter =dataDir + "Alarm01.wav"; | |
testTask.Save(dataDir + "AddReminderInformationToMapiTask_out", TaskSaveFormat.Msg); |
Agregar Archivos Adjuntos a un MapiTask
El siguiente fragmento de código te muestra cómo agregar archivos adjuntos a un MapiTask.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET | |
// The path to the File directory. | |
string dataDir = RunExamples.GetDataDir_Outlook(); | |
string attachmentContent = "Test attachment body"; | |
string attachmentName = "Test attachment name"; | |
MapiTask testTask = new MapiTask("Task with attacment", "Test body of task with attacment", DateTime.Now, DateTime.Now.AddHours(1)); | |
testTask.Attachments.Add(attachmentName, Encoding.Unicode.GetBytes(attachmentContent)); | |
testTask.Save(dataDir + "AddAttachmentsToMapiTask_out", 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/aspose-email/Aspose.Email-for-.NET | |
DateTime startDate = new DateTime(2015, 04, 30, 10, 00, 00); | |
MapiTask task = new MapiTask("abc", "def", startDate, startDate.AddHours(1)); | |
task.State = MapiTaskState.NotAssigned; | |
// Set the weekly recurrence | |
var rec = new MapiCalendarDailyRecurrencePattern | |
{ | |
PatternType = MapiCalendarRecurrencePatternType.Day, | |
Period = 1, | |
WeekStartDay = DayOfWeek.Sunday, | |
EndType = MapiCalendarRecurrenceEndType.NeverEnd, | |
OccurrenceCount = 0, | |
}; | |
task.Recurrence = rec; | |
task.Save(dataDir + "AsposeDaily_out.msg", TaskSaveFormat.Msg); | |
// Set the weekly recurrence | |
var rec1 = new MapiCalendarWeeklyRecurrencePattern | |
{ | |
PatternType = MapiCalendarRecurrencePatternType.Week, | |
Period = 1, | |
DayOfWeek = MapiCalendarDayOfWeek.Wednesday, | |
EndType = MapiCalendarRecurrenceEndType.NeverEnd, | |
OccurrenceCount = 0, | |
}; | |
task.Recurrence = rec1; | |
task.Save(dataDir + "AsposeWeekly_out.msg", TaskSaveFormat.Msg); | |
// Set the monthly recurrence | |
var recMonthly = new MapiCalendarMonthlyRecurrencePattern | |
{ | |
PatternType = MapiCalendarRecurrencePatternType.Month, | |
Period = 1, | |
EndType = MapiCalendarRecurrenceEndType.NeverEnd, | |
Day = 30, | |
OccurrenceCount = 0, | |
WeekStartDay = DayOfWeek.Sunday, | |
}; | |
task.Recurrence = recMonthly; | |
//task.Save(dataDir + "AsposeMonthly_out.msg", TaskSaveFormat.Msg); | |
// Set the yearly recurrence | |
var recYearly = new MapiCalendarMonthlyRecurrencePattern | |
{ | |
PatternType = MapiCalendarRecurrencePatternType.Month, | |
EndType = MapiCalendarRecurrenceEndType.NeverEnd, | |
OccurrenceCount = 10, | |
Period = 12, | |
}; | |
task.Recurrence = recYearly; | |
//task.Save(dataDir + "AsposeYearly_out.msg", TaskSaveFormat.Msg); |
Convertir Tarea a MHT
Aspose.Email puede generar una salida similar a MailMessage durante la conversión de un MapiTask a MHT.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET | |
MapiMessage msg = MapiMessage.FromFile(dataDir + "MapiTask.msg"); | |
MhtSaveOptions opt = SaveOptions.DefaultMhtml; | |
opt.MhtFormatOptions = MhtFormatOptions.RenderTaskFields | MhtFormatOptions.WriteHeader; | |
opt.FormatTemplates.Clear(); | |
opt.FormatTemplates.Add(MhtTemplateName.Task.Subject, "<span class='headerLineTitle'>Subject:</span><span class='headerLineText'>{0}</span><br/>"); | |
opt.FormatTemplates.Add(MhtTemplateName.Task.ActualWork, "<span class='headerLineTitle'>Actual Work:</span><span class='headerLineText'>{0}</span><br/>"); | |
opt.FormatTemplates.Add(MhtTemplateName.Task.TotalWork, "<span class='headerLineTitle'>Total Work:</span><span class='headerLineText'>{0}</span><br/>"); | |
opt.FormatTemplates.Add(MhtTemplateName.Task.Status, "<span class='headerLineTitle'>Status:</span><span class='headerLineText'>{0}</span><br/>"); | |
opt.FormatTemplates.Add(MhtTemplateName.Task.Owner, "<span class='headerLineTitle'>Owner:</span><span class='headerLineText'>{0}</span><br/>"); | |
opt.FormatTemplates.Add(MhtTemplateName.Task.Priority, "<span class='headerLineTitle'>Priority:</span><span class='headerLineText'>{0}</span><br/>"); | |
msg.Save(dataDir + "MapiTask_out.mht", opt); |