GithubHelp home page GithubHelp logo

mguessan / davmail Goto Github PK

View Code? Open in Web Editor NEW
542.0 18.0 81.0 86.22 MB

DavMail POP/IMAP/SMTP/Caldav/Carddav/LDAP Exchange and Office 365 Gateway - Synced with main subversion repository at

Home Page: http://davmail.sourceforge.net

License: GNU General Public License v2.0

C++ 3.12% Java 92.06% NSIS 0.63% Shell 3.68% Objective-C++ 0.32% Objective-C 0.01% Makefile 0.04% CSS 0.11% HTML 0.01% Batchfile 0.03%
exchange-server imap pop3 ldap caldav carddav smtp gateway office-365 exchange

davmail's People

Contributors

mguessan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

davmail's Issues

Exception in thread "AWT-EventQueue-1" java.lang.UnsupportedClassVersionError on Ubuntu 18.04 + OpenJdk-8

Getting the following error when running DavMail on Ubuntu 18.04 with OpenJdk-8

Exception in thread "AWT-EventQueue-1" java.lang.UnsupportedClassVersionError: javafx/embed/swing/JFXPanel has been compiled by a more recent version of the Java Runtime (class file version 54.0), this version of the Java Runtime only recognizes class file versions up to 52.0
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:264)
        at davmail.ui.SettingsFrame.isJavaFXAvailable(SettingsFrame.java:267)
        at davmail.ui.SettingsFrame.getSettingsPanel(SettingsFrame.java:164)
        at davmail.ui.SettingsFrame.<init>(SettingsFrame.java:748)
        at davmail.ui.tray.FrameGatewayTray.createAndShowGUI(FrameGatewayTray.java:324)
        at davmail.ui.tray.FrameGatewayTray$8.run(FrameGatewayTray.java:198)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
        at java.awt.EventQueue.access$500(EventQueue.java:97)
        at java.awt.EventQueue$3.run(EventQueue.java:709)
        at java.awt.EventQueue$3.run(EventQueue.java:703)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
        at org.GNOME.Accessibility.AtkWrapper$6.dispatchEvent(AtkWrapper.java:715)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

issue with version 5.0

Hi Mickaël, @mguessan

I am having issues with the newest version of DavMail version 5.0.0-2801.
When I try to authenticate with my usual settings, I get an error message saying
Login to server localhost with username <domain>\<username> failed..

I reverted to version 4.9.0 and this error goes away and I am able to access my email.

Thank you for providing this useful software.

Regards,
Marcel

Thunderbird 60.8.0 login issues with DavMail 5.3.1

Steps to reproduce:

  • step 1: use previous environment that works:
    • Thunderbird 60.8.0 (64-bit) / Windows 10 64 bit version 1903 / Oracle Java 1.8.0_201
    • note: Thunderbird has all required passwords saved
    • DavMail 5.2.0 is using EWS exchange protocol (see attached snapshot)
  • step 2: stop Thunderbird, uninstall DavMail 5.2.0, install DavMail 5.3.1, start Thunderbird
    • symptoms: Thunderbird asks for passwords, saves them, but can't connect to exchange server

image

sharing_metadata.xml

Hi,

my Outlook-using colleagues found a way to send me "shared calendars" that appear to me in the form of sharing_metadata.xml attachments. Can I open these using davmail + Thunderbird + Lightning? If so, how?

I think you're are discussing it on sourceforge, and I run into the same problem that http://localhost:1080/users/[email protected]/calendar/SharedCalendarName is not accessible, but neither is http://localhost:1080/users/[email protected]/calendar/. Any ideas why this apparently still works for the Outlook users?

Thanks!
Cees

No way to configure on MacOS Mojave

Steps

  1. Downloaded DavMail-MacOSX-5.2.0-2961.app.zip (also tried with DavMail-MacOSX-5.2.0-trunk.app.zip).
  2. Unzip, click on DavMail.ap, configure 'Security & Privacy' to launch from unknown developer.
  3. DavMail launches and appears in menu bar, but there's no configuration window. I've looked for the configuration file, to edit it manually, but I'm not sure where that is located.

Authentication fails with v5.3.0

After upgrading to v5.3.0 I get "Authentication failed: invalid user or password". After downgrading to v5.2.0 everything works fine again.

SSL failures with macOS

If I try to connect to my OWA server I get SSL failures:

$ nc localhost 1025
421 DavMail configuration exception:
Connect exception: javax.net.ssl.SSLHandshakeException Remote host terminated the handshake

Adding the debug flag shows this logging:

javax.net.ssl|DEBUG|19|SmtpConnection-57369|2019-07-30 24:16:14.408 BST|SSLCipher.java:463|jdk.tls.keyLimits:  entry = AES/GCM/NoPadding KeyUpdate 2^37. AES/GCM/NOPADDING:KEYUPDATE = 137438953472




javax.net.ssl|ERROR|19|SmtpConnection-57369|2019-07-30 24:17:29.712 BST|TransportContext.java:312|Fatal (HANDSHAKE_FAILURE): Couldn't kickstart handshaking (
"throwable" : {
  javax.net.ssl.SSLHandshakeException: Remote host terminated the handshake
  	at java.base/sun.security.ssl.SSLSocketImpl.handleEOF(SSLSocketImpl.java:1349)
  	at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1188)
  	at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1091)
  	at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:402)
  	at java.base/sun.security.ssl.SSLSocketImpl.ensureNegotiated(SSLSocketImpl.java:721)
  	at java.base/sun.security.ssl.SSLSocketImpl$AppOutputStream.write(SSLSocketImpl.java:998)
  	at java.base/java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:81)
  	at java.base/java.io.BufferedOutputStream.flush(BufferedOutputStream.java:142)
  	at org.apache.commons.httpclient.HttpConnection.flushRequestOutputStream(HttpConnection.java:828)
  	at org.apache.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodBase.java:2116)
  	at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1096)
  	at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:398)
  	at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
  	at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
  	at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
  	at davmail.http.DavGatewayHttpClientFacade.executeTestMethod(DavGatewayHttpClientFacade.java:694)
  	at davmail.exchange.ExchangeSessionFactory.checkConfig(ExchangeSessionFactory.java:278)
  	at davmail.smtp.SmtpConnection.run(SmtpConnection.java:65)
  Caused by: java.io.EOFException: SSL peer shut down incorrectly
  	at java.base/sun.security.ssl.SSLSocketInputRecord.decode(SSLSocketInputRecord.java:167)
  	at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:108)
  	at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1180)
  	... 16 more}

Latest macOS Mojave 10.14.6, with Oracle Java 12.0.2 2019-07-16.

Systray icon changed

In Linux Mint 19.1 Cinnamon, Davmail (5.2.0 or 4.8.3) the icon on the systray is Selection_008 which looks different from the icons supplied with Davmail instead of the expected usual icon org davmail DavMail2 used in the menu and desktop.

I cannot see anything in the source code or folder icons that would give the changed icon. My question then is, where is the new systray icon coming from?

davmail unable to get released version

davmail is populating the error message : unable to get released version. Also it is showing unable to bind server socket imap on port 1143 port not allowed in use by another process.

Where DavMail is using in between the IMPAP server and PAM Application.

Do let me know if there is workaround or solution on this or you require more information.

Disable tray icon flashing

Hello,
Is there a way to disable the flashing of the icon in the tray bar ?
I find it very distracting.

I tried the -notray parameter, but i would prefer to keep the icon in the tray, just without flashing.

I am using ubuntu 16.04

Kerberos / GSSAPI not listed in IMAP4 CAPABILITY

Davmail IMAP should list something like

> * OK [CAPABILITY IMAP4REV1 AUTH=GSSAPI IDLE MOVE] IMAP4rev1 DavMail 4.9.0-2652 server ready

when Kerberos is enabled in settings. Thunderbird otherwise refuses to connect with Kerberos/GSSAPI selected.

Office365, recurrent calendar events issues with thunderbird

First of all, thank you for implementing the 2FA, it was crucial for me.

My platform: Ubuntu + Thunderbird 60 using davmail for Office365 account, emails and calendar.

I am using protocol O365Modern. Emails are ok, but calendar is haveing some issues or syncing problems. I have to say it is difficult to track the different problems, but now I have some concrete: "some recurrent events created by others, appear as if they were created by me".

If I go to office365 web app calendar, everything seems ok.

image

The same event in thunderbird:

image

It appears in the way as it was an event created by me. Even it gives me the possibility of cancelling (it doesnt works). Also, if I change my status to accepted, this will not change. I mean:

Go to status-> select temptative -> send and close. If I re-open the event is still tempative. Actually, in the calendar view appears with a light color, like if it was tempative.

If I use office365 calendar webapp to change the status to tempative, in the view of the web app appears with a regular colour (becaues it has been accepted). But in thunderbird now appears in a regular color (normal blue in my case) as accepted, if I edit the event, now it appears as accepted. But if I try to change it from thunderbird to tempative again, this does not work.

Any idea or similar problems related?

Issues with O365Interactive protocol

Hi

Unhappy davmail user here with Linux system (Kubuntu 18.04)

I just tried it and it doesn't work. I tried 4.9.0-trunk-1.deb and 5.0.0 deb. Both have the same problem.

  1. As soon as pass authentication and 2fa confirmation from my phone nothing more happens. My thunderbird keeps rotating login icon but nothing new in davmail logs except consequent login attempts from TB with some delay.

  2. 2FA window doesn't disappear but it's wiped out. I just see empty window. it's strange

  3. If I close this empty 2FA window it's immediately auto-opens again in the same empty state. But I can close it again and then it's kept closed.

  4. If I cancel login in Thunderbird and try to login again, davmail doesn't load 2FA form anymore, but open this empty window. To fix this I have to restart davmail

  5. If after such an unsuccessful login attempt I'll try to click on davmail tray icon it can crash or sometimes it somehow locks any X11 activity so I have to switch to raw keyboard mode then to terminal and them restart sddm.

  6. davmail crashes immediately if after successfull 2FA confirmation I try to connect with telnet on IMAP port in parallel with Thunderbird.

Thanks for the great work!

ports conflict problem

Running Davmail 5.2.0.2961.1 on Ubuntu 18.04.1, using it with Thunderbird.

I have successfully used Davmail with Thunderbird on this computer many times.

Today I tried starting Davmail and got these error messages:

Unable to bind server socket for SMTP on port 1025: port not allowed or in use by another process
Unable to bind server socket for IMAP on port 1143: port not allowed or in use by another process

When I ran the commands lsof -i :1025 or 1143 in a terminal, I got this output:

protonmai 19849 user 12u IPv4 81836 0t0 TCP localhost:1025 (LISTEN)
protonmai 19849 user 13u IPv4 84061 0t0 TCP localhost:1143 (LISTEN)

So, it appears that both Davmail and Protonmail are trying to use the same ports. Since Protonmail starts up when the computer boots, it grabbed those ports first. (Correct?)

I installed Protonmail not long ago, so I figure that is why I am just now seeing this problem.

What is the best way for me to fix this? I wish to continue using Protonmail and having it continually running; but while that is going on I'd like also to be able to use Davmail with Thunderbird. How do I do that? I am not sure what to change. (Will Davmail continue to work fine if I just replace the ports 1025 and 1143 with some randomly available ports in the davmail.properties file?)

DavMail should check its libraries versions and inform about possible problems

As a follow up of #7

If DavMail can detect that the swt version is somehow buggy, it should warn about it and better avoid initialization of any its classes.

The same jdk/jre.
I'm especially interested in O365Interactive here which wasn't available with some java versions.
It's better to draw it in gray and explain why it's not available right in the application then force people to read all kinds of documents. Or at least put a link into ui to the protocols description with some comment like "there could be more methods".

Checking status of archived folders for ever

Hi there,

I am using Davmail 5.2.0 with office365 and 2FA (with ubuntu). It seems is working ok, but checking the logs I see very much activity (maybe it is ok), something very estrange is a forever checking of status of emails in my archived folders (offline)
`
2019-06-24 09:38:06,104 DEBUG [ImapConnection-44120] davmail - > STATUS "Archives/2018/...../...." (UIDNEXT 1 MESSAGES 0 UNSEEN 0 RECENT 0)
2019-06-24 09:38:06,104 DEBUG [ImapConnection-44120] davmail - > 2993 OK STATUS completed
2019-06-24 09:38:06,149 DEBUG [ImapConnection-44120] davmail - < 2994 STATUS "Archives/2018/....../....." (UIDNEXT MESSAGES UNSEEN RECENT)

`

These messages with all the folder happens forever, never ending. Is this normal?

Also tons of messages about the access token:

2019-06-24 09:38:06,156 DEBUG [ImapConnection-44156] davmail.exchange.auth.O365Token - Access token for myemail@mycompany expires in 38 minutes ... ...

I am generating like 1MB of logs each 5 secs.

Thank you very much for the help

DavMail unable to fetch/push events from/to Exchange calendar

I set up DavMail about one year ago on various Ubuntu systems (home and office) to access my work calendar (Exchange). It has worked flawlessly, until last weekend. Since then all instances are failing to fetch/push updates to the calendar. In the logs there are multiple exceptions like the one below:

2018-11-27 08:02:38,167 ERROR [CaldavConnection-42806] davmail.exchange.ExchangeSession  - Exchange login exception: 500 Internal Server Error at https://login.wur.nl/adfs/ls/wia?wa=wsignin1.0&wtrealm=https://webmail.wur.nl/owa/&wctx=rm=0&id=passive&ru=%2fowa%2f&wct=2018-11-27T07:02:38Z&client-request-id=16a8ab49-2de8-49c4-e51b-0080010000b0
2018-11-27 08:02:38,167 ERROR [CaldavConnection-42806] davmail  - Exchange login exception: 500 Internal Server Error at https://login.wur.nl/adfs/ls/wia?wa=wsignin1.0&wtrealm=https://webmail.wur.nl/owa/&wctx=rm=0&id=passive&ru=%2fowa%2f&wct=2018-11-27T07:02:38Z&client-request-id=16a8ab49-2de8-49c4-e51b-0080010000b0
davmail.exception.DavMailException: Exchange login exception: 500 Internal Server Error at https://login.wur.nl/adfs/ls/wia?wa=wsignin1.0&wtrealm=https://webmail.wur.nl/owa/&wctx=rm=0&id=passive&ru=%2fowa%2f&wct=2018-11-27T07:02:38Z&client-request-id=16a8ab49-2de8-49c4-e51b-0080010000b0
	at davmail.exchange.ExchangeSession.<init>(ExchangeSession.java:271)
	at davmail.exchange.dav.DavExchangeSession.<init>(DavExchangeSession.java:500)
	at davmail.exchange.ExchangeSessionFactory.getInstance(ExchangeSessionFactory.java:147)
	at davmail.exchange.ExchangeSessionFactory.getInstance(ExchangeSessionFactory.java:90)
	at davmail.caldav.CaldavConnection.run(CaldavConnection.java:168)

I am able to access my calendar through the webmail application, and my phone (Android) is also able to fetch/push calendar events. Therefore this is not an issue with the server.

Thanks for reading.

O365Interactive + 2FA + Okta + Java 9 yields okta error "We found some errors. Please review the form and make corrections."

Firstly, this is incredible software you are developing. I am almost pinching myself thinking this is close to working!

After various iterations of various Oracle/JavaFX/OpenJDK combinations, I am currently trying Oracle JDK 9.0.4 on RedHat 7 Linux. I get the JavaFX window to appear while in O365Interactive mode and I get prompted for my University login provided by Okta, but after logging in, the Okta page responses with "We found some errors. Please review the form and make corrections." I am unsure of how to proceed or if Okta support is known to fail.

I have tried the O365Modern mode, but can't find the logged URL I am supposed to use.

I setup the Azure AD App Registration and am setting

davmail.oauth.clientId=...
davmail.oauth.redirectUri=https://login.microsoftonline.com/common/oauth2/nativeclient

thank you!

Getting Kerberos to work against EWS

Hi,

I'm using the latest trunk release (downloaded as of today) which is supposed to fix an EWS/Kerberos issue.

My davmail.properties contains:

davmail.mode=EWS
davmail.url=http://my.ews.server/ews/exchange.asmx
davmail.enableKerberos=true

I can properly create the kerberos ticket (with a properly configured /etc/krb5.conf file):
kinit myUsername => All good.

I can verify the TGT obtained by using klist. Everything is OK so far.

Then I start my davmail server, and when my IMAP mail client (Thunderbird) connects to davmail, I get the following messages:

usr/local/davmail # ./davmail /etc/davmail/davmail.properties 
2019-05-09 13:16:51,881 INFO  [main] davmail  - DavMail Gateway 5.2.0-trunk listening on SMTP port 1025 POP port 1110 IMAP port 1143 CALDAV port 1080 LDAP port 1389 
2019-05-09 13:17:11,639 INFO  [davmail.imap.ImapServer] davmail.connection  - CONNECT - 172.17.0.1:50650 
2019-05-09 13:17:12,144 INFO  [ImapConnection-50650] org.apache.commons.httpclient.auth.AuthChallengeProcessor  - Negotiate authentication scheme selected
2019-05-09 13:17:12,146 INFO  [ImapConnection-50650] org.apache.commons.httpclient.HttpMethodDirector  - **No credentials available for NEGOTIATE <any realm>@my.ews.server:443**
2019-05-09 13:17:32,384 INFO  [ImapConnection-50650] org.apache.commons.httpclient.auth.AuthChallengeProcessor  - Negotiate authentication scheme selected
**Kerberos username [root]: 
Kerberos password for root:**

It doesn't seem to want to use the TGT ticket for my username principals I have in my Kerberos ccache. So it asks for a username and password.

Am I missing something ? Of course, the account I configured in my IMAP email client is the same myUsername as the one I use for obtaining the Kerberos ticket.

Thank you !
Arno

Allow tenant id configuration for oauth2

Looks like to make the O365Modern to work I need to pass the tenant id when doing the authorization and when getting the token.

index d71ee714..dacddd2a 100644
--- a/src/java/davmail/exchange/auth/O365Authenticator.java
+++ b/src/java/davmail/exchange/auth/O365Authenticator.java
@@ -78,8 +78,12 @@ public class O365Authenticator implements ExchangeAuthenticator {
             String clientId = Settings.getProperty("davmail.oauth.clientId", "facd6cff-a294-4415-b59f-c5b01937d7bd");
             // standard native app redirectUri
             String redirectUri = Settings.getProperty("davmail.oauth.redirectUri", "https://login.microsoftonline.com/common/oauth2/nativeclient");
+            // tenant id^M
+            String tenantId = Settings.getProperty("davmail.oauth.tenantId", "common");^M
 
-            String url = "https://login.microsoftonline.com/common/oauth2/authorize"
+            String url = "https://login.microsoftonline.com/"^M
+                    + tenantId^M
+                    +"/oauth2/authorize"^M
                     + "?client_id=" + clientId
                     + "&response_type=code"
                     + "&redirect_uri=" + redirectUri
diff --git a/src/java/davmail/exchange/auth/O365Token.java b/src/java/davmail/exchange/auth/O365Token.java
index 239cf364..23954eed 100644
--- a/src/java/davmail/exchange/auth/O365Token.java
+++ b/src/java/davmail/exchange/auth/O365Token.java
@@ -33,7 +33,8 @@ import java.io.IOException;
 import java.util.Date;
 
 public class O365Token {
-    protected final String TOKEN_URL = "https://login.microsoftonline.com/common/oauth2/token";
+    String tenantId = Settings.getProperty("davmail.oauth.tenantId", "common");^M
+    protected final String TOKEN_URL = "https://login.microsoftonline.com/"+tenantId+"/oauth2/token";^M
     protected final String RESOURCE_URL = "https://outlook.office365.com/";
 
     protected static final Logger LOGGER = Logger.getLogger(O365Token.class);

I'm trying to test this, but for some reason it doesn't matter if I compile with my change or without it I always get the error below:

java.lang.ClassNotFoundException: davmail.exchange.auth.O365InteractiveAuthenticator
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
        at java.base/java.lang.Class.forName0(Native Method)
        at java.base/java.lang.Class.forName(Class.java:315)
        at davmail.exchange.ExchangeSessionFactory.getInstance(ExchangeSessionFactory.java:172)
        at davmail.exchange.ExchangeSessionFactory.getInstance(ExchangeSessionFactory.java:97)
        at davmail.imap.ImapConnection.run(ImapConnection.java:112)

Include client IP address in authentication failure logs

I'd like to set up fail2ban to work with davmail, but it looks like the log doesn't include the client IP address for "Authentication failed" messages.

Even discounting fail2ban's needs, I think this would be good information to include in the log.

IMAP UID SEARCH non-compliant response

As I was encountering a problem with DavMail and an IMAP client, I tried to find out what is wrong. The issue I found was a non-compliant response like this (via wireshark):

Jce5lw UID SEARCH CHARSET "UTF-8" 1:*
Jce5lw BAD unable to handle request: Unsupported charset "UTF-8"

Now this is exactly the issue described a while ago in https://sourceforge.net/p/davmail/bugs/631/, but the patch back then does not seem to have helped?

version: 5.1.0.2891

Stopped working on Ubuntu 18.04 LTS

It's what I see with recent deb trunk package

2019-04-19 13:02:24,986 ERROR [ImapConnection-53304] davmail.exchange.auth.O365InteractiveAuthenticator  - Authentication failed Unable to load JavaFX (OpenJFX)
2019-04-19 13:02:24,986 INFO  [ImapConnection-53304] davmail.connection  - FAILED - 127.0.0.1:53304 [email protected]
2019-04-19 13:02:24,986 ERROR [ImapConnection-53304] davmail  - Authentication failed Unable to load JavaFX (OpenJFX)
davmail.exception.DavMailException: Authentication failed Unable to load JavaFX (OpenJFX)
        at davmail.exchange.auth.O365InteractiveAuthenticator.authenticate(O365InteractiveAuthenticator.java:171)
        at davmail.exchange.ExchangeSessionFactory.getInstance(ExchangeSessionFactory.java:175)
        at davmail.exchange.ExchangeSessionFactory.getInstance(ExchangeSessionFactory.java:97)
        at davmail.imap.ImapConnection.run(ImapConnection.java:112)

Just in case I have next installed jfx packages

libopenjfx-java 11.0.2+1-1~18.04.2
libopenjfx-jni 11.0.2+1-1~18.04.2
openjfx 11.0.2+1-1~18.04.2
openjfx-source 11.0.2+1-1~18.04.2

ssl3_get_record:wrong version number by operating openssl command

My environment
Windows 10
Davmail 5.2.0-2961

I can use pop through Davmail
But can't use IMAP.

I checked IMAP communication with Davmail by openssl
I got the following error message.
What is wrong with Davmail?

5856:error:1408F10B:SSL routines:ssl3_get_record:wrong version number:../openssl-1.1.1c/ssl/record/ssl3_record.c:331:

~> uname -a
MINGW64_NT-10.0-17763 XXXXXXXXXXX 3.0.7-338.x86_64 2019-05-27 06:58 UTC x86_64 Msys

~> openssl version
OpenSSL 1.1.1c  28 May 2019

~> openssl s_client -connect localhost:1143 -crlf
CONNECTED(00000168)
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 5 bytes and written 293 bytes
Verification: OK
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 0 (ok)
---
5856:error:1408F10B:SSL routines:ssl3_get_record:wrong version number:../openssl-1.1.1c/ssl/record/ssl3_record.c:331:

Invalid Or Unicode Characters

I noticed that the slash unicode character shows up like this (tested in thunderbird and Opera Mail):

"VM_xF8FF_AA Recordings" should be "VM/AA Recordings"

image

Since outlook 2016 is unicode internally by default, I guess that there's not really an easy fix.

Telephone Numbers

Hello

i use davmail to connect my pbx with the Outlook contact. So if someone calls i see the name in the Display. But sometime i don't see the name but i have the number online.

In the debug log i found why it don't work. My pbx sends a number like this +49123412345678.
But on the exhange Server the number is stored like +49 (1234) 12345678 or 0043 12341234567 . So i get no result.
Is it possible that davmail compares the number in international Format and remove all not number Chars?

Adding a user whitelist

I've been running Davmail for a while against a shared tenancy (eg Office 365) and have needed to restrict my Davmail server instance down from allowing all users, as it does by default, because if I didn't, anyone from any organisation on O365 would be able to use my server and push data through it. Whether they would or not is a different story (eg I could MiTM their accounts, which is probably deterrent enough but still...).

However, in short, to avoid effectively what could be considered an open proxy is something I've done with this patch (from Davmail 4.7.x):

https://github.com/davidjb/djb.davmail/blob/master/patches/davmail-userwhitelist.patch

diff --git a/src/java/davmail/exchange/ExchangeSession.java b/src/java/davmail/exchange/ExchangeSession.java
index 88f3e3a..e2ad6f2 100644
--- a/src/java/davmail/exchange/ExchangeSession.java
+++ b/src/java/davmail/exchange/ExchangeSession.java
@@ -200,6 +200,16 @@ public abstract class ExchangeSession {
                 }
             }
 
+            //XXX Patched in by davidjb
+            String emailProperty = Settings.getProperty("davmail.allowedUsers");
+            String[] emailsArray = emailProperty.split(",");
+            List<String> emails = Arrays.asList(emailsArray);
+            if (emails.contains(userName) == false) {
+                LOGGER.error("Denied access to user: " + userName);
+                throw new DavMailAuthenticationException("EXCEPTION_AUTHENTICATION_FAILED"); 
+            }
+
+
             DavGatewayHttpClientFacade.setCredentials(httpClient, userName, password);
 
             // get webmail root url

Quite hacky but enough to simply reject anyone who wasn't listed in the the special property davmail.allowedUsers.

So, is this a feature that could or would be considered for implementation? I see that my patch no longer applies cleanly to the latest Davmail master (eg v5.x) so some adjustment or work would be required, so I wanted to ask the question first of a) if it's something that could be implemented and if so, b) where one would put said code these days.

Thanks!

Create custom JRE with Java 9 modules to create standalone DavMail binary

With Java 9 we can create a custom JRE to build standalone DavMail.

First try:
rmdir /s /q jre && \Java\jdk-9.0.4\bin\jlink --module-path C:\Java\jdk-9.0.4\jmods;C:\Java\javafx-sdk-11.0.1\jmods --add-modules java.base,java.desktop,java.security.jgss,java.security.sasl,java.xml,jdk.jsobject,javafx.base,javafx.controls,javafx.fxml,javafx.graphics,javafx.media,javafx.swing,javafx.web --output jre

"Cc:" not being properly responded

Thanks for great work with davmail !

While trying to sort out the situation within company which decided to pursue path of Office365 I hit a roadblock which I can not figure out. When sending SEARCH command I am not getting proper response. Here is an example:

telnet 0 5143
Trying 0.0.0.0...
Connected to 0.
Escape character is '^]'.
* OK [CAPABILITY IMAP4REV1 AUTH=LOGIN MOVE SPECIAL-USE] IMAP4rev1 DavMail 5.2.0-2961 server ready
o login [email protected] password
o OK Authenticated
o select inbox
*  1779 EXISTS
* 2 RECENT
* OK [UIDVALIDITY 1]
* OK [UIDNEXT 19833]
* FLAGS (\Answered \Deleted \Draft \Flagged \Seen $Forwarded Junk)
* OK [PERMANENTFLAGS (\Answered \Deleted \Draft \Flagged \Seen $Forwarded Junk \*)]
o OK [READ-WRITE] select completed
o search 1:1779 CC "linux-users"
* SEARCH 800
* SEARCH 1080
* SEARCH 1276
o OK SEARCH completed
o search 1:1779 CC "[email protected]"
* SEARCH
o OK SEARCH completed

When I talk to Exchange web interface I am getting 3 results back. As you can see, issue is reproducible once '@' is in place. Also please note that this is not O365 interface, this is a in-house MS Exchange server.

Please let me know what additional details you will need.

Result of of a mailbox search is different between search and uid_search

Actually I'm using the Ruby NET::Imap client (part of Zammad) to connect to an Exchange Server.
As i understand the RFC3501 6.4.4 the result should be a list. The response from depends on the used search command:

with uid: 
davmail  - > * SEARCH 266 304


[change_format_of_search_result.txt](https://github.com/mguessan/davmail/files/3168817/change_format_of_search_result.txt)
without:
davmail  - > * SEARCH 266
davmail  - > * SEARCH 304

The ruby client library uses only the last entry and doesn't recreate the array. The attached file contains a small patch that changes the response to the "list" format for SEARCH

IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- src/java/davmail/imap/ImapConnection.java	(revision 3032)
+++ src/java/davmail/imap/ImapConnection.java	(date 1557387403344)
@@ -376,12 +376,16 @@
                                             sendClient("* SEARCH");
                                         } else {
                                             int currentIndex = 0;
+                                            StringBuilder buffer = new StringBuilder("* SEARCH");
                                             for (ExchangeSession.Message message : currentFolder.messages) {
                                                 currentIndex++;
                                                 if (uidList.contains(message.getImapUid())) {
-                                                    sendClient("* SEARCH " + currentIndex);
+                                                    //sendClient("* SEARCH " + currentIndex);
+                                                    buffer.append(' ');
+                                                    buffer.append(currentIndex);
                                                 }
                                             }
+                                            sendClient(buffer.toString());
                                         }
                                         sendClient(commandId + " OK SEARCH completed");
                                     }

O365modern in server mode (docker) not working

I am trying to login to a MFA enabled O365 calendar account by using DavMail in server (docker, https://hub.docker.com/r/jberrenberg/davmail/) mode. As long as MFA was not enabled on the account, everything worked fine. Now that MFA is enabled, I have changed the davmail mode to O365modern. When accessing DavMail on port 80, I get asked for the password and after entering username & password I received the push notification authentication request on my mobile phone. After approving it, I see in the log of DavMail just a FAILED for that username and the browser ask me again for the username & password. The same happens if I use the CalDav URL in Thunderbird or on my mobile phone.

I even tried registering my own application with microsoft and entered it in the davmail.oauth.clientId config -> i still get the authentication push notification and the FAILED after approving the request.

Any idea what is going wrong and how to make it work?

Thanks.

Opera M2 Mail Client cannot send

Date: Thu Jun 13 09:00:50 EDT 2019 (1560430850019)
Thread: davmail.smtp.SmtpServer
Message #: 1
Level: DEBUG
NDC:
Category: davmail
Message: Connection from /127.0.0.1 on port 1025
Location: davmail.ui.tray.DavGatewayTray.displayMessage(DavGatewayTray.java:97)
Thrown:

Date: Thu Jun 13 09:00:50 EDT 2019 (1560430850019)
Thread: davmail.smtp.SmtpServer
Message #: 2
Level: INFO
NDC:
Category: davmail.connection
Message: CONNECT - 127.0.0.1:1423
Location: davmail.AbstractConnection.logConnection(AbstractConnection.java:158)
Thrown:

Date: Thu Jun 13 09:00:50 EDT 2019 (1560430850115)
Thread: SmtpConnection-1423
Message #: 3
Level: DEBUG
NDC:
Category: davmail.exchange.ExchangeSession
Message: Test configuration status: 302
Location: davmail.exchange.ExchangeSessionFactory.checkConfig(ExchangeSessionFactory.java:279)
Thrown:

Date: Thu Jun 13 09:00:50 EDT 2019 (1560430850116)
Thread: SmtpConnection-1423
Message #: 4
Level: DEBUG
NDC:
Category: davmail
Message: > 220 DavMail 5.2.0-2961 SMTP ready at Thu Jun 13 09:00:50 EDT 2019
Location: davmail.ui.tray.DavGatewayTray.displayMessage(DavGatewayTray.java:97)
Thrown:

Date: Thu Jun 13 09:00:50 EDT 2019 (1560430850117)
Thread: SmtpConnection-1423
Message #: 5
Level: DEBUG
NDC:
Category: davmail
Message: < EHLO windows-pc.company.com
Location: davmail.ui.tray.DavGatewayTray.displayMessage(DavGatewayTray.java:97)
Thrown:

Date: Thu Jun 13 09:00:50 EDT 2019 (1560430850117)
Thread: SmtpConnection-1423
Message #: 6
Level: DEBUG
NDC:
Category: davmail
Message: > 250-windows-pc.company.com
Location: davmail.ui.tray.DavGatewayTray.displayMessage(DavGatewayTray.java:97)
Thrown:

Date: Thu Jun 13 09:00:50 EDT 2019 (1560430850117)
Thread: SmtpConnection-1423
Message #: 7
Level: DEBUG
NDC:
Category: davmail
Message: > 250-AUTH LOGIN PLAIN
Location: davmail.ui.tray.DavGatewayTray.displayMessage(DavGatewayTray.java:97)
Thrown:

Date: Thu Jun 13 09:00:50 EDT 2019 (1560430850117)
Thread: SmtpConnection-1423
Message #: 8
Level: DEBUG
NDC:
Category: davmail
Message: > 250-8BITMIME
Location: davmail.ui.tray.DavGatewayTray.displayMessage(DavGatewayTray.java:97)
Thrown:

Date: Thu Jun 13 09:00:50 EDT 2019 (1560430850117)
Thread: SmtpConnection-1423
Message #: 9
Level: DEBUG
NDC:
Category: davmail
Message: > 250 Hello
Location: davmail.ui.tray.DavGatewayTray.displayMessage(DavGatewayTray.java:97)
Thrown:

Date: Thu Jun 13 09:00:50 EDT 2019 (1560430850117)
Thread: SmtpConnection-1423
Message #: 10
Level: DEBUG
NDC:
Category: davmail
Message: < AUTH PLAIN ********
Location: davmail.ui.tray.DavGatewayTray.displayMessage(DavGatewayTray.java:97)
Thrown:

Date: Thu Jun 13 09:00:50 EDT 2019 (1560430850117)
Thread: SmtpConnection-1423
Message #: 11
Level: DEBUG
NDC:
Category: davmail
Message: > 451 Error : unknown authentication type
Location: davmail.ui.tray.DavGatewayTray.displayMessage(DavGatewayTray.java:97)
Thrown:

Date: Thu Jun 13 09:00:50 EDT 2019 (1560430850119)
Thread: SmtpConnection-1423
Message #: 12
Level: DEBUG
NDC:
Category: davmail
Message: < RSET
Location: davmail.ui.tray.DavGatewayTray.displayMessage(DavGatewayTray.java:97)
Thrown:

Date: Thu Jun 13 09:00:50 EDT 2019 (1560430850120)
Thread: SmtpConnection-1423
Message #: 13
Level: DEBUG
NDC:
Category: davmail
Message: > 250 OK Reset
Location: davmail.ui.tray.DavGatewayTray.displayMessage(DavGatewayTray.java:97)
Thrown:

Date: Thu Jun 13 09:00:50 EDT 2019 (1560430850120)
Thread: SmtpConnection-1423
Message #: 14
Level: DEBUG
NDC:
Category: davmail
Message: < QUIT
Location: davmail.ui.tray.DavGatewayTray.displayMessage(DavGatewayTray.java:97)
Thrown:

Date: Thu Jun 13 09:00:50 EDT 2019 (1560430850120)
Thread: SmtpConnection-1423
Message #: 15
Level: DEBUG
NDC:
Category: davmail
Message: > 221 Closing connection
Location: davmail.ui.tray.DavGatewayTray.displayMessage(DavGatewayTray.java:97)
Thrown:

Date: Thu Jun 13 09:00:50 EDT 2019 (1560430850120)
Thread: SmtpConnection-1423
Message #: 16
Level: INFO
NDC:
Category: davmail.connection
Message: DISCONNECT - 127.0.0.1:1423
Location: davmail.AbstractConnection.logConnection(AbstractConnection.java:158)
Thrown:

URL in Thunderbird calendar setup documentation is missing trailing slash

The documentation for Thunderbird calendar setup says to use a URL like http://localhost:1080/users/[email protected]/calendar, but on my setup with O365Interactive authentication, that results in "no calendar" errors. Thanks to the forum post https://sourceforge.net/p/davmail/discussion/644057/thread/a8c84e58/, I discovered that the URL needs to have a trailing slash (/).

Once I added that, it worked with no problems. I don't know if the trailing slash is always needed, but I think the docs should suggest trying it if it fails without it.

ERROR [CaldavConnection-48156] davmail - java.lang.NullPointerException

2018-12-27 12:56:34,448 ERROR [CaldavConnection-48156] davmail  - java.lang.NullPointerException
java.lang.NullPointerException
        at davmail.exchange.ews.EwsExchangeSession$Event.buildFieldUpdates(EwsExchangeSession.java:1731)
        at davmail.exchange.ews.EwsExchangeSession$Event.createOrUpdate(EwsExchangeSession.java:1998)
        at davmail.exchange.ews.EwsExchangeSession.internalCreateOrUpdateEvent(EwsExchangeSession.java:2694)
        at davmail.exchange.ExchangeSession.createOrUpdateItem(ExchangeSession.java:3211)
        at davmail.caldav.CaldavConnection.handleFolderOrItem(CaldavConnection.java:290)
        at davmail.caldav.CaldavConnection.handleRequest(CaldavConnection.java:228)
        at davmail.caldav.CaldavConnection.run(CaldavConnection.java:171)

It's with some 5.0.0-trunk version. I didn't try the latest trunk though.

Same version worked properly w/o restarts yesterday. So I guess something is changed on server side.

java.lang.NoClassDefFoundError: com/sun/javafx/embed/HostInterface

After updating to 5.0.0, I can't get davmail tray icon. If starting from console I get:

Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: 
com/sun/javafx/embed/HostInterface
        at java.base/java.lang.Class.forName0(Native Method)
        at java.base/java.lang.Class.forName(Class.java:315)
        at davmail.ui.SettingsFrame.isJavaFXAvailable(SettingsFrame.java:267)
        at davmail.ui.SettingsFrame.getSettingsPanel(SettingsFrame.java:164)
        at davmail.ui.SettingsFrame.<init>(SettingsFrame.java:746)
        at davmail.ui.tray.AwtGatewayTray.createAndShowGUI(AwtGatewayTray.java:233)
        at davmail.ui.tray.AwtGatewayTray$7.run(AwtGatewayTray.java:185)
        at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
        at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
        at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
        at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
        at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
        at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
        at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
        at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
        at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
        at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
        at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: java.lang.ClassNotFoundException: com.sun.javafx.embed.HostInterface
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
        ... 20 more

installed:
openjfx, libopenjfx-java (11)
openjdk-11
all other dependencies.
Debian (SID) x64

DavMail: iOS and UFT-8 characters = not good friends..?

Hello everyone,

first of all: great work you've done here. Really easy to set up and to use. There's just one thing I have to complain about---
Second: I'm from Germany, we have some special characters like 'ü' or 'ä' and so on. Info will be needed later on.

I have two phones with me, one Android-based and the other one with iOS (work and family). I want to synchronize all my contacts from my Outlook to both iOS and Android using CardDav, which successfully worked out pretty fine. Synchronizing the contact to each phone almost works fine too, but here the problem:
iOS has some difficulties listing contacts that have some UFT-8 symbols in their name or address. Whenever there is someone with such letters in the name, iOS shows it with completely different characters to a point where the name is unreadable.
Also, if you create a new contact, for example, "Müller" it will upload the contact correctly to Outlook! But when it synchronizes the contacts on my phone again, the name looks like 'MÂller". Some minutes later, Outlook shows the contact just as broken as it is on iOS.

Is there a possibility to fix it?

What I've tried was to compare if Android had the same problems, but there weren't any. I also looked into the log for differences. There are some lines that are the same, some that say "UFT-8" or "txt/xml" but many of those don't really help when it comes to the problem. And last I tried to set up my iPad with a different iOS version, but still, no luck.

I hope you understand my problem. If not, please let me know. I will try to answer as soon as possible.

Thank you for your help in advance!

p.s.: I just remembered, there was a line in the log when I started the DavMail-Client, it said that something wasn't able to load so DavMail had to run in a certain mode in order to work. Does that have something to do with our problem? I'll check that later for the specific line...

Additional padding in EXISTS response

When there are 500 or more emails in an inbox davlib provides the EXISTS response with an additional whitespace padding between the '*' and the 'mail count integer'.

Acceptable response:

  58:24.54 > PJJD3 EXAMINE INBOX
  58:24.77 < * 486 EXISTS

Unacceptable response:

  57:50.86 > KPFE3 EXAMINE INBOX
  57:51.10 < *  953 EXISTS

'Invalid TLS padding data' and 'Unexpected end of ZLIB input stream'

Davmail 5.2.0 with Thunderbird on Arch Linux.
Today morning I was unable to login to the exchange server due to a certification problem. I switched to non server mode, accepted the new cert interactively. Since that I have the following errors in the log:

2019-06-07 16:37:46,878 ERROR [ImapConnection-45156] davmail.exchange.ews.EWSMethod  - Error while parsing soap response: com.ctc.wstx.exc.WstxIOException: Invalid TLS padding data
com.ctc.wstx.exc.WstxIOException: Invalid TLS padding data
Caused by: javax.crypto.BadPaddingException: Invalid TLS padding data
2019-06-07 16:37:46,879 ERROR [ImapConnection-45156] davmail  - [com.ctc.wstx.exc.WstxLazyException] Unexpected end of ZLIB input stream
[com.ctc.wstx.exc.WstxLazyException] com.ctc.wstx.exc.WstxIOException: Unexpected end of ZLIB input stream
Caused by: java.io.EOFException: Unexpected end of ZLIB input stream

Thunderbird is able to get the list into the inbox but most of the mail bodies are not shown.
My question is, where does Davmail store the accepted cert? I want to delete it, and accept the cert again, because my colleague said he had the same login problem in the morning, but did nothing and now it works for him well.

Exception closing client output stream Socket closed

The error "Exception closing client output stream Socket closed" happens when closing my email client (Thunderbird). It happens on DavMail 5.3.1-3079 but also happened on the previous version. This has no real impact (no lost data, client app is closing normallly).

Date: Tue Sep 10 17:02:01 CEST 2019 (1568127721702) Thread: ImapConnection-51108 Message #: 52 Level: DEBUG NDC: Category: davmail Message: Exception closing client output stream Socket closed Location: davmail.ui.tray.DavGatewayTray.displayMessage(DavGatewayTray.java:114) Thrown: java.net.SocketException: Socket closed at java.base/java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:113) at java.base/java.net.SocketOutputStream.write(SocketOutputStream.java:150) at java.base/java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:81) at java.base/java.io.BufferedOutputStream.flush(BufferedOutputStream.java:142) at java.base/java.io.FilterOutputStream.close(FilterOutputStream.java:182) at davmail.AbstractConnection.close(AbstractConnection.java:262) at davmail.imap.ImapConnection.run(ImapConnection.java:681)

5.2 Stopped working on Ubuntu 18.04-derivative

Hi there

(NB: I looked into #27 but it does not seem to be the same issue as me, I don't have a swt.jar file)

davmail (latest version, 5.2.0-2961-1) was working wonderfully for a couple of months on my laptop with ~Ubuntu Budgie 18.04. A few days ago, I noticed the tray icon wasn't showing up anymore, and my calendar wasn't syncing in Thunderbird. When I try to open davmail, it only shows the icon in my launcher and then disappears. No GUI or anything.

Executing davmail in the terminal gives me this, not sure if it helps:

Exception in thread "AWT-EventQueue-1" java.lang.UnsupportedClassVersionError: javafx/embed/swing/JFXPanel has been compiled by a more recent version of the Java Runtime (class file version 54.0), this version of the Java Runtime only recognizes class file versions up to 52.0
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
	at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:264)
	at davmail.ui.SettingsFrame.isJavaFXAvailable(SettingsFrame.java:267)
	at davmail.ui.SettingsFrame.getSettingsPanel(SettingsFrame.java:164)
	at davmail.ui.SettingsFrame.<init>(SettingsFrame.java:748)
	at davmail.ui.tray.AwtGatewayTray.createAndShowGUI(AwtGatewayTray.java:235)
	at davmail.ui.tray.AwtGatewayTray$7.run(AwtGatewayTray.java:187)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
	at org.GNOME.Accessibility.AtkWrapper$6.dispatchEvent(AtkWrapper.java:715)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

I am not sure what initiated the issue, I regularly update my system but I don't use the calendar that often so didn't notice it straight away.

Any idea how I could troubleshoot that?

Impossible to delete/dismiss some calendar events in Thunderbird

Probably it's related to recently closed bug with invalid events without end date.
From OWA web interface it looks pretty much valid having start and duration/end.

2019-01-31 14:20:35,812 ERROR [CaldavConnection-47806] davmail  - ErrorInvalidPropertyDelete The delete action is not supported for this property. FieldURI: calendar:End
 request: <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages"><soap:Header><t:RequestServerVersion Version="Exchange2013_SP1"/><t:TimeZoneContext><t:TimeZoneDefinition Id="Belarus Standard Time"/></t:TimeZoneContext></soap:Header><soap:Body><m:UpdateItem MessageDisposition="SaveOnly" ConflictResolution="AutoResolve" SendMeetingInvitationsOrCancellations="SendToNone"><m:ItemChanges><t:ItemChange><t:ItemId Id="AAMkAGMyZWQ5ZmI2LWRhYzgtNDg4OS04YTlhLTFhNjE2OWYyNDA4NQBGAAAAAADh3GGfRBTyT4IFu4A5zCn0BwC6b8gUZ7T6RpiC3HsXRMgRAAAAAAENAAC6b8gUZ7T6RpiC3HsXRMgRAADHFuj+AAA=" ChangeKey="DwAAABYAAAC6b8gUZ7T6RpiC3HsXRMgRAADKzAmq"/><t:Updates><t:SetItemField><t:FieldURI FieldURI="calendar:Start"/><t:CalendarItem><t:Start>2019-01-25T18:00:00</t:Start></t:CalendarItem></t:SetItemField><t:DeleteItemField><t:FieldURI FieldURI="calendar:End"/></t:DeleteItemField><t:SetItemField><t:FieldURI FieldURI="calendar:StartTimeZone"/><t:CalendarItem><t:StartTimeZone Id="Russian Standard Time"></t:StartTimeZone></t:CalendarItem></t:SetItemField><t:SetItemField><t:FieldURI FieldURI="calendar:EndTimeZone"/><t:CalendarItem><t:EndTimeZone Id="Russian Standard Time"></t:EndTimeZone></t:CalendarItem></t:SetItemField><t:SetItemField><t:FieldURI FieldURI="calendar:IsAllDayEvent"/><t:CalendarItem><t:IsAllDayEvent>false</t:IsAllDayEvent></t:CalendarItem></t:SetItemField><t:SetItemField><t:FieldURI FieldURI="item:Sensitivity"/><t:Item><t:Sensitivity>Normal</t:Sensitivity></t:Item></t:SetItemField><t:DeleteItemField><t:ExtendedFieldURI PropertyTag="0x1000" PropertyType="String"/></t:DeleteItemField><t:DeleteItemField><t:ExtendedFieldURI PropertyTag="0x37" PropertyType="String"/></t:DeleteItemField><t:DeleteItemField><t:FieldURI FieldURI="calendar:Location"/></t:DeleteItemField><t:DeleteItemField><t:FieldURI FieldURI="calendar:RequiredAttendees"/></t:DeleteItemField><t:DeleteItemField><t:FieldURI FieldURI="calendar:OptionalAttendees"/></t:DeleteItemField><t:SetItemField><t:FieldURI FieldURI="item:ReminderIsSet"/><t:Item><t:ReminderIsSet>true</t:ReminderIsSet></t:Item></t:SetItemField><t:SetItemField><t:FieldURI FieldURI="item:ReminderMinutesBeforeStart"/><t:Item><t:ReminderMinutesBeforeStart>2880</t:ReminderMinutesBeforeStart></t:Item></t:SetItemField><t:SetItemField><t:ExtendedFieldURI DistinguishedPropertySetId="PublicStrings" PropertyName="xmozlastack" PropertyType="String"/><t:Item><t:ExtendedProperty><t:ExtendedFieldURI DistinguishedPropertySetId="PublicStrings" PropertyName="xmozlastack" PropertyType="String"/><t:Value>20190131T112032Z</t:Value></t:ExtendedProperty></t:Item></t:SetItemField></t:Updates></t:ItemChange></m:ItemChanges></m:UpdateItem></soap:Body></soap:Envelope>
davmail.exchange.ews.EWSException: ErrorInvalidPropertyDelete The delete action is not supported for this property. FieldURI: calendar:End
 request: <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages"><soap:Header><t:RequestServerVersion Version="Exchange2013_SP1"/><t:TimeZoneContext><t:TimeZoneDefinition Id="Belarus Standard Time"/></t:TimeZoneContext></soap:Header><soap:Body><m:UpdateItem MessageDisposition="SaveOnly" ConflictResolution="AutoResolve" SendMeetingInvitationsOrCancellations="SendToNone"><m:ItemChanges><t:ItemChange><t:ItemId Id="AAMkAGMyZWQ5ZmI2LWRhYzgtNDg4OS04YTlhLTFhNjE2OWYyNDA4NQBGAAAAAADh3GGfRBTyT4IFu4A5zCn0BwC6b8gUZ7T6RpiC3HsXRMgRAAAAAAENAAC6b8gUZ7T6RpiC3HsXRMgRAADHFuj+AAA=" ChangeKey="DwAAABYAAAC6b8gUZ7T6RpiC3HsXRMgRAADKzAmq"/><t:Updates><t:SetItemField><t:FieldURI FieldURI="calendar:Start"/><t:CalendarItem><t:Start>2019-01-25T18:00:00</t:Start></t:CalendarItem></t:SetItemField><t:DeleteItemField><t:FieldURI FieldURI="calendar:End"/></t:DeleteItemField><t:SetItemField><t:FieldURI FieldURI="calendar:StartTimeZone"/><t:CalendarItem><t:StartTimeZone Id="Russian Standard Time"></t:StartTimeZone></t:CalendarItem></t:SetItemField><t:SetItemField><t:FieldURI FieldURI="calendar:EndTimeZone"/><t:CalendarItem><t:EndTimeZone Id="Russian Standard Time"></t:EndTimeZone></t:CalendarItem></t:SetItemField><t:SetItemField><t:FieldURI FieldURI="calendar:IsAllDayEvent"/><t:CalendarItem><t:IsAllDayEvent>false</t:IsAllDayEvent></t:CalendarItem></t:SetItemField><t:SetItemField><t:FieldURI FieldURI="item:Sensitivity"/><t:Item><t:Sensitivity>Normal</t:Sensitivity></t:Item></t:SetItemField><t:DeleteItemField><t:ExtendedFieldURI PropertyTag="0x1000" PropertyType="String"/></t:DeleteItemField><t:DeleteItemField><t:ExtendedFieldURI PropertyTag="0x37" PropertyType="String"/></t:DeleteItemField><t:DeleteItemField><t:FieldURI FieldURI="calendar:Location"/></t:DeleteItemField><t:DeleteItemField><t:FieldURI FieldURI="calendar:RequiredAttendees"/></t:DeleteItemField><t:DeleteItemField><t:FieldURI FieldURI="calendar:OptionalAttendees"/></t:DeleteItemField><t:SetItemField><t:FieldURI FieldURI="item:ReminderIsSet"/><t:Item><t:ReminderIsSet>true</t:ReminderIsSet></t:Item></t:SetItemField><t:SetItemField><t:FieldURI FieldURI="item:ReminderMinutesBeforeStart"/><t:Item><t:ReminderMinutesBeforeStart>2880</t:ReminderMinutesBeforeStart></t:Item></t:SetItemField><t:SetItemField><t:ExtendedFieldURI DistinguishedPropertySetId="PublicStrings" PropertyName="xmozlastack" PropertyType="String"/><t:Item><t:ExtendedProperty><t:ExtendedFieldURI DistinguishedPropertySetId="PublicStrings" PropertyName="xmozlastack" PropertyType="String"/><t:Value>20190131T112032Z</t:Value></t:ExtendedProperty></t:Item></t:SetItemField></t:Updates></t:ItemChange></m:ItemChanges></m:UpdateItem></soap:Body></soap:Envelope>
        at davmail.exchange.ews.EWSMethod.checkSuccess(EWSMethod.java:778)
        at davmail.exchange.ews.EwsExchangeSession.internalExecuteMethod(EwsExchangeSession.java:3007)
        at davmail.exchange.ews.EwsExchangeSession.executeMethod(EwsExchangeSession.java:2971)
        at davmail.exchange.ews.EwsExchangeSession$Event.createOrUpdate(EwsExchangeSession.java:2135)
        at davmail.exchange.ews.EwsExchangeSession.internalCreateOrUpdateEvent(EwsExchangeSession.java:2710)
        at davmail.exchange.ExchangeSession.createOrUpdateItem(ExchangeSession.java:3211)
        at davmail.caldav.CaldavConnection.handleFolderOrItem(CaldavConnection.java:290)
        at davmail.caldav.CaldavConnection.handleRequest(CaldavConnection.java:228)
        at davmail.caldav.CaldavConnection.run(CaldavConnection.java:171)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.