Permissions = tabledata "Email Inbox" = R,
tabledata "Email Account" = R;
procedure RetrieveEmails(var EmailAccount: Record "Email Account")
var
EmailInbox: Record "Email Inbox";
Email: Codeunit Email;
EmailMessageReceived: Codeunit "Email Message";
Subject: Text;
begin
Email.RetrieveEmails(EmailAccount."Account Id", EmailAccount.Connector, EmailInbox);
if EmailInbox.FindSet() then
repeat
// Email received
EmailMessageReceived.Get(EmailInbox."Message Id");
Message(
'Email -%1- received from: %2',
EmailMessageReceived.GetSubject(),
EmailInbox."Sender Name" + ' <' + EmailInbox."Sender Address" + '>'
);
// Atachments
if EmailMessageReceived.Attachments_First() then
repeat
Message(
'The attachment -%1- was recived',
EmailMessageReceived.Attachments_GetName()
);
until EmailMessageReceived.Attachments_Next() = 0;
// Reply
Subject := EmailMessageReceived.GetSubject();
if UpperCase(CopyStr(Subject, 1, 2)) <> 'RE' then
Subject := 'Re: ' + Subject;
EmailMessageReceived.CreateReply(
EmailInbox."Sender Address",
Subject,
'Your email was received.',
false,
EmailMessageReceived.GetExternalId()
);
Email.Send(EmailMessageReceived, EmailAccount);
until EmailInbox.Next() = 0;
end;
(Editado el 18 de noviembre de 2024)
A partir de esta versión, es posible recibir correos electrónicos con una cuenta de Microsoft 365 configurada para envío, lo cual es un avance importante en la integración de soluciones de comunicaciones. Sin embargo, durante las pruebas he encontrado algunas limitaciones importantes que es necesario tener en cuenta:
Aunque llega el ConversationId, no se puede enviar en la respuesta, con lo que se pierde el seguimiento de la conversación.
No se recibe el campo Importance o Priority.
El cuerpo del mensaje solo está disponible en formato de texto.
Solo se incluye el remitente Sender, pero no el resto de destinatarios (To, CC, etc.).
Tampoco se recibe la propiedad ReplyTo.
Los archivos adjuntos, tanto InLine como no InLine, se reciben solo si existe al menos un adjunto no InLine. Si únicamente hay adjuntos InLine, éstos no se reciben.
Los archivos adjuntos InLine no se etiquetan como tales ni incluyen el Id de CID necesario para su correcta sustitución en el cuerpo del mensaje.
El nuevo método ReplyAll pierde sentido en este contexto, ya que es necesario especificar los destinatarios.
Una vez leídos los emails, no hay forma de volverlos a leer mediante la funcionalidad incorporada en Business Central.
🪧 Business Central carece, a día de hoy, de funcionalidad estándar que permita a los usuarios acceder a los correos electrónicos recibidos.
🛠 Aunque estas limitaciones suponen un reto, nos permiten explorar y desarrollar soluciones para hacer frente a la implementación completa de la funcionalidad de recepción y respuesta de correos en nuestras aplicaciones. ¡Seguimos avanzando!