Skip to content

Commit b461529

Browse files
committed
O365: Microsoft changed https://login.microsoftonline.com/common/oauth2/nativeclient to redirect to /common/wrongplace, use https://localhost/common/oauth2/nativeclient instead
git-svn-id: https://svn.code.sf.net/p/davmail/code/trunk@3946 3d1905a2-6b24-0410-a738-b14d5a86fcbd
1 parent 2a61676 commit b461529

6 files changed

Lines changed: 11 additions & 8 deletions

File tree

src/etc/davmail.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ davmail.smtpPort=1025
3939

4040
# Enable to override default DavMail Oauth configuration
4141
#davmail.oauth.clientId=facd6cff-a294-4415-b59f-c5b01937d7bd
42-
#davmail.oauth.redirectUri=https://login.microsoftonline.com/common/oauth2/nativeclient
42+
#davmail.oauth.redirectUri=https://localhost/common/oauth2/nativeclient
4343
#davmail.oauth.tenantId=common
4444

4545
# On windows with SWT Webview2 embedded browser, allow using primary account single sign on

src/java/davmail/exchange/auth/O365Authenticator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ public void authenticate() throws IOException {
150150
// common DavMail client id
151151
String clientId = Settings.getProperty("davmail.oauth.clientId", "facd6cff-a294-4415-b59f-c5b01937d7bd");
152152
// standard native app redirectUri
153-
String redirectUri = Settings.getProperty("davmail.oauth.redirectUri", Settings.getO365LoginUrl() + "/common/oauth2/nativeclient");
153+
String redirectUri = Settings.getProperty("davmail.oauth.redirectUri", "https://localhost/common/oauth2/nativeclient");
154154
// company tenantId or common
155155
tenantId = Settings.getProperty("davmail.oauth.tenantId", "common");
156156

src/java/davmail/exchange/auth/O365InteractiveAuthenticator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ public void authenticate() throws IOException {
102102
// common DavMail client id
103103
final String clientId = Settings.getProperty("davmail.oauth.clientId", "facd6cff-a294-4415-b59f-c5b01937d7bd");
104104
// standard native app redirectUri
105-
final String redirectUri = Settings.getProperty("davmail.oauth.redirectUri", Settings.getO365LoginUrl() + "/common/oauth2/nativeclient");
105+
final String redirectUri = Settings.getProperty("davmail.oauth.redirectUri", "https://localhost/common/oauth2/nativeclient");
106106
// company tenantId or common
107107
String tenantId = Settings.getProperty("davmail.oauth.tenantId", "common");
108108

src/java/davmail/exchange/auth/O365ManualAuthenticator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ public void authenticate() throws IOException {
8888
// common DavMail client id
8989
final String clientId = Settings.getProperty("davmail.oauth.clientId", "facd6cff-a294-4415-b59f-c5b01937d7bd");
9090
// standard native app redirectUri
91-
final String redirectUri = Settings.getProperty("davmail.oauth.redirectUri", Settings.getO365LoginUrl()+"/common/oauth2/nativeclient");
91+
final String redirectUri = Settings.getProperty("davmail.oauth.redirectUri", "https://localhost/common/oauth2/nativeclient");
9292
// company tenantId or common
9393
String tenantId = Settings.getProperty("davmail.oauth.tenantId", "common");
9494

src/java/davmail/exchange/auth/O365StoredTokenAuthenticator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ public void authenticate() throws IOException {
6363
// common DavMail client id
6464
final String clientId = Settings.getProperty("davmail.oauth.clientId", "facd6cff-a294-4415-b59f-c5b01937d7bd");
6565
// standard native app redirectUri
66-
final String redirectUri = Settings.getProperty("davmail.oauth.redirectUri", Settings.getO365LoginUrl()+"/common/oauth2/nativeclient");
66+
final String redirectUri = Settings.getProperty("davmail.oauth.redirectUri", Settings.getO365LoginUrl()+"https://localhost/common/oauth2/nativeclient");
6767
// company tenantId or common
6868
String tenantId = Settings.getProperty("davmail.oauth.tenantId", "common");
6969

src/site/xdoc/faq.xml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@
5858
alternative is to get actual url from davmail log file with O365Modern<br/>
5959
Example url, adjust client_id and redirect_uri to your configuration:
6060
<source>
61-
https://login.microsoftonline.com/common/oauth2/authorize?client_id=facd6cff-a294-4415-b59f-c5b01937d7bd&amp;response_type=code&amp;redirect_uri=https://login.microsoftonline.com/common/oauth2/nativeclient&amp;response_mode=query&amp;resource=https%3A%2F%2Foutlook.office365.com&amp;prompt=consent
61+
https://login.microsoftonline.com/common/oauth2/authorize?client_id=facd6cff-a294-4415-b59f-c5b01937d7bd&amp;response_type=code&amp;redirect_uri=https://localhost/common/oauth2/nativeclient&amp;response_mode=query&amp;resource=https%3A%2F%2Foutlook.office365.com&amp;prompt=consent
6262
</source>
6363
</li>
6464
<li>You can use your own application client id instead of DavMail provided value,
@@ -67,7 +67,7 @@ https://login.microsoftonline.com/common/oauth2/authorize?client_id=facd6cff-a29
6767
or directly on Azure AD if you have the rights, and add in davmail.properties:<br/>
6868
<source>
6969
davmail.oauth.clientId=<i>yourappid</i>
70-
davmail.oauth.redirectUri=https://login.microsoftonline.com/common/oauth2/nativeclient
70+
davmail.oauth.redirectUri=https://localhost/common/oauth2/nativeclient
7171
</source>
7272
</li>
7373
<li>Default tenant id is common, set tenantId to force company tenant:<br/>
@@ -77,7 +77,10 @@ davmail.oauth.redirectUri=https://login.microsoftonline.com/common/oauth2/native
7777
</li>
7878
</ul>
7979
<p>In Azure you have to open Entra ID section then app registration, use <code>https://login.microsoftonline.com/common/oauth2/nativeclient</code>
80-
as redirect uri value. It is no longer possible to add EWS scope under API permissions but a simple workaround is to do it through manifest
80+
as redirect uri value. Update as of january 2026: Microsoft changed nativeclient endpoint to redirect users to <code>https://login.microsoftonline.com/common/wrongplace</code>,
81+
please use <code>https://localhost/common/oauth2/nativeclient</code> instead
82+
</p>
83+
<p>It is no longer possible to add EWS scope under API permissions but a simple workaround is to do it through manifest
8184
editor:</p>
8285
<p>The required scopes are:</p>
8386
<source>

0 commit comments

Comments
 (0)