Trabalhando com Tarefas do Outlook

Criando, Salvando e Lendo Tarefas do Outlook

Aspose.Email para Java permite que desenvolvedores criem tarefas do Outlook e as salvem no formato MSG. A classe MapiTask fornece uma série de propriedades, como PercentComplete, EstimatedEffort, ActualEffort, History, LastUpdate, etc., para acomodar e definir as informações necessárias para uma tarefa do Outlook. Este artigo mostra como criar, salvar e ler uma MapiTask do disco.

Criar e Salvar uma MapiTask

Os seguintes passos podem ser usados para criar e salvar uma tarefa no disco.

  1. Instanciar um novo objeto da classe MapiTask.
  2. Inserir informações para as várias propriedades da tarefa.
  3. Salvar a tarefa no disco no formato MSG.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
calendar.set(2016, Calendar.NOVEMBER, 1, 0, 0, 0);
Date startDate = calendar.getTime();
calendar.set(2016, Calendar.DECEMBER, 1);
Date endDate = calendar.getTime();
MapiTask task = new MapiTask("To Do", "Just click and type to add new task", startDate, endDate);
task.setPercentComplete(20);
task.setEstimatedEffort(2000);
task.setActualEffort(20);
task.setHistory(MapiTaskHistory.Assigned);
task.getUsers().setOwner("Darius");
task.getUsers().setLastAssigner("Harkness");
task.getUsers().setLastDelegate("Harkness");
task.getUsers().setOwnership(MapiTaskOwnership.AssignersCopy);
String[] companies = { "company1", "company2", "company3" };
task.setCompanies(companies);
String[] categories = { "category1", "category2", "category3" };
task.setCategories(categories);
task.setMileage("Some test mileage");
task.setBilling("Test billing information");
task.getUsers().setDelegator("Test Delegator");
task.setSensitivity(MapiSensitivity.Personal);
task.setStatus(MapiTaskStatus.Complete);
task.save(dataDir + "MapiTask_out.msg", TaskSaveFormat.Msg);

Ler uma MapiTask

O objeto da classe MapiTask é usado para converter o objeto MapiMessage que carrega uma tarefa do disco no formato MSG.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
MapiMessage msg = MapiMessage.fromFile(dataDir + "MapiTask_out.msg");
MapiTask task2 = (MapiTask) msg.toMapiMessageItem();

Ler uma Tarefa VToDo

As Tarefas do Google exportadas no formato iCalendar como eventos VToDo podem ser carregadas usando a classe MapiTask conforme mostrado no seguinte exemplo de código.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
MapiTask task = MapiTask.fromVTodo(dataDir + "sample.ics");
task.save(dataDir + "Test_out.msg", TaskSaveFormat.Msg);

Adicionar Informações de Lembrete a uma MapiTask

Semelhante ao Microsoft Outlook, Aspose.Email pode adicionar informações de lembrete a uma MapiTask. O seguinte trecho de código mostra como adicionar informações de lembrete a uma MapiTask.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
calendar.set(2012, Calendar.NOVEMBER, 1, 0, 0, 0);
Date date = calendar.getTime();
MapiTask testTask = new MapiTask("task with reminder", "this is a body", date, date);
testTask.setReminderSet(true);
testTask.setReminderTime(date);
testTask.setReminderFileParameter(dataDir + "Alarm01.wav");
testTask.save(dataDir + "OutputTask_out.msg", TaskSaveFormat.Msg);

Adicionar Anexo a uma MapiTask

O seguinte trecho de código mostra como adicionar anexos a uma MapiTask.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
MapiTask task = new MapiTask("To Do", "Just click and type to add new tasks", new Date(), new Date());
Path p = FileSystems.getDefault().getPath("", dataDir + "Attach.txt");
try
{
task.getAttachments().add(dataDir + "TestAtt.txt", Files.readAllBytes(p));
}
catch (IOException e)
{
e.printStackTrace();
}
task.save(dataDir + "MapiTask_out.msg", TaskSaveFormat.Msg);

Convertendo Tarefa do Outlook para MHT

Aspose.Email pode gerar uma saída semelhante a MapiMessage durante a conversão de uma MapiTask para MHT.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
String dataDir = Utils.getSharedDataDir(CreateAndSaveOutlookMessageFile.class) + "outlook/";
MapiMessage msg = MapiMessage.fromFile(dataDir + "MapiTask.msg");
MhtSaveOptions opt = SaveOptions.getDefaultMhtml();
opt.setMhtFormatOptions(MhtFormatOptions.RenderTaskFields | MhtFormatOptions.WriteHeader);
opt.getFormatTemplates().clear();
opt.getFormatTemplates().add(MhtTemplateName.Task.SUBJECT, "<span class='headerLineTitle'>Subject:</span><span class='headerLineText'>{0}</span><br/>");
opt.getFormatTemplates().add(MhtTemplateName.Task.ACTUAL_WORK, "<span class='headerLineTitle'>Actual Work:</span><span class='headerLineText'>{0}</span><br/>");
opt.getFormatTemplates().add(MhtTemplateName.Task.TOTAL_WORK, "<span class='headerLineTitle'>Total Work:</span><span class='headerLineText'>{0}</span><br/>");
opt.getFormatTemplates().add(MhtTemplateName.Task.STATUS, "<span class='headerLineTitle'>Status:</span><span class='headerLineText'>{0}</span><br/>");
opt.getFormatTemplates().add(MhtTemplateName.Task.OWNER, "<span class='headerLineTitle'>Owner:</span><span class='headerLineText'>{0}</span><br/>");
opt.getFormatTemplates().add(MhtTemplateName.Task.PRIORITY, "<span class='headerLineTitle'>Priority:</span><span class='headerLineText'>{0}</span><br/>");
msg.save(dataDir + "MapiTask_out.mht", opt);