首页 > 解决方案 > 使用 Java 邮件 Api 发送电子邮件,应用程序部署在 tomcat 中

问题描述

我正在尝试使用 java Mail Api + Spring-boot Application 发送电子邮件。正在使用的属性是:

mail:
    host: smtp.gmail.com
    port: 587
    username: niranjan.numeroeins@gmail.com
    password: msiyyyyyvzcbox # App password for less secure web app procured
    protocol: smtp
    tls: true
    properties.mail.smtp:
      auth: true
      starttls.enable: true
      ssl.trust: smtp.gmail.com

当我直接使用“java -jar myJar.jar”运行 jar 时,上面的配置可以很好地与我的 spring-boot+JavaMail Api 配合使用。但是,一旦应用程序部署在 tomcat 容器中,它就会开始出错,就像您尝试使用安全性较低的应用程序(如我们的网络应用程序代码)访问 Gmail 服务器时一样。看起来像tomcat方面的一些配置问题(使用tomcat-9)?请帮忙 。这是日志跟踪:

org.springframework.mail.MailAuthenticationException: Authentication failed; nested exception is jav
ax.mail.AuthenticationFailedException: 535-5.7.8 Username and Password not accepted. Learn more at
535 5.7.8  https://support.google.com/mail/?p=BadCredentials j22sm1775206pjz.3 - gsmtp

请注意,如果您尝试使用实际密码而不是应用程序密码发送电子邮件,您将收到同样的错误https://support.google.com/accounts/answer/185833?hl=en

标签: javaspring-bootemailtomcat

解决方案


推荐阅读