javax.mail:"Connection refused" 至 smtp.gmail.com

javax.mail: "Connection refused" to smtp.gmail.com

我有一个 web 应用程序,它记录致命错误(基本上是由于代码中的错误),并使用 smtp.gmail.com:465 通过电子邮件将它们报告到 gmail 帐户。这多年来一直运行良好,系统稳定,所以自从我上次出现致命错误(2017 年 10 月)以来已经有一段时间了。然而,前几天我在测试一个错误修复时做了一些愚蠢的事情,它导致了一个致命的错误报告。电子邮件未发送,我收到了:

javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 465;
  nested exception is:
    java.net.ConnectException: Connection refused: connect

我可以通过 telnet 连接:

$ telnet smtp.gmail.com 465
Trying 74.125.133.109...
Connected to gmail-smtp-msa.l.google.com.
Escape character is '^]'.

我假设它与 Gmail 的安全性有关,这意味着如果您想使用 Thunderbird 或其他东西而不是 Gmail 可怕的网络界面,您必须进行某种特殊配置。谁能告诉我我应该怎么做才能让它正常工作?

原来是Gmail萌化了。底层错误是 "authentication refused",但它被包裹在别处的 "connection refused" 异常中。我终于想出了如何告诉 Gmail 允许从不安全的应用程序访问,并解决了这个问题。