Criar e-mails do Outlook em C++

A automação de e-mail é bastante popular hoje em dia para gerar e enviar e-mails automaticamente a partir da web ou de aplicativos de desktop. Ele está sendo usado para enviar notificações importantes, documentos, boletins informativos e vários outros tipos de mensagens. Para desenvolver um sistema de e-mail automatizado, a Aspose facilita os desenvolvedores com sua API de e-mail - Aspose.Email. Hoje, vou pegar a variante C++ do Aspose.Email e mostrar como criar emails do Outlook usando C++.

Biblioteca de e-mail C++ para criar e-mails do Outlook

Aspose.Email for C++ é uma biblioteca nativa de C++ que permite criar e enviar e-mails do MS Outlook e outros formatos de e-mail populares. Também permite manipular objetos do Outlook, como calendários, tarefas, contatos, etc. e converter os arquivos de e-mail existentes para outros formatos. Você pode baixar o pacote de biblioteca completo aqui ou instalá-lo em seu aplicativo C++ usando NuGet.

Criar um e-mail do Outlook usando C++

Em primeiro lugar, vamos verificar como criar uma mensagem de e-mail simples e salvá-la em um formato de e-mail como MSG, EML e EMLX. A seguir estão as etapas para criar uma mensagem de email usando Aspose.Email para C++.

  • Crie uma instância da classe MailMessage.
  • Defina as propriedades da mensagem, como Para, De e Corpo.
  • Salve a mensagem de e-mail usando o método MailMessage->Save().

O exemplo de código a seguir mostra como criar uma mensagem do Outlook em um formato de email específico usando C++.

// Crie uma nova instância da classe MailMessage
System::SharedPtr<MailMessage> message = System::MakeObject<MailMessage>();

// Definir assunto da mensagem, corpo HTML e informações do remetente
message->set_Subject(u"New message created by Aspose.Email for .NET"); 
message->set_From(System::MakeObject<MailAddress>(L"from@domain.com", L"Sender Name", false));
message->set_Body(System::String(u"This is a plain text."));
// Adicionar destinatários para e adicionar destinatários CC
message->get_To()->Add(System::MakeObject<MailAddress>(L"to1@domain.com", L"Recipient 1", false));
message->get_To()->Add(System::MakeObject<MailAddress>(L"to2@domain.com", L"Recipient 2", false));
message->get_CC()->Add(System::MakeObject<MailAddress>(L"cc1@domain.com", L"Recipient 3", false));
message->get_CC()->Add(System::MakeObject<MailAddress>(L"cc2@domain.com", L"Recipient 4", false));

// Salvar mensagem nos formatos EML, EMLX, MSG
message->Save(u"CreateNewMailMessage_out.eml", SaveOptions::get_DefaultEml());
message->Save(u"CreateNewMailMessage_out.emlx", SaveOptions::CreateSaveOptions(MailMessageSaveType::get_EmlxFormat()));
message->Save(u"CreateNewMailMessage_out.msg", SaveOptions::get_DefaultMsgUnicode()); 

Criar um email do Outlook com corpo HTML usando C++

No exemplo anterior, criamos um email com texto simples. No entanto, a maioria dos e-mails hoje em dia contém um corpo HTML para uma boa apresentação do conteúdo do e-mail. Nesse caso, você pode configurar o Aspose.Email e definir o corpo do email baseado em HTML. Para isso, basta usar MailMessage->setHtmlBody(System::String) e passar para ele o conteúdo HTML. O exemplo de código a seguir mostra como criar um email com um corpo HTML usando C++.

// Crie uma nova instância da classe MailMessage
System::SharedPtr<MailMessage> message = System::MakeObject<MailMessage>();

// Definir assunto da mensagem, corpo HTML e informações do remetente
message->set_Subject(u"New message created by Aspose.Email for .NET");
message->set_From(System::MakeObject<MailAddress>(L"from@domain.com", L"Sender Name", false));
message->set_HtmlBody(System::String(u"<b>This line is in bold.</b> <br/> <br/>") + u"<font color=blue>This line is in blue color</font>");
// Adicionar destinatários para e adicionar destinatários CC
message->get_To()->Add(System::MakeObject<MailAddress>(L"to1@domain.com", L"Recipient 1", false)); 
message->get_CC()->Add(System::MakeObject<MailAddress>(L"cc1@domain.com", L"Recipient 3", false)); 

// Salvar mensagem nos formatos EML, EMLX, MSG 
message->Save(u"CreateNewMailMessage_out.emlx", SaveOptions::CreateSaveOptions(MailMessageSaveType::get_EmlxFormat()));
message->Save(u"CreateNewMailMessage_out.msg", SaveOptions::get_DefaultMsgUnicode()); 

Definir codificação para email do Outlook usando C++

O Aspose.Email para C++ também permite definir o padrão de codificação para orientar o navegador sobre como lidar com caracteres no email. Para definir o padrão de codificação específico, você pode usar o método MailMessage->setBodyEncoding(System::Text::Encoding). O exemplo de código a seguir mostra como criar um email com codificação específica usando C++.

// Crie uma nova instância da classe MailMessage
System::SharedPtr<MailMessage> message = System::MakeObject<MailMessage>();

// Definir assunto da mensagem, corpo HTML e informações do remetente
message->set_Subject(u"New message created by Aspose.Email for .NET");
message->set_From(System::MakeObject<MailAddress>(L"from@domain.com", L"Sender Name", false));
message->set_Body(System::String(u"This is a plain text."));
message->set_BodyEncoding(System::Text::Encoding::get_ASCII());
// Adicionar destinatários para e adicionar destinatários CC
message->get_To()->Add(System::MakeObject<MailAddress>(L"to1@domain.com", L"Recipient 1", false)); 
message->get_CC()->Add(System::MakeObject<MailAddress>(L"cc1@domain.com", L"Recipient 3", false)); 

// Salvar mensagem nos formatos EML, EMLX, MSG
message->Save(u"CreateNewMailMessage_out.eml", SaveOptions::get_DefaultEml()); 
message->Save(u"CreateNewMailMessage_out.msg", SaveOptions::get_DefaultMsgUnicode());

Salvar mensagem do Outlook como rascunho usando C++

Você também pode salvar a mensagem de email do Outlook recém-criada como rascunho. A seguir estão os passos para realizar esta operação:

O exemplo de código a seguir mostra como criar um email como rascunho usando C++.

// Crie uma nova instância da classe MailMessage
System::SharedPtr<MailMessage> message = System::MakeObject<MailMessage>();

// Definir assunto da mensagem, corpo HTML e informações do remetente
message->set_Subject(u"New message created by Aspose.Email for .NET");
message->set_From(System::MakeObject<MailAddress>(L"from@domain.com", L"Sender Name", false));
message->set_Body(System::String(u"This is a plain text.")); 
// Adicionar destinatários para e adicionar destinatários CC
message->get_To()->Add(System::MakeObject<MailAddress>(L"to1@domain.com", L"Recipient 1", false)); 
message->get_CC()->Add(System::MakeObject<MailAddress>(L"cc1@domain.com", L"Recipient 3", false));

// Crie uma instância do tipo MapiMessage de MailMessage, defina o sinalizador de mensagem como não enviado (status de rascunho) e salve-o
System::SharedPtr<MapiMessage> mapiMsg = MapiMessage::FromMailMessage(message);
mapiMsg->SetMessageFlags(Aspose::Email::Mapi::MapiMessageFlags::MSGFLAG_UNSENT);

// Salvar mensagem nos formatos EML, EMLX, MSG MHTML 
message->Save(u"CreateNewMailMessage_out.emlx", SaveOptions::CreateSaveOptions(MailMessageSaveType::get_EmlxFormat()));
message->Save(u"CreateNewMailMessage_out.msg", SaveOptions::get_DefaultMsgUnicode());

Demonstrações ao vivo

Conclusão

Neste artigo, mostrei como criar emails do Outlook em aplicativos C++. Os exemplos de código C++ demonstraram como criar emails MSG, EML ou EMLX com corpo de texto/HTML ou uma codificação específica. Você pode explorar mais sobre como lidar com e-mails do Outlook e outros itens usando o Aspose.Email para C++.

Veja também