Estoy reconstruyendo un sistema basado en el sistema de alerta temprana para utilizar la API de Microsoft Graph REST y tengo problemas para reproducir la respuesta de correo electrónico funcionalidad que tuve en la implementación de EWS.
Con EWS me gustaría crear una ReplyToItemType
, especificar el correo electrónico original y adjuntar el NewBodyContent
modo:
$reply = new ReplyToItemType();
$reply->ReferenceItemId = new ItemIdType();
$reply->ReferenceItemId->Id = $this->message->ItemId->Id;
$reply->ReferenceItemId->ChangeKey = $this->message->ItemId->ChangeKey;
$reply->NewBodyContent = new BodyType();
$reply->NewBodyContent->BodyType = BodyTypeType::HTML;
$reply->NewBodyContent->_ = $this->body;
Esto crearía un nuevo mensaje con el contenido del correo electrónico anterior ya unida y establecer el sujeto (es decir "RE: original subject"
)
Con MSGraph, no parecen ser capaces de replicar esta funcionalidad ...
Estoy utilizando el POST /users/{id | userPrincipalName}/messages/{id}/reply
punto final (por lo especifica el mensaje para responder en la URL):
$this->graph = new Graph();
$this->graph->setAccessToken($token);
$graphRequest = $this->graph->createRequest(
'POST', '/users/' . $mailbox . '/messages/' . $exchange_id . '/reply'
);
$graphRequest->attachBody($body)->execute();
El cuerpo de la petición, $body
, se ve así:
array:1 [
"Message" => array:6 [
"sender" => array:1 [
"emailAddress" => array:1 [
"address" => "[email protected]"
]
]
"toRecipients" => array:1 [
0 => array:1 [
"emailAddress" => array:1 [
"address" => "[email protected]"
]
]
]
"ccRecipients" => []
"attachments" => []
"body" => array:2 [
"contentType" => "html"
"content" => "<p>Test</p>"
]
"subject" => "null"
]
]
Pero eso envía un correo electrónico con un tema "nulo" y con el contenido:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body>
<p>test</p>
</body>
</html>
¿Hay alguna forma de replicar la funcionalidad de EWS que el anterior, sin tener que sujetar el contenido del correo electrónico anterior y sujeto de forma manual?
En lugar de construir un objeto de mensaje, que va a querer utilizar la propiedad de comentario en su lugar. Configurarlo para una cadena de texto y se convertirá en la parte superior del mensaje de respuesta, con el texto citado del mensaje original que aparece debajo, como era de esperar.