צור, שמור וקרא משימות של Outlook

מאמר זה מכסה Outlook עצמאי MapiTask פריטים נשמרים כ‑MSG. כדי לאחסן ולקרוא משימות בתוך PST, ראו ניהול משימות, יומנים ופתקיות בקבצי PST.

צור משימות Outlook

Aspose.Email ל-.NET מאפשרת ליצור משימות Outlook ולשמור אותן בפורמט MSG. ה MapiTask המחלקה מספקת מספר מאפיינים כגון PercentComplete, EstimatedEffort, ActualEffort, History, LastUpdate, ואחרים, כדי להתאים ולהגדיר מידע נדרש עבור משימת Outlook. מאמר זה מציג כיצד ליצור, לשמור ולקרוא MapiTask מהדיסק. כדי ליצור ולשמור משימה לכונן:

  1. צור מופע חדש של ה‑ MapiTask מחלקה.
  2. הכנס מידע על תכונת המשימה.
  3. שמור את המשימה בכונן בפורמט MSG.

קטע הקוד הבא מראה כיצד ליצור, לשמור ולקרוא משימות.

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

קרא משימות MAPI

משימות שנשמרו בפורמט MSG יכולות להיטען ל- MapiMessage ולאחר מכן מומר ל- MapiTask עם גישה לתכונות הספציפיות שלהם, כגון הנושא והסטטוס. דוגמת הקוד הבאה מדגימה כיצד לקרוא ולשנות פרטי משימה מקבצי MSG שנשמרו:

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

קרא משימות VToDo

משימות Outlook שמיוצאות בפורמט iCalendar כאירועי VToDo ניתן לטעון באמצעות MapiTask מחלקה כפי שמוצג בדוגמת הקוד הבאה. קוד הדוגמה הבא מציג כיצד לקרוא משימת VToDo.

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

הוסף מידע תזכורת למשימות MAPI

בדומה ל-Microsoft Outlook, Aspose.Email יכול להוסיף מידע תזכורת ל- MapiTask. הקטע הקוד הבא מראה כיצד להוסיף מידע תזכורת ל- 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);

הוסף קבצים מצורפים למשימות MAPI

הקטע הקוד הבא מראה כיצד להוסיף קבצים מצורפים ל- 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);

הוסף חזרתיות למשימות MAPI

Aspose.Email מאפשרת ליצור משימה חוזרת שבה החזרתיות יכולה להיות יומית, שבועית, חודשית או שנתית. קוד הדוגמה הבא מציג כיצד ליצור משימה עם סוגי חזרתיות שונים.

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

המר משימות ל-MHT

Aspose.Email יכול ליצור MailMessage כמו פלט במהלך ההמרה של MapiTask ל-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 ל‑HTML שמירת שדות משימה

ה HtmlFormatOptions.RenderTaskFields הEnum מאפשר לך לציין כי שדות המשימה צריכים לכלול בכותרת של קובץ HTML הנשמר. קוד הדוגמה הבא מראה כיצד לשמר שדות משימה בכותרת בעת שמירת קובץ html:

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

ראייה נוספת