I can't configure SMTP Gmail

Good afternoon guys!

I am trying to configurate google's email in the metabase application, but I am getting "Sorry, something went wrong. Please try again." everytime. I was able to send successfully using PHP as you can see the configurations below:

smtp%20php

But when I tried to put the same configurations on Metabase I got this error:

The log:

[342fc8b5-6f10-4644-923b-c8fd04a42b1f] 2021-06-21T16:18:57-03:00 ERROR metabase.email Erro ao testar a conexão SMTP
javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 587;
  nested exception is:
	java.net.SocketTimeoutException: Read timed out
	at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2102)
	at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:699)
	at javax.mail.Service.connect(Service.java:366)
	at metabase.email$run_smtp_test$fn__50698.invoke(email.clj:145)
	at metabase.email$run_smtp_test.invokeStatic(email.clj:144)
	at metabase.email$run_smtp_test.invoke(email.clj:128)
	at metabase.email$guess_smtp_security.invokeStatic(email.clj:162)
	at metabase.email$guess_smtp_security.invoke(email.clj:155)
	at metabase.email$test_smtp_connection.invokeStatic(email.clj:183)
	at metabase.email$test_smtp_connection.invoke(email.clj:169)
	at metabase.api.email$fn__64296.invokeStatic(email.clj:79)
	at metabase.api.email$fn__64296.invoke(email.clj:67)
	at compojure.core$wrap_response$fn__1996.invoke(core.clj:160)
	at compojure.core$wrap_route_middleware$fn__1980.invoke(core.clj:132)
	at compojure.core$wrap_route_info$fn__1985.invoke(core.clj:139)
	at compojure.core$wrap_route_matches$fn__1989.invoke(core.clj:151)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
	at compojure.core$wrap_route_matches$fn__1989.invoke(core.clj:153)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008.invoke(core.clj:200)
	at metabase.server.middleware.auth$enforce_authentication$fn__76076.invoke(auth.clj:14)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008.invoke(core.clj:200)
	at compojure.core$make_context$handler__2036.invoke(core.clj:287)
	at compojure.core$make_context$fn__2038.invoke(core.clj:296)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
	at compojure.core$make_context$fn__2038.invoke(core.clj:297)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
	at compojure.core$make_context$fn__2038.invoke(core.clj:297)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
	at compojure.core$make_context$fn__2038.invoke(core.clj:297)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
	at compojure.core$make_context$fn__2038.invoke(core.clj:297)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
	at compojure.core$make_context$fn__2038.invoke(core.clj:297)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
	at compojure.core$make_context$fn__2038.invoke(core.clj:297)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
	at compojure.core$make_context$fn__2038.invoke(core.clj:297)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
	at compojure.core$make_context$fn__2038.invoke(core.clj:297)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
	at metabase.api.routes$fn__76198$fn__76200.invoke(routes.clj:70)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008.invoke(core.clj:200)
	at clojure.lang.AFn.applyToHelper(AFn.java:160)
	at clojure.lang.AFn.applyTo(AFn.java:144)
	at clojure.core$apply.invokeStatic(core.clj:665)
	at clojure.core$apply.invoke(core.clj:660)
	at metabase.server.routes$fn__78469$fn__78470.doInvoke(routes.clj:57)
	at clojure.lang.RestFn.invoke(RestFn.java:436)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008.invoke(core.clj:200)
	at compojure.core$make_context$handler__2036.invoke(core.clj:287)
	at compojure.core$make_context$fn__2038.invoke(core.clj:296)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
	at compojure.core$wrap_route_matches$fn__1989.invoke(core.clj:153)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
	at compojure.core$wrap_route_matches$fn__1989.invoke(core.clj:153)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
	at compojure.core$wrap_route_matches$fn__1989.invoke(core.clj:153)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
	at metabase.server.routes$fn__78457$fn__78459.invoke(routes.clj:41)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008.invoke(core.clj:200)
	at metabase.server.middleware.exceptions$catch_uncaught_exceptions$fn__76189.invoke(exceptions.clj:98)
	at metabase.server.middleware.exceptions$catch_api_exceptions$fn__76186.invoke(exceptions.clj:86)
	at metabase.server.middleware.log$log_api_call$fn__78385$fn__78386.invoke(log.clj:195)
	at toucan.db$_do_with_call_counting.invokeStatic(db.clj:216)
	at toucan.db$_do_with_call_counting.invoke(db.clj:209)
	at metabase.server.middleware.log$log_api_call$fn__78385.invoke(log.clj:189)
	at metabase.server.middleware.browser_cookie$ensure_browser_id_cookie$fn__78021.invoke(browser_cookie.clj:30)
	at metabase.server.middleware.security$add_security_headers$fn__76151.invoke(security.clj:142)
	at metabase.server.middleware.json$wrap_json_body$fn__78166.invoke(json.clj:62)
	at metabase.server.middleware.json$wrap_streamed_json_response$fn__78184.invoke(json.clj:98)
	at ring.middleware.keyword_params$wrap_keyword_params$fn__78726.invoke(keyword_params.clj:55)
	at ring.middleware.params$wrap_params$fn__78742.invoke(params.clj:69)
	at metabase.server.middleware.misc$maybe_set_site_url$fn__35891.invoke(misc.clj:58)
	at metabase.server.middleware.session$bind_current_user$fn__42760$fn__42761.invoke(session.clj:257)
	at metabase.server.middleware.session$do_with_current_user.invokeStatic(session.clj:238)
	at metabase.server.middleware.session$do_with_current_user.invoke(session.clj:230)
	at metabase.server.middleware.session$bind_current_user$fn__42760.invoke(session.clj:256)
	at metabase.server.middleware.session$wrap_current_user_info$fn__42747.invoke(session.clj:216)
	at metabase.server.middleware.session$wrap_session_id$fn__42733.invoke(session.clj:162)
	at metabase.server.middleware.auth$wrap_api_key$fn__76084.invoke(auth.clj:27)
	at ring.middleware.cookies$wrap_cookies$fn__78646.invoke(cookies.clj:216)
	at metabase.server.middleware.misc$add_content_type$fn__35874.invoke(misc.clj:27)
	at metabase.server.middleware.misc$disable_streaming_buffering$fn__35899.invoke(misc.clj:75)
	at ring.middleware.gzip$wrap_gzip$fn__78688.invoke(gzip.clj:86)
	at metabase.server.middleware.misc$bind_request$fn__35902.invoke(misc.clj:92)
	at metabase.server.middleware.ssl$redirect_to_https_middleware$fn__78402.invoke(ssl.clj:38)
	at metabase.server$async_proxy_handler$fn__77965.invoke(server.clj:71)
	at metabase.server.proxy$org.eclipse.jetty.server.handler.AbstractHandler$ff19274a.handle(Unknown Source)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
	at org.eclipse.jetty.server.Server.handle(Server.java:516)
	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383)
	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:556)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:273)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
	at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:375)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:773)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:905)
	at java.lang.Thread.run(Unknown Source)
Caused by: java.net.SocketTimeoutException: Read timed out
	at java.net.SocketInputStream.socketRead0(Native Method)
	at java.net.SocketInputStream.socketRead(Unknown Source)
	at java.net.SocketInputStream.read(Unknown Source)
	at java.net.SocketInputStream.read(Unknown Source)
	at sun.security.ssl.SSLSocketInputRecord.read(Unknown Source)
	at sun.security.ssl.SSLSocketInputRecord.readHeader(Unknown Source)
	at sun.security.ssl.SSLSocketInputRecord.decode(Unknown Source)
	at sun.security.ssl.SSLTransport.decode(Unknown Source)
	at sun.security.ssl.SSLSocketImpl.decode(Unknown Source)
	at sun.security.ssl.SSLSocketImpl.readHandshakeRecord(Unknown Source)
	at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
	at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
	at com.sun.mail.util.SocketFetcher.configureSSLSocket(SocketFetcher.java:598)
	at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:372)
	at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:238)
	at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2066)
	... 123 more
[342fc8b5-6f10-4644-923b-c8fd04a42b1f] 2021-06-21T16:18:58-03:00 WARN metabase.api.email Problem connecting to mail server: Exception reading response
[342fc8b5-6f10-4644-923b-c8fd04a42b1f] 2021-06-21T16:18:58-03:00 ERROR metabase.server.middleware.log PUT /api/email 500 17,9 s (0 chamadas ao banco de dados) 
{:message "Sorry, something went wrong.  Please try again."}

[342fc8b5-6f10-4644-923b-c8fd04a42b1f] 2021-06-21T16:18:58-03:00 DEBUG metabase.server.middleware.log GET /api/setting 200 1,7 ms (0 chamadas ao banco de dados) Conexões de banco de dados do aplicativo: 0 / 7 Threads do Jetty: 5 / 50 (1 ocioso, 0 na fila) (51 total de threads ativas) Consultas ativas: 0 (0 na fila)
[342fc8b5-6f10-4644-923b-c8fd04a42b1f] 2021-06-21T16:18:58-03:00 DEBUG metabase.server.middleware.log GET /api/session/properties 200 10,8 ms (2 chamadas ao banco de dados) Conexões de banco de dados do aplicativo: 0 / 7 Threads do Jetty: 5 / 50 (1 ocioso, 0 na fila) (51 total de threads ativas) Consultas ativas: 0 (0 na fila)
[342fc8b5-6f10-4644-923b-c8fd04a42b1f] 2021-06-21T16:19:02-03:00 DEBUG metabase.server.middleware.log GET /api/user/current 200 5,8 ms (3 chamadas ao banco de dados) Conexões de banco de dados do aplicativo: 0 / 7 Threads do Jetty: 5 / 50 (1 ocioso, 0 na fila) (53 total de threads ativas) Consultas ativas: 0 (0 na fila)
[342fc8b5-6f10-4644-923b-c8fd04a42b1f] 2021-06-21T16:19:02-03:00 DEBUG metabase.server.middleware.log GET /api/session/properties 200 12,0 ms (2 chamadas ao banco de dados) Conexões de banco de dados do aplicativo: 0 / 7 Threads do Jetty: 4 / 50 (1 ocioso, 0 na fila) (53 total de threads ativas) Consultas ativas: 0 (0 na fila)
[342fc8b5-6f10-4644-923b-c8fd04a42b1f] 2021-06-21T16:19:02-03:00 DEBUG metabase.server.middleware.log GET /api/database 200 11,1 ms (3 chamadas ao banco de dados) Conexões de banco de dados do aplicativo: 0 / 7 Threads do Jetty: 4 / 50 (1 ocioso, 0 na fila) (53 total de threads ativas) Consultas ativas: 0 (0 na fila)

Hi @yihongz
Post "Diagnostic Info" from Admin > Troubleshooting.
That error usually occurs, when you have a firewall (or antivirus) that is blocking.

Hey @flamber, thanks for the fast answer, here it is:

{
  "browser-info": {
    "language": "pt-BR",
    "platform": "Win32",
    "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.106 Safari/537.36",
    "vendor": "Google Inc."
  },
  "system-info": {
    "file.encoding": "UTF-8",
    "java.runtime.name": "Java(TM) SE Runtime Environment",
    "java.runtime.version": "1.8.0_291-b10",
    "java.vendor": "Oracle Corporation",
    "java.vendor.url": "http://java.oracle.com/",
    "java.version": "1.8.0_291",
    "java.vm.name": "Java HotSpot(TM) 64-Bit Server VM",
    "java.vm.version": "25.291-b10",
    "os.name": "Windows 10",
    "os.version": "10.0",
    "user.language": "pt",
    "user.timezone": "America/Sao_Paulo"
  },
  "metabase-info": {
    "databases": [
      "h2",
      "oracle"
    ],
    "hosting-env": "unknown",
    "application-database": "h2",
    "application-database-details": {
      "database": {
        "name": "H2",
        "version": "1.4.197 (2018-03-18)"
      },
      "jdbc-driver": {
        "name": "H2 JDBC Driver",
        "version": "1.4.197 (2018-03-18)"
      }
    },
    "run-mode": "prod",
    "version": {
      "tag": "v0.39.4",
      "date": "2021-06-15",
      "branch": "release-x.39.x",
      "hash": "f538050"
    },
    "settings": {
      "report-timezone": null
    }
  }
}

@yihongz

Check you firewall/antivirus.

I would recommend upgrading to Java 11, not that I think it would make a difference here:
https://www.metabase.com/docs/latest/operations-guide/java-versions.html

And you should migrate away from H2 if you are using Metabase is production:
https://www.metabase.com/docs/latest/operations-guide/migrating-from-h2.html

@flamber, here it is after upgrading Java:

Caused by: javax.net.ssl.SSLException: Unsupported or unrecognized SSL message
	at java.base/sun.security.ssl.SSLSocketInputRecord.handleUnknownRecord(SSLSocketInputRecord.java:451)
	at java.base/sun.security.ssl.SSLSocketInputRecord.decode(SSLSocketInputRecord.java:175)
	at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:110)
	at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1369)
	at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1278)
	at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:401)
	at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:373)
	at com.sun.mail.util.SocketFetcher.configureSSLSocket(SocketFetcher.java:598)
	at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:372)
	at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:238)
	at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2066)

@yihongz Check you firewall/antivirus. Disable them. I have seen problems with Avast and several others causing problems.

Hey @flamber, I finally found a way to solve it. If someone faces the same problem using metabase locally, just create a .jks file:

keytool -genkey -alias default -keystore myKey.jks -dname "CN=myServer, O=IBM, C=CN"
    -storepass passw0rd -keypass passw0rd -storetype jks -validity 90 -keyalg RSA

After that, we must apply it on env vars, in my case I am using Windows 10, so I did:

That's it! Now I'm able to send e-mails (TLS and port 587)

See ya! :grinning: