Tạo, Lưu và Đọc Nhiệm vụ Outlook
Bài viết này đề cập đến Outlook độc lập MapiTask các mục được lưu dưới dạng MSG. Để lưu trữ và đọc nhiệm vụ trong PST, xem Quản lý Nhiệm vụ, Nhật ký và Ghi chú trong Tệp PST.
Tạo Nhiệm vụ Outlook
Aspose.Email cho .NET cho phép bạn tạo nhiệm vụ Outlook và lưu chúng ở định dạng MSG. MapiTask lớp cung cấp một số thuộc tính như PercentComplete, EstimatedEffort, ActualEffort, History, LastUpdate, và các thứ khác, để đáp ứng và đặt thông tin cần thiết cho một nhiệm vụ Outlook. Bài viết này cho thấy cách tạo, lưu và đọc một MapiTask từ đĩa. Để tạo và lưu một nhiệm vụ vào đĩa:
- Khởi tạo một đối tượng mới của MapiTask lớp.
- Nhập thông tin thuộc tính của tác vụ.
- Lưu tác vụ vào đĩa ở định dạng MSG.
Đoạn mã dưới đây cho bạn thấy cách tạo, lưu và đọc các tác vụ.
// 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);
Đọc Nhiệm vụ MAPI
Nhiệm vụ được lưu ở định dạng MSG có thể được tải vào MapiMessage và sau đó được chuyển đổi thành MapiTask với quyền truy cập vào các thuộc tính cụ thể của chúng, như tiêu đề và trạng thái. Đoạn mẫu mã dưới đây minh họa cách đọc và thao tác chi tiết nhiệm vụ từ các tệp MSG đã lưu:
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);
Đọc tác vụ VToDo
Nhiệm vụ Outlook được xuất ở định dạng iCalendar dưới dạng sự kiện VToDo có thể được tải bằng MapiTask lớp như được hiển thị trong mẫu mã sau. Đoạn mã dưới đây cho bạn cách đọc một Nhiệm vụ VToDo.
MapiTask task = MapiTask.FromVTodo(dataDir + "VToDoTask.ics");
task.Save(dataDir + "VToDo_out.msg", TaskSaveFormat.Msg);
Thêm Thông tin Nhắc nhở vào Nhiệm vụ MAPI
Tương tự như Microsoft Outlook, Aspose.Email có thể thêm thông tin nhắc nhở vào một MapiTask. Đoạn mã sau đây cho bạn thấy cách thêm thông tin nhắc nhở vào một 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);
Thêm Đính kèm vào Nhiệm vụ MAPI
Đoạn mã sau đây cho bạn thấy cách thêm tệp đính kèm vào một 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);
Thêm Chu kỳ vào Nhiệm vụ MAPI
Aspose.Email cho phép tạo nhiệm vụ lặp lại, trong đó chu kỳ có thể là hàng ngày, hàng tuần, hàng tháng hoặc hàng năm. Đoạn mã sau đây cho bạn cách tạo một nhiệm vụ với các loại chu kỳ khác nhau.
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);
Chuyển đổi Nhiệm vụ sang MHT
Aspose.Email có thể tạo MailMessage giống như đầu ra trong quá trình chuyển đổi một MapiTask đến 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);
Chuyển đổi MSG sang HTML Giữ lại Trường Nhiệm vụ
Cái HtmlFormatOptions.RenderTaskFields định danh cho phép bạn chỉ định rằng các trường nhiệm vụ nên được bao gồm trong tiêu đề của tệp HTML đã lưu. Đoạn mã dưới đây cho thấy cách bảo tồn các trường nhiệm vụ trong tiêu đề khi lưu tệp html:
var msg = MapiMessage.Load("task.msg");
HtmlSaveOptions opt = SaveOptions.DefaultHtml;
opt.HtmlFormatOptions = HtmlFormatOptions.WriteHeader | HtmlFormatOptions.RenderTaskFields;
msg.Save("task.html", opt);
Xem Thêm
- Quản lý Nhiệm vụ, Nhật ký và Ghi chú trong Tệp PST — lưu trữ và đọc các nhiệm vụ, nhật ký và ghi chú trong PST.
- Tạo, Lưu và Đọc Ghi chú Outlook — làm việc với các mục độc lập
MapiNotecác mục.