Sending SMIME messages with sendMail endpoint is broken.
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 35/100
Rechercherichtung
Beginnen Sie mit dem sendMail-MIME-Beispiel in der verlinkten Microsoft Graph-Dokumentation und reproduzieren Sie die im Issue gezeigte RequestInformation-Anfrage einschließlich ihres Content-Type und des codierten Bodys. Vergleichen Sie die Anfrage mit der empfangenen multipart/mixed-Nachricht, um festzustellen, ob das Verhalten zum Java SDK oder zum Graph-Endpunkt gehört. Erledigt ist dies mit einem bestätigten SDK-Fix oder einer dokumentierten Graph-Einschränkung und einer unterstützten Alternative.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Describe the bug
Hello,
We are using Microsoft Graph Java SDK to send encrypted SMIME Messages.
We are already encrypting the content and provide a full MIME document to endpoint:
https://graph.microsoft.com/v1.0/me/sendMail
For example our MIME Message looks like this (saved on content variable):
Date: Tue, 10 Feb 2026 11:24:45 +0000 (UTC)
From: HenriettaM@xyz.onmicrosoft.com
To: xxx-test@gmx.de
Message-ID: <....>
Subject: Test2
MIME-Version: 1.0
Content-Type: application/pkcs7-mime; name="smime.p7m"; smime-type=authEnveloped-data
Content-Transfer-Encoding: base64
MIAGCyqGSIb3DQEJEAEXoIAwgAIBADGCAdswggHXAgEAMIGPMHcxCzAJBgNVBAYTAkRFMQwwCgYD
...
We are using the following code snipplet to send the Email:
initializeGraphClient();
String encoded = Base64.getEncoder().encodeToString(content.getBytes());
RequestInformation requestInfo = new RequestInformation();
requestInfo.httpMethod = HttpMethod.POST;
requestInfo.urlTemplate = "{+baseurl}/users/{+email}/sendMail";
requestInfo.pathParameters = new HashMap<>();
requestInfo.pathParameters.put("baseurl", "https://graph.microsoft.com/v1.0");
requestInfo.pathParameters.put("email", config.getMailbox());
requestInfo.headers.put("Content-Type", Set.of("text/plain"));
requestInfo.setContentFromScalar(client.getRequestAdapter(), "text/plain", encoded);
HashMap<String, ParsableFactory< ? extends Parsable>> errorMapping = new HashMap<>();
errorMapping.put("4XX", ODataError::createFromDiscriminatorValue);
errorMapping.put("5XX", ODataError::createFromDiscriminatorValue);
client.getRequestAdapter().sendPrimitive(requestInfo, errorMapping, Void.class);
However our SMIME content is converted into an attachment and send as an attachment packed into a multipart/mixed structure by sending the Email.
Here is what we get on the reciever side:
Content-Type: multipart/mixed;
boundary="_002_155174533371770722695547_"
MIME-Version: 1.0
--_002_155174533371770722695547_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
--_002_155174533371770722695547_
Content-Type: application/pkcs7-mime; name="smime.p7m"
Content-Description: smime.p7m
Content-Disposition: attachment; filename="smime.p7m"; size=4483;
creation-date="Tue, 10 Feb 2026 11:33:38 GMT";
modification-date="Tue, 10 Feb 2026 11:33:38 GMT"
Content-ID: <C06558A1F17AA04CAE95309F8C325E89@namprd19.prod.outlook.com>
Content-Transfer-Encoding: base64
MIAGCyqGSIb3DQEJEAEXoIAwgAIBADGCAdswggHXAgEAMIGPMHcxCzAJBgNVBAYTAkRFMQwwCgYD
Can you fix sending a SMIME by using this sendMail endpoint or is there any alternative ways for sending SMIME with Graph API?
We basically followed the Example 4 in this documentation page:
Expected behavior
Sending SMIME messages should work with the sendMail endpoint when Content-Type is provided as text/plain.
How to reproduce
See the code snipplet above for example code.
We can also provide a full SMIME example content if you want.
SDK Version
No response
Latest version known to work for scenario above?
No response
Known Workarounds
No response
Debug output
No response
Configuration
No response
Other information
No response
- Vorherrschende Sprache
- Java
- Sterne
- 444
- Forks
- 154
- Ø Merge
- 18 Std. 28 Min.
- Gemergte PRs (30 T.)
- 4
Beitragsleitfaden
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus microsoftgraph/msgraph-sdk-java
-
status:waiting-for-triage type:bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
microsoftgraph/msgraph-sdk-java#2610 ·
-
status:waiting-for-triage type:bug
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 55/100
microsoftgraph/msgraph-sdk-java#2656 ·
-
status:waiting-for-triage type:bug
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 38/100
microsoftgraph/msgraph-sdk-java#2654 ·
-
status:waiting-for-triage
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
microsoftgraph/msgraph-sdk-java#2639 ·
-
status:waiting-for-triage type:bug
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 35/100
microsoftgraph/msgraph-sdk-java#2589 · 1 Kommentar ·
Alle Issues in microsoftgraph/msgraph-sdk-java
Ähnliche Issues
-
certification
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 80/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
-
[BUG] ECR GetAuthorizationToken returns a proxyEndpoint for the default region, not the request's Offenbug ecr
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
-
Needs: Triage Type: Feature request
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
AntennaPod/AntennaPod#8794 ·
-
agentic-workflows
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
github/copilot-sdk#2760 ·