【发布时间】: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