Skapa, spara och läs Outlook‑uppgifter

Den här artikeln täcker fristående Outlook MapiTask poster sparade som MSG. För att lagra och läsa uppgifter i en PST, se Hantera uppgifter, journaler och anteckningar i PST-filer.

Skapa Outlook‑uppgifter

Aspose.Email för .NET låter dig skapa Outlook‑uppgifter och spara dem i MSG-format. MapiTask klassen tillhandahåller ett antal egenskaper såsom PercentComplete, EstimatedEffort, ActualEffort, History, LastUpdate, och andra, för att anpassa och ange information som krävs för en Outlook‑uppgift. Denna artikel visar hur man skapar, sparar och läser en MapiTask från disk. För att skapa och spara en uppgift på disk:

  1. Instansiera ett nytt objekt av MapiTask klass.
  2. Ange information om uppgiftsegenskaper.
  3. Spara uppgiften på disk i MSG-format.

Följande kodsnutt visar hur du skapar, sparar och läser uppgifter.

// 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);

Läs MAPI-uppgifter

Uppgifter sparade i MSG-format kan laddas in i MapiMessage och sedan konverterad till MapiTask med åtkomst till deras specifika egenskaper, såsom ämne och status. Följande kodexempel demonstrerar hur man läser och manipulerar uppgiftsdetaljer från sparade MSG‑filer:

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);

Läs VToDo‑uppgifter

Outlook‑uppgifter exporterade i iCalendar-format som VToDo‑händelser kan laddas med hjälp av MapiTask klass som visas i följande kodexempel. Följande kodsnutt visar hur du läser en VToDo‑uppgift.

MapiTask task = MapiTask.FromVTodo(dataDir + "VToDoTask.ics");
task.Save(dataDir + "VToDo_out.msg", TaskSaveFormat.Msg);

Lägg till påminnelseinformation till MAPI-uppgifter

På samma sätt som Microsoft Outlook kan Aspose.Email lägga till påminnelseinformation till en MapiTask. Följande kodsnutt visar hur du lägger till påminnelseinformation till en 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);

Lägg till bilagor till MAPI-uppgifter

Följande kodsnutt visar hur du lägger till bilagor till en 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);

Lägg till återkomst till MAPI-uppgifter

Aspose.Email möjliggör att skapa återkommande uppgifter där återkomsten kan vara dagligen, veckovis, månadsvis eller årligen. Följande kodsnutt visar hur du skapar en uppgift med olika återkommandetyper.

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);

Konvertera uppgifter till MHT

Aspose.Email kan generera MailMessage liknande resultat under konverteringen av en MapiTask till 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);

MSG‑till‑HTML‑konvertering med bibehållna uppgiftsfält

Den HtmlFormatOptions.RenderTaskFields enumerationen låter dig ange att uppgiftsfält ska inkluderas i huvudet på den sparade HTML‑filen. Följande kodsnutt visar hur man bevarar uppgiftsfält i huvudet när en HTML‑fil sparas:

var msg = MapiMessage.Load("task.msg");
HtmlSaveOptions opt = SaveOptions.DefaultHtml;
opt.HtmlFormatOptions = HtmlFormatOptions.WriteHeader | HtmlFormatOptions.RenderTaskFields;
msg.Save("task.html", opt);

Se även