Crear, guardar y leer tareas de Outlook
Este artículo cubre Outlook independiente MapiTask elementos guardados como MSG. Para almacenar y leer tareas dentro de un PST, vea Administrar tareas, diarios y notas en archivos PST.
Crear tareas de Outlook
Aspose.Email para .NET le permite crear tareas de Outlook y guardarlas en formato MSG. La MapiTask La clase 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 una MapiTask desde disco. Para crear y guardar una tarea en disco:
- Instancie un nuevo objeto de la MapiTask clase.
- Ingrese la información de la propiedad de la tarea.
- Guardar la tarea en disco en formato MSG.
El siguiente fragmento de código muestra cómo crear, guardar y leer Tareas.
// 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 tareas MAPI
Las tareas guardadas en formato MSG pueden cargarse en MapiMessage y luego convertido a MapiTask con acceso a sus propiedades específicas, como el asunto y el estado. El siguiente ejemplo de código demuestra cómo leer y manipular los detalles de la tarea a partir de archivos MSG guardados:
MapiMessage msg = MapiMessage.FromFile(dataDir + "MapiTask.msg");
MapiTask task = (MapiTask)msg.ToMapiMessageItem();
Console.WriteLine("Subject: " + task.Subject);
Console.WriteLine("Status: " + task.Status);
Console.WriteLine("Percent complete: " + task.PercentComplete);
Leer tareas VToDo
Las tareas de Outlook exportadas en formato iCalendar como eventos VToDo pueden cargarse usando el MapiTask clase como se muestra en el siguiente ejemplo de código. El siguiente fragmento de código muestra cómo leer una tarea VToDo.
MapiTask task = MapiTask.FromVTodo(dataDir + "VToDoTask.ics");
task.Save(dataDir + "VToDo_out.msg", TaskSaveFormat.Msg);
Agregar información de recordatorio a tareas MAPI
Al igual que Microsoft Outlook, Aspose.Email puede agregar información de recordatorio a una MapiTask. El siguiente fragmento de código muestra cómo agregar información de recordatorio a una MapiTask.
// 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.msg", TaskSaveFormat.Msg);
Agregar adjuntos a tareas MAPI
El siguiente fragmento de código muestra cómo agregar archivos adjuntos a una MapiTask.
// 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 attachment", "Test body of task with attachment", DateTime.Now, DateTime.Now.AddHours(1));
testTask.Attachments.Add(attachmentName, Encoding.Unicode.GetBytes(attachmentContent));
testTask.Save(dataDir + "AddAttachmentsToMapiTask_out.msg", TaskSaveFormat.Msg);
Agregar recurrencia a tareas MAPI
Aspose.Email permite crear una tarea recurrente donde la recurrencia puede ser diaria, semanal, mensual o anual. El siguiente fragmento de código muestra cómo crear una tarea con diferentes tipos de recurrencia.
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 daily 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 tareas a MHT
Aspose.Email puede generar MailMessage como salida durante la conversión de un MapiTask a MHT.
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);
Conversión de MSG a HTML Preservando Campos de Tarea
El HtmlFormatOptions.RenderTaskFields la enumeración permite especificar que los campos de la tarea deben incluirse en el encabezado del archivo HTML guardado. El siguiente fragmento de código muestra cómo preservar los campos de la tarea en el encabezado al guardar un archivo html:
var msg = MapiMessage.Load("task.msg");
HtmlSaveOptions opt = SaveOptions.DefaultHtml;
opt.HtmlFormatOptions = HtmlFormatOptions.WriteHeader | HtmlFormatOptions.RenderTaskFields;
msg.Save("task.html", opt);
Ver también
- Administrar tareas, diarios y notas en archivos PST — almacenar y leer tareas, diarios y notas dentro de un PST.
- Crear, guardar y leer notas de Outlook — trabajar con independientes
MapiNoteelementos.