Код: Выделить всё
SendMailPostRequestBody postRequest = new SendMailPostRequestBody();
postRequest.setMessage(message);
postRequest.setSaveToSentItems( this.saveToSentItems );
graphClient
.users().byUserId( this.username )
.sendMail()
.post( postRequest );
< /code>
Но я хотел надежный идентификатор сообщения. В официальной документации говорится < /p>
Вы можете использовать неизменные идентификаторы, чтобы найти сообщение в папке отправленных элементов после того, как она была отправлена, используя следующие шаги: < /p>
Создать черновое сообщение, используя предпочтение: idtype = «Immutabled» < /code> head> save hespert the step at houte antempte in the steck of the steck of the steck. /> Отправьте сообщение с помощью идентификатора с предыдущего шага. Это копия в отправленных пунктах.Message posted = graphClient.users().byUserId( this.username )
.messages()
.post( message );
String postedId = posted.getId();
if( postedId != null ) {
graphClient.users().byUserId( this.username )
.messages()
.byMessageId( postedId )
.send()
.post();
Message gotten = graphClient.users().byUserId( this.username )
.messages()
.byMessageId( postedId )
.get();
return gotten.getId();
}
Код: Выделить всё
com.microsoft.graph.models.odataerrors.ODataError: The specified object was not found in the store., The process failed to get the correct properties.
at com.microsoft.graph.models.odataerrors.ODataError.createFromDiscriminatorValue(ODataError.java:36)
at com.microsoft.kiota.serialization.JsonParseNode.getObjectValue(JsonParseNode.java:212)
at com.microsoft.kiota.http.OkHttpRequestAdapter.lambda$throwIfFailedResponse$0(OkHttpRequestAdapter.java:704)
at com.microsoft.kiota.ApiExceptionBuilder.(ApiExceptionBuilder.java:26)
at com.microsoft.kiota.http.OkHttpRequestAdapter.throwIfFailedResponse(OkHttpRequestAdapter.java:703)
at com.microsoft.kiota.http.OkHttpRequestAdapter.send(OkHttpRequestAdapter.java:307)
at com.microsoft.graph.users.item.messages.item.MessageItemRequestBuilder.get(MessageItemRequestBuilder.java:194)
at com.microsoft.graph.users.item.messages.item.MessageItemRequestBuilder.get(MessageItemRequestBuilder.java:181)
< /code>
Снова после официальных документов о том, как установить заголовки, я делаю это: < /p>
ItemBody html = new ItemBody();
html.setContentType( BodyType.Html );
html.setContent( msg.htmlEmail() );
Message message = new Message();
message.setSubject( msg.subjectLine() );
message.setBody( html );
LinkedList internetMessageHeaders = new LinkedList();
InternetMessageHeader internetMessageHeader = new InternetMessageHeader();
internetMessageHeader.setName("Prefer"); // Also tried with "X"
internetMessageHeader.setValue("IdType=\"ImmutableId\"");
internetMessageHeaders.add(internetMessageHeader);
message.setInternetMessageHeaders(internetMessageHeaders);
return message;
< /code>
Однако это дает ниже исключение. < /p>
com.microsoft.graph.models.odataerrors.ODataError: The internet message header name 'Prefer' should start with 'x-' or 'X-'.
at com.microsoft.graph.models.odataerrors.ODataError.createFromDiscriminatorValue(ODataError.java:36)
at com.microsoft.kiota.serialization.JsonParseNode.getObjectValue(JsonParseNode.java:212)
at com.microsoft.kiota.http.OkHttpRequestAdapter.lambda$throwIfFailedResponse$0(OkHttpRequestAdapter.java:704)
at com.microsoft.kiota.ApiExceptionBuilder.(ApiExceptionBuilder.java:26)
at com.microsoft.kiota.http.OkHttpRequestAdapter.throwIfFailedResponse(OkHttpRequestAdapter.java:703)
at com.microsoft.kiota.http.OkHttpRequestAdapter.send(OkHttpRequestAdapter.java:307)
at com.microsoft.graph.users.item.messages.MessagesRequestBuilder.post(MessagesRequestBuilder.java:116)
at com.microsoft.graph.users.item.messages.MessagesRequestBuilder.post(MessagesRequestBuilder.java:101)
Так что я делаю не так?
Подробнее здесь: https://stackoverflow.com/questions/797 ... i-sendmail