java - 使用 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
解决方案
推荐阅读
- awk - 如何让“awk”只修改文件的某些行,而不是整个文件?
- android - Nativescript 在构建期间无法删除文件
- javascript - 如何将Javascript代码插入R中的Leaflet,即使双击也不会触发点击
- javascript - 为什么代码可以在 JSfiddle 上运行,但不能在我的 PC 上运行?(滚动)
- google-sheets - 我可以一次保护范围 2 或 3 单元格吗?
- pytest - Pytest测试是方法抽象
- azure-notificationhub - 格式化从 Azure 通知中心发送的通知
- typescript - 定义可以具有不同结构的对象参数的类型
- karate - 匹配输入和输出的空手道问题
- spring - 如何将未经 Envers 审计的字段添加到审计表