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();
}
Это отправляет правильно, но без предпочтения: idtype = "ImmutableId" он надувает в линейном сообщении Gotten = .... .get () с
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)
Если я включаю «x», он восходит к тому, чтобы быть неспособным снова найти электронное письмо.
Так что я делаю не так?
Ранее я успешно отправлял электронные письма с этим кодом. < /p> [code]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(); } [/code] Это отправляет правильно, но без предпочтения: idtype = "ImmutableId" он надувает в линейном сообщении Gotten = .... .get () с [code]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) [/code] Если я включаю «x», он восходит к тому, чтобы быть неспособным снова найти электронное письмо. Так что я делаю не так?