Créer, enregistrer et lire des tâches Outlook
Cet article couvre les Outlook autonomes MapiTask éléments sauvegardés comme MSG. Pour stocker et lire les tâches à l’intérieur d’un PST, voir Gestion des tâches, journaux et notes dans les fichiers PST.
Créer des tâches Outlook
Aspose.Email pour .NET vous permet de créer des tâches Outlook et de les enregistrer au format MSG. Le MapiTask la classe fournit un certain nombre de propriétés telles que PercentComplete, EstimatedEffort, ActualEffort, History, LastUpdate, et d’autres, pour répondre et définir les informations requises pour une tâche Outlook. Cet article montre comment créer, enregistrer et lire une MapiTask à partir du disque. Pour créer et enregistrer une tâche sur le disque :
- Instanciez un nouvel objet du MapiTask classe.
- Saisissez les informations des propriétés de la tâche.
- Enregistrez la tâche sur le disque au format MSG.
L’extrait de code suivant montre comment créer, enregistrer et lire des tâches.
// 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);
Lire les tâches MAPI
Les tâches enregistrées au format MSG peuvent être chargées dans MapiMessage et ensuite converti en MapiTask avec accès à leurs propriétés spécifiques, telles que le sujet et le statut. L’exemple de code suivant montre comment lire et manipuler les détails de tâche à partir de fichiers MSG enregistrés :
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);
Lire les tâches VToDo
Les tâches Outlook exportées au format iCalendar en tant qu’événements VToDo peuvent être chargées à l’aide du MapiTask classe comme indiqué dans l’exemple de code suivant. Le fragment de code suivant vous montre comment lire une tâche VToDo.
MapiTask task = MapiTask.FromVTodo(dataDir + "VToDoTask.ics");
task.Save(dataDir + "VToDo_out.msg", TaskSaveFormat.Msg);
Ajouter des informations de rappel aux tâches MAPI
De la même manière que Microsoft Outlook, Aspose.Email peut ajouter des informations de rappel à un MapiTask. Le fragment de code suivant montre comment ajouter des informations de rappel à un 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);
Ajouter des pièces jointes aux tâches MAPI
Le fragment de code suivant montre comment ajouter des pièces jointes à un 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);
Ajouter une récurrence aux tâches MAPI
Aspose.Email permet de créer une tâche récurrente dont la récurrence peut être quotidienne, hebdomadaire, mensuelle ou annuelle. Le fragment de code suivant montre comment créer une tâche avec différents types de récurrence.
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 les tâches en MHT
Aspose.Email peut générer MailMessage comme sortie lors de la conversion d’un MapiTask vers 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);
Conversion MSG vers HTML en conservant les champs de tâche
Le HtmlFormatOptions.RenderTaskFields l’énumération vous permet de spécifier que les champs de tâche doivent être inclus dans l’en-tête du fichier HTML enregistré. Le fragment de code suivant montre comment préserver les champs de tâche dans un en‑tête lors de l’enregistrement d’un fichier HTML :
var msg = MapiMessage.Load("task.msg");
HtmlSaveOptions opt = SaveOptions.DefaultHtml;
opt.HtmlFormatOptions = HtmlFormatOptions.WriteHeader | HtmlFormatOptions.RenderTaskFields;
msg.Save("task.html", opt);
Voir aussi
- Gestion des tâches, journaux et notes dans les fichiers PST — stocker et lire les tâches, journaux et notes à l’intérieur d’un PST.
- Créer, enregistrer et lire des notes Outlook — travailler avec des
MapiNoteéléments.