Trabalhando com Compromissos

Carregar e Salvar um Compromisso em Formato ICS

Appointment A classe em Aspose.Email para Java pode ser usada para carregar um compromisso em formato ICS, bem como criar um novo compromisso e salvá‑lo em disco no formato ICS. Neste artigo, primeiro criamos um compromisso e o salvamos em disco no formato ICS e depois o carregamos.

Carregar um Compromisso em Formato ICS

Para carregar um compromisso em formato ICS, os seguintes passos são necessários:

  1. Crie uma instância do Appointment classe.
  2. Chame o Load() método fornecendo o caminho do arquivo ICS.
  3. Leia qualquer propriedade para obter qualquer informação do compromisso (arquivo ICS).

Os trechos de código a seguir mostram como carregar um compromisso em formato ICS.

Criar um Compromisso e Salvar em Disco no Formato ICS

Os passos a seguir são necessários para criar um compromisso e salvá‑lo em formato ICS.

  1. Crie uma instância do Appointment classe e inicialize‑a com este construtor.
  2. Passe os seguintes argumentos no construtor acima
    1. Participantes
    2. Descrição
    3. Data de Término
    4. Local
    5. Organizador
    6. Data de Início
    7. Resumo
    8. Data de Criação
    9. Data da Última Modificação 
  3. Chame o Save() método e especifique o nome do arquivo e o formato nos argumentos.

O compromisso pode ser aberto no Microsoft Outlook ou em qualquer programa que possa carregar um arquivo ICS. Se o arquivo for aberto no Microsoft Outlook, ele adiciona automaticamente o compromisso ao calendário do Outlook.

Os trechos de código a seguir mostram como criar e salvar um compromisso em disco no formato ICS.

Salvando Compromissos no Formato MSG

Aspose.Email permite salvar compromissos diretamente em arquivos .msg. As classes públicas a seguir estão disponíveis para personalizar o processo de gravação de compromissos:

  • AppointmentMsgSaveOptions classe com opções adicionais para salvar compromissos em formato msg.
  • AppointmentIcsSaveOptions classe com opções adicionais para salvar compromissos em formato ics. Foi adicionada para substituir o obsoleto IcsSaveOptions.

O exemplo de código abaixo mostra como carregar um compromisso de um arquivo e, em seguida, salvá‑lo em dois formatos diferentes: .ics e .msg.

Appointment appointment = Appointment.load("fileName");
appointment.save("fileName.ics", new AppointmentIcsSaveOptions());
appointment.save("fileName.msg", new AppointmentMsgSaveOptions());

Criar um Compromisso com Conteúdo HTML

É prática comum usar o cabeçalho X-ALT-DESC no formato iCalendar (RFC 5545). É uma propriedade estendida que fornece uma descrição alternativa legível por humanos de um item ou evento de calendário. Esse cabeçalho costuma ser usado para incluir uma representação em texto simples ou HTML da descrição do evento, o que pode ser útil para compatibilidade com softwares de calendário mais antigos ou para fornecer uma versão simplificada da descrição. Em casos em que a descrição principal não é suportada ou exibida corretamente pelo aplicativo de calendário do destinatário, o cabeçalho X-ALT-DESC é usado para fornecer uma descrição alternativa do evento. Ele permite que o remetente inclua diferentes representações da descrição do evento para garantir melhor compatibilidade e acessibilidade em diferentes softwares e plataformas de calendário. Para criar um compromisso com conteúdo HTML, defina o HtmlDescription propriedade para ’true’. Experimente o exemplo de código a seguir que demonstra como criar e definir um objeto de compromisso com detalhes e configurações específicos, incluindo data, hora, local, organizador, participantes e uma descrição formatada:

Date startDate = new Date();
Appointment appointment = new Appointment("Bygget 83",
        startDate, // start date
        addHours(startDate, 1), // end date
        new MailAddress("TintinStrom@from.com", "Tintin Strom"), // organizer
        MailAddressCollection.to_MailAddressCollection(
                new MailAddress("AinaMartensson@to.com", "Aina Martensson"))); // attendee
appointment.setHtmlDescription("<html>\n"
        + "     <style type=\"\"text/css\"\">\n"
        + "      .text {\n"
        + "             font-family:'Comic Sans MS';\n"
        + "             font-size:16px;\n"
        + "            }\n"
        + "     </style>\n"
        + "    <body>\n"
        + "     <p class=\"\"text\"\">Hi, I'm happy to invite you to our party.</p>\n"
        + "    </body>\n"
        + "    </html>");

Criar uma Solicitação de Compromisso em Rascunho

Para salvar um compromisso em modo rascunho, o Method propriedade do Appointment a classe deve ser definida como Publish. O exemplo de código a seguir demonstra o uso desta propriedade como exemplo.

Criação de Compromisso Rascunho a partir de Texto

Adicionando e Removendo Anexos de Itens de Calendário

Aspose.Email fornece uma coleção de anexos que pode ser usada para adicionar e recuperar anexos associados a itens de calendário. Este artigo mostra como:

  1. Criar e adicionar anexos a um Appointment objeto de classe.
  2. Recuperar informações dos anexos de um compromisso.
  3. Extrair anexos de um compromisso.

Formatando Compromissos

Os exemplos de programação abaixo demonstram como usar o AppointmentFormattingOptions classe para formatar texto e HTML.

Exemplo de Programação - Formatação de Texto

Exemplo de Programação - Formatação HTML

Ler Múltiplos Eventos de um Arquivo ICS

Gravar Múltiplos Eventos em um Arquivo ICS

Definir o Status dos Participantes dos Compromissos

A API Aspose.Email para .NET permite definir o status dos participantes do compromisso ao elaborar uma mensagem de resposta. Isso adiciona a propriedade PARTSTAT ao arquivo ICS.

Personalizar o Identificador de Produto para iCalendar

A API Aspose.Email para Java permite obter ou definir o identificador de produto que criou o objeto iCalendar.

Como contornar a Validação de Endereço ao tentar Carregar Compromissos

A API Aspose.Email para Java permite contornar o erro de validação de e‑mail definindo o IgnoreSmtpAddressCheck opção no AppointmentLoadOptions objeto e passá‑lo para a chamada de carregamento.

AppointmentLoadOptions lo = new AppointmentLoadOptions();
lo.setIgnoreSmtpAddressCheck(true);
Appointment appointment = Appointment.load("app.ics", lo);