metabase / metabase

The simplest, fastest way to get business intelligence and analytics to everyone in your company :yum:
https://metabase.com
Other
38.16k stars 5.06k forks source link

Can't send emails using smtp with Office 365 #34229

Closed jloria13 closed 11 months ago

jloria13 commented 11 months ago

Describe the bug We had configured an Office 365 email using the smtp.office365.com and port 587, a couple of month ago we believe there was a change among Microsoft for using Oauth that could possible affect the Metabase service for sending emails. Since we have not being able to send new invitations to the app or notifications.

Logs `javax.mail.MessagingException: Exception reading response; nested exception is: java.net.SocketTimeoutException: Read timed out at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:2476) at com.sun.mail.smtp.SMTPTransport.ehlo(SMTPTransport.java:1684) at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:726) at javax.mail.Service.connect(Service.java:342)

[beda6b76-27d4-4c18-9520-e596041ddf5f] 2023-09-28T12:26:57-06:00 ERROR metabase.email Error al probar la conexión SMTP javax.mail.MessagingException: Exception reading response; nested exception is: java.net.SocketTimeoutException: Read timed out at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:2476) at com.sun.mail.smtp.SMTPTransport.ehlo(SMTPTransport.java:1684) at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:726) at javax.mail.Service.connect(Service.java:342) at metabase.email$fn84256$test_smtp_settings84261$fn84265$fn84268.invoke(email.clj:204) at metabase.email$fn84256$test_smtp_settings84261$fn84265.invoke(email.clj:203) at metabase.email$fn84256$test_smtp_settings84261.invoke(email.clj:187) at metabase.email$fn84289$guess_smtp_security84294$fn84295$fn84296.invoke(email.clj:228) at clojure.core$some.invokeStatic(core.clj:2718) at clojure.core$some.invoke(core.clj:2709) at metabase.email$fn84289$guess_smtp_security84294$fn84295.invoke(email.clj:226) at metabase.email$fn84289$guess_smtp_security84294.invoke(email.clj:217) at metabase.email$fn84315$test_smtp_connection84320$fn84321.invoke(email.clj:254) at metabase.email$fn84315$test_smtp_connection__84320.invoke(email.clj:235) Caused by: java.net.SocketTimeoutException: Read timed out

[beda6b76-27d4-4c18-9520-e596041ddf5f] 2023-09-28T12:26:58-06:00 ERROR metabase.email Error al probar la conexión SMTP javax.mail.MessagingException: Could not connect to SMTP host: smtp.office365.com, port: 587; nested exception is: javax.net.ssl.SSLException: Unsupported or unrecognized SSL message at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2212) at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:722) at javax.mail.Service.connect(Service.java:342) at metabase.email$fn84256$test_smtp_settings84261$fn84265$fn84268.invoke(email.clj:204) at metabase.email$fn84256$test_smtp_settings84261$fn84265.invoke(email.clj:203) at metabase.email$fn84256$test_smtp_settings84261.invoke(email.clj:187) at metabase.email$fn84289$guess_smtp_security84294$fn84295$fn__84296.invoke(email.clj:228) Caused by: javax.net.ssl.SSLException: Unsupported or unrecognized SSL message at java.base/sun.security.ssl.SSLSocketInputRecord.handleUnknownRecord(Unknown Source) at java.base/sun.security.ssl.SSLSocketInputRecord.decode(Unknown Source) at java.base/sun.security.ssl.SSLTransport.decode(Unknown Source) at java.base/sun.security.ssl.SSLSocketImpl.decode(Unknown Source) at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(Unknown Source) at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source) at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source) at com.sun.mail.util.SocketFetcher.configureSSLSocket(SocketFetcher.java:602) at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:376) at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:214) at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2160) ... 138 more [beda6b76-27d4-4c18-9520-e596041ddf5f] 2023-09-28T12:26:58-06:00 WARN metabase.api.email Problem connecting to mail server: Exception reading response: Read timed out [beda6b76-27d4-4c18-9520-e596041ddf5f] 2023-09-28T12:26:58-06:00 DEBUG metabase.server.middleware.log PUT /api/email 400 14.0 s (0 llamadas a la BBDD) {:message "Sorry, something went wrong. Please try again. Error: Exception reading response: Read timed out"}

[beda6b76-27d4-4c18-9520-e596041ddf5f] 2023-09-28T12:27:15-06:00 ERROR metabase.email Error al probar la conexión SMTP javax.mail.MessagingException: Could not connect to SMTP host: smtp.office365.com, port: 587; nested exception is: javax.net.ssl.SSLException: Unsupported or unrecognized SSL message at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2212) at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:722) at javax.mail.Service.connect(Service.java:342)

Expected behavior Allow me to send new invitations, and configure the smtp for sending emails

Screenshots image

Severity It's high for us since we can't send reset password emails nor add new users, also there's no functionality for sending notifications to users.

Additional context The app is being hosted on a VM in Azure

Metabase Diagnostic Info

{
  "browser-info": {
    "language": "en-US",
    "platform": "Win32",
    "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36",
    "vendor": "Google Inc."
  },
  "system-info": {
    "file.encoding": "Cp1252",
    "java.runtime.name": "OpenJDK Runtime Environment",
    "java.runtime.version": "17.0.8.1+1",
    "java.vendor": "Eclipse Adoptium",
    "java.vendor.url": "https://adoptium.net/",
    "java.version": "17.0.8.1",
    "java.vm.name": "OpenJDK 64-Bit Server VM",
    "java.vm.version": "17.0.8.1+1",
    "os.name": "Windows Server 2016",
    "os.version": "10.0",
    "user.language": "en",
    "user.timezone": "America/Guatemala"
  },
  "metabase-info": {
    "databases": [
      "sqlserver"
    ],
    "hosting-env": "unknown",
    "application-database": "mysql",
    "application-database-details": {
      "database": {
        "name": "MySQL",
        "version": "8.0.30"
      },
      "jdbc-driver": {
        "name": "MariaDB Connector/J",
        "version": "2.7.6"
      }
    },
    "run-mode": "prod",
    "version": {
      "date": "2023-09-18",
      "tag": "v0.47.2",
      "branch": "release-x.47.x",
      "hash": "536c24c"
    },
    "settings": {
      "report-timezone": "America/Costa_Rica"
    }
  }
}
paoliniluis commented 11 months ago

Check https://github.com/metabase/metabase/issues/19662