Aws ses 电子邮件发件人在本地工作,但在部署时无法在 tomcat 中工作

Posted

技术标签:

【中文标题】Aws ses 电子邮件发件人在本地工作,但在部署时无法在 tomcat 中工作【英文标题】:Aws ses email sender working in local but when deployed its not working in tomcat 【发布时间】:2021-09-11 18:42:03 【问题描述】:

我有一个使用 amazon ses 发送电子邮件的代码。它在本地工作。当我在 tomcat 中部署时,甚至没有部署它得到一些像这样的错误:

“通过方法'cachingConfigurer'参数2表达的不满足的依赖关系;嵌套异常是org.springframework.beans.factory.NoSuchBeanDefinitionException:没有'java.util.List' 可用:预计至少有 1 个符合自动装配候选资格的 bean。依赖项注释:"

认为是因为 spring-cloud-starter-aws 依赖。并且此依赖项被导入“SimpleEmailServiceJavaMailSender”的文件中。 我们可以在没有此“SimpleEmailServiceJavaMailSender”的情况下发送电子邮件吗?使用 aws ses 发送电子邮件的任何其他代码..

【问题讨论】:

【参考方案1】:

如果您有兴趣了解如何在 Spring BOOT 应用程序中通过 Amazon Simple Email Service 发送电子邮件,请使用 SES Java V2 API。这是一个多服务 AWS 教程,该教程创建了一个 Spring BOOT 应用程序,该应用程序使用 SES 发送电子邮件(以及从 Amazon DynamoDB 表中提取数据等其他任务)。

Creating the DynamoDB web application item tracker

此应用通过电子邮件发送 MS Excel 文档作为示例,说明如何使用 SES 通过电子邮件发送附件。

我怀疑您没有使用亚马逊强烈推荐的 AWS Java V2 API:

AWS SDK for Java 2.x 是对 1.x 版代码库的重大改写。它建立在 Java 8+ 之上,并添加了几个经常请求的特性。其中包括对非阻塞 I/O 的支持以及在运行时插入不同 HTTP 实现的能力。

【讨论】:

以上是关于Aws ses 电子邮件发件人在本地工作,但在部署时无法在 tomcat 中工作的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5.7:通过 AWS SES 的按需电子邮件通知将我的收件人电子邮件视为发件人电子邮件,并希望它是经过验证的地址

AWS SES - 退回的电子邮件

即使经过验证,AWS SES 电子邮件也总是会进入垃圾邮件

如何使用带有 Postfix 的 AWS SES 接收退回的邮件

在 AWS Lambda 函数中通过 AWS SES 发送电子邮件

使用户能够通过 AWS SES 发送和接收电子邮件