【问题标题】:javax.mail: "Connection refused" to smtp.gmail.comjavax.mail:“连接被拒绝”到 smtp.gmail.com
【发布时间】:2019-06-13 08:29:52
【问题描述】:

我有一个 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 可怕的网络界面,则必须进行某种特殊配置。谁能告诉我我应该怎么做才能让它工作?

【问题讨论】:

  • 您是否在运行 webapp 的同一台机器上运行 telnet? “连接被拒绝”通常是防火墙或防病毒软件阻止您连接。在至少建立成功的套接字连接之前,您不会遇到这些 Gmail 安全问题。
  • 是的,都在同一台机器上。
  • 所以请检查您的防病毒或防火墙设置。
  • 已检查。这是一个没有杀毒软件的Linux服务器。telnet连接的事实表明防火墙不是问题。
  • “在至少建立成功的套接字连接之前,您不会遇到这些 Gmail 安全问题”——但是 javax.mail 在什么时候抛出异常?由于我可以使用 telnet 连接,我怀疑我可以建立 TCP 连接,但是 gmail 拒绝登录凭据,这会触发异常。

标签: email smtp gmail jakarta-mail


【解决方案1】:

原来是 Gmail 很可爱。潜在的错误是“身份验证被拒绝”,但它被包裹在其他地方的“连接被拒绝”异常中。我终于想出了如何告诉 Gmail 允许从不安全的应用程序访问,并且解决了它。

【讨论】:

    猜你喜欢
    • 2020-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-08
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多