【问题标题】:JavaMail fails to send email from docker containerJavaMail 无法从 docker 容器发送电子邮件
【发布时间】:2019-10-24 02:56:02
【问题描述】:

我刚刚将一些 Java 代码部署到生产环境(它是一个部署在 Tomcat 中的 Java Web 应用程序),我注意到负责发送电子邮件的模块开始出现故障。

当代码在我的本地系统上运行时,情况并非如此。我至少可以发送到雅虎!我本地服务器上的邮件、谷歌邮件和邮箱。

当从我的本地系统发送时,我的服务器上的日志(/var/log/maillog)

显示:

Jun  8 08:37:22 folo-folo postfix/smtps/smtpd[31137]: connect from unknown[41.220.75.164]
Jun  8 08:37:25 folo-folo postfix/smtps/smtpd[31137]: 67EA680EA480: client=unknown[41.220.75.164], sasl_method=LOGIN, sasl_username=helpdesk@folo-folo.com
Jun  8 08:37:26 folo-folo postfix/cleanup[31216]: 67EA680EA480: message-id=<1177096266.0.1559979567305.JavaMail.gbemirojiboye@Gbemiros-MacBook-Pro.local>
Jun  8 08:37:26 folo-folo postfix/qmgr[6945]: 67EA680EA480: from=<helpdesk@folo-folo.com>, size=530, nrcpt=2 (queue active)
Jun  8 08:37:26 folo-folo postfix/smtps/smtpd[31137]: disconnect from unknown[41.220.75.164]
Jun  8 08:37:26 folo-folo postfix/smtp[31217]: 67EA680EA480: to=<xxxx@gmail.com>, relay=gmail-smtp-in.l.google.com[108.177.15.26]:25, delay=1.7, delays=1.1/0.02/0.3/0.24, dsn=2.0.0, status=sent (250 2.0.0 OK  1559979574 e2si3106225wrj.113 - gsmtp)
Jun  8 08:37:28 folo-folo postfix/smtp[31218]: 67EA680EA480: to=<xxxx@yahoo.com>, relay=mta7.am0.yahoodns.net[98.137.159.24]:25, delay=3.4, delays=1.1/0.03/1.5/0.79, dsn=2.0.0, status=sent (250 ok dirdel)
Jun  8 08:37:28 folo-folo postfix/qmgr[6945]: 67EA680EA480: removed

此消息最终被发送。

但是,当从 docker 容器内的 tomcat 中部署的同一个应用程序发送时,日志变为:

Jun  8 08:34:27 folo-folo postfix/smtps/smtpd[30255]: connect from unknown[172.18.0.6]
Jun  8 08:34:29 folo-folo postfix/smtps/smtpd[30255]: warning: unknown[172.18.0.6]: SASL LOGIN authentication failed: **UGFzc3dvcmQ6**
Jun  8 08:34:29 folo-folo postfix/smtps/smtpd[30255]: lost connection after AUTH from unknown[172.18.0.6]
Jun  8 08:34:29 folo-folo postfix/smtps/smtpd[30255]: disconnect from unknown[172.18.0.6]

此消息从未发送。

从主机上的服务器日志可以看出,Docker 容器能够发出邮件请求,但是由于某种原因,身份验证失败。

我可以猜测如果我向主机容器上的 api 发出请求并让它发送电子邮件,它会起作用。但这对我的设计来说会很不方便。

我该如何解决这个问题?

我应该提一下,这里的问题看起来很像posted here

【问题讨论】:

  • 你如何在本地运行你的应用程序以及它是如何在 docker 中部署/运行的?向我们展示发送电子邮件的代码。
  • @Oleksandr Shpota ,这是我的错误。经过几天的调试,我在几个小时前才解决了这个问题。我的凭据混淆了。现在可以了,没问题。非常感谢您的提问。

标签: java docker jakarta-mail postfix-mta dovecot


【解决方案1】:

这是我的错误。

我的凭据混淆了,这就是导致从 Docker 发出请求时出错的原因。

更正凭据使错误消失。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-03
    • 1970-01-01
    • 2021-09-15
    • 2016-10-20
    • 1970-01-01
    • 2012-04-27
    • 2017-10-17
    • 2019-08-10
    相关资源
    最近更新 更多