Trabalhando com Itens de Calendário do Outlook usando a Biblioteca de Email C++
Trabalhando com MapiCalendar
A classe MapiCalendar da Aspose.Email fornece métodos e atributos para definir várias propriedades de um item de calendário. Este artigo fornece exemplos de código para:
- Criar e salvar itens de calendário
- Definir lembretes para itens MapiCalendar
- Adicionar/Recuperar Anexos de Calendário
- Recuperar Status dos Destinatários de Solicitações de Reunião
- Criar objeto MapiCalendar TimeZone a partir de Fuso Horário Padrão
Criando e Salvando Itens de Calendário
O seguinte trecho de código mostra como criar e salvar um item de calendário no formato ICS usando a Biblioteca ou API de Análise de Email C++.
For complete examples and data files, please go to https://github.com/kashifiqb/Aspose.Email-for-C | |
// The path to the File directory. | |
System::String dataDir = RunExamples::GetDataDir_Outlook(); | |
// Create the appointment | |
System::SharedPtr<MapiCalendar> calendar = System::MakeObject<MapiCalendar>(L"LAKE ARGYLE WA 6743", L"Appointment", L"This is a very important meeting :)", System::DateTime(2012, 10, 2, 13, 0, 0), System::DateTime(2012, 10, 2, 14, 0, 0)); | |
calendar->Save(dataDir + L"CalendarItem_out.ics", Aspose::Email::Mail::AppointmentSaveFormat::Ics); |
Salvando o Item de Calendário como MSG
O seguinte trecho de código mostra como salvar o item de calendário como MSG.
For complete examples and data files, please go to https://github.com/kashifiqb/Aspose.Email-for-C | |
calendar->Save(dataDir + L"CalendarItemAsMSG_out.Msg", Aspose::Email::Mail::AppointmentSaveFormat::Msg); |
Adicionando lembrete visual a um Calendário
O seguinte trecho de código mostra como adicionar um lembrete visual a um calendário.
For complete examples and data files, please go to https://github.com/kashifiqb/Aspose.Email-for-C | |
// The path to the File directory. | |
System::String dataDir = RunExamples::GetDataDir_Outlook(); | |
// Create Appointment | |
System::SharedPtr<Appointment> app = System::MakeObject<Appointment>(L"Home", System::DateTime::get_Now().AddHours(1), System::DateTime::get_Now().AddHours(1), MailAddress::to_MailAddress(L"organizer@domain.com"), MailAddressCollection::to_MailAddressCollection(L"attendee@gmail.com")); | |
System::SharedPtr<MailMessage> msg = System::MakeObject<MailMessage>(); | |
msg->AddAlternateView(app->RequestApointment()); | |
System::SharedPtr<MapiMessage> mapi = MapiMessage::FromMailMessage(msg); | |
System::SharedPtr<MapiCalendar> calendar = System::DynamicCast<Aspose::Email::Outlook::MapiCalendar>(mapi->ToMapiMessageItem()); | |
// Set calendar Properties | |
calendar->set_ReminderSet(true); | |
calendar->set_ReminderDelta(45); | |
//45 min before start of event | |
System::String savedFile = (dataDir + L"calendarWithDisplayReminder.ics"); | |
calendar->Save(savedFile, Aspose::Email::Mail::AppointmentSaveFormat::Ics); |
Adicionando lembrete de áudio a um Calendário
O seguinte trecho de código mostra como adicionar um lembrete de áudio a um calendário.
For complete examples and data files, please go to https://github.com/kashifiqb/Aspose.Email-for-C | |
// The path to the File directory. | |
System::String dataDir = RunExamples::GetDataDir_Outlook(); | |
System::SharedPtr<Appointment> app = System::MakeObject<Appointment>(L"Home", System::DateTime::get_Now().AddHours(1), System::DateTime::get_Now().AddHours(1), MailAddress::to_MailAddress(L"organizer@domain.com"), MailAddressCollection::to_MailAddressCollection(L"attendee@gmail.com")); | |
System::SharedPtr<MailMessage> msg = System::MakeObject<MailMessage>(); | |
msg->AddAlternateView(app->RequestApointment()); | |
System::SharedPtr<MapiMessage> mapi = MapiMessage::FromMailMessage(msg); | |
System::SharedPtr<MapiCalendar> calendar = System::DynamicCast<Aspose::Email::Outlook::MapiCalendar>(mapi->ToMapiMessageItem()); | |
// Set calendar properties | |
calendar->set_ReminderSet(true); | |
calendar->set_ReminderDelta(58); | |
//58 min before start of event | |
calendar->set_ReminderFileParameter(dataDir + L"Alarm01.wav"); | |
System::String savedFile = (dataDir + L"calendarWithAudioReminder_out.ics"); | |
calendar->Save(savedFile, Aspose::Email::Mail::AppointmentSaveFormat::Ics); |
Adicionar/Recuperar anexos de arquivos de Calendário
O seguinte trecho de código mostra como adicionar/recuperar anexos de arquivos de calendário.
For complete examples and data files, please go to https://github.com/kashifiqb/Aspose.Email-for-C | |
System::ArrayPtr<System::String> files = System::MakeArray<System::String>(3); | |
files[0] = dataDir + L"attachment_1.doc"; | |
files[1] = dataDir + L"download.png"; | |
files[2] = dataDir + L"Desert.jpg"; | |
System::SharedPtr<Appointment> app1 = System::MakeObject<Appointment>(L"Home", System::DateTime::get_Now().AddHours(1), System::DateTime::get_Now().AddHours(1), MailAddress::to_MailAddress(L"organizer@domain.com"), MailAddressCollection::to_MailAddressCollection(L"attendee@gmail.com")); | |
{ | |
for (int i_ = 0; i_ < files->Count(); ++i_) | |
{ | |
System::String file = files[i_]; | |
{ | |
{ | |
System::SharedPtr<System::IO::MemoryStream> ms = System::MakeObject<System::IO::MemoryStream>(System::IO::File::ReadAllBytes(file)); | |
app1->get_Attachments()->Add(System::MakeObject<Attachment>(ms, System::IO::Path::GetFileName(file))); | |
} | |
} | |
} | |
} | |
app1->Save(dataDir + L"appWithAttachments_out.ics", Aspose::Email::Mail::AppointmentSaveFormat::Ics); | |
System::SharedPtr<Appointment> app2 = Appointment::Load(dataDir + L"appWithAttachments_out.ics"); | |
System::Console::WriteLine(app2->get_Attachments()->get_Count()); | |
{ | |
auto att_enumerator = (app2->get_Attachments())->GetEnumerator(); | |
decltype(att_enumerator->get_Current()) att; | |
while (att_enumerator->MoveNext() && (att = att_enumerator->get_Current(), true)) | |
{ | |
System::Console::WriteLine(att->get_Name()); | |
} | |
} |
Status dos Destinatários de uma Solicitação de Reunião
O seguinte trecho de código mostra como obter o status dos destinatários de uma solicitação de reunião.
For complete examples and data files, please go to https://github.com/kashifiqb/Aspose.Email-for-C | |
System::SharedPtr<MapiMessage> message = MapiMessage::FromFile(fileName); | |
{ | |
auto recipient_enumerator = (message->get_Recipients())->GetEnumerator(); | |
decltype(recipient_enumerator->get_Current()) recipient; | |
while (recipient_enumerator->MoveNext() && (recipient = recipient_enumerator->get_Current(), true)) | |
{ | |
System::Console::WriteLine(System::ObjectExt::Box<MapiRecipientTrackStatus>(recipient->get_RecipientTrackStatus())); | |
} | |
} |
Criar MapiCalendarTimeZone a partir de Fuso Horário Padrão
O seguinte trecho de código mostra como criar MapiCalendarTimeZone a partir de um fuso horário padrão.
For complete examples and data files, please go to https://github.com/kashifiqb/Aspose.Email-for-C | |
System::SharedPtr<MapiCalendarTimeZone> timeZone = System::MakeObject<MapiCalendarTimeZone>(System::TimeZoneInfo::get_Local()); |
Definindo Lembrete com o Compromisso Criado
Um lembrete pode ser adicionado quando um compromisso é criado. Esses alarmes podem ser acionados com base em diferentes critérios, como n minutos antes do horário programado, repetir n vezes em n intervalos. Diferentes tags podem ser usadas para criar esses gatilhos no script delimitado por BEGIN:VALARM e END:VALARM dentro de um compromisso. Existem várias variantes nas quais o lembrete pode ser definido em um compromisso.
Definindo um Lembrete Adicionando Tags
O seguinte trecho de código mostra como definir um lembrete adicionando tags.