java - 亚马逊简单电子邮件 : how to check if an Email has been delivered?

标签 java amazon-web-services amazon-ses

我尝试使用 Amazon SES 和 Java AWS SDK 发送电子邮件,并且成功了。我希望能够(稍后)检查交付是否成功。如果最终的邮件服务器接受邮件进行投递,我将其定义为成功。

我看到当你发送邮件时你可以得到一个唯一标识你的邮件的messageId:

    SendEmailRequest request = new SendEmailRequest(from, destination, message);
    SendEmailResult result = service.sendEmail(request);
    String messageId = result.getMessageId();

但是我看到您只能获得聚合统计信息,例如使用 SendDataPoint(表示发送统计数据。每个 SendDataPoint 包含 15 分钟发送 Activity 期间的统计信息)。

我没有使用 SES 发送批量电子邮件,而是以非常低的音量发送个性化通知,我有兴趣检查每封邮件。

我是不是忽略了什么?是否可以使用 SES 进行此类检查?

最佳答案

亚马逊确实为您提供了一种机制来捕获退回,这为您提供了相反的验证。

您可以创建一个邮箱来接收退回通知,然后告诉 SES 将退回通知转发到那里。例如:

request.setReturnPath("bounces@example.com");

然后您可以编写代码来定期检查该邮箱,并为目标电子邮件地址解析邮件。

亚马逊在此处简要说明了他们如何处理退回和投诉:

http://aws.amazon.com/ses/faqs/#37

但是,如果您想检查邮件是否避开垃圾邮件过滤器或是否被最终用户阅读,这超出了 SES 的范围(尽管他们努力确保可传递性)。

关于java - 亚马逊简单电子邮件 : how to check if an Email has been delivered?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5968072/

相关文章:

java - 无法使用有界通配符传递通用子类的内部类

java - 具有多个方法对象的测试类

java - java中管道模式的实现

java - 如何打印一次for循环HashMap结果?

angular - 在 S3 中存储和查看 Base64 图像

amazon-web-services - 在 aws cloudformation 期间未找到资源的属性 publicip

ubuntu - 通过 SES 从托管在 Micro-EC2 上的 AWS 上的 Drupal 发送电子邮件

amazon-web-services - 保存时挂起的 Spark Dataframe

aws-lambda - 如何授权 lambda 执行 ses :SendEmail with CDK?

java - AWS SES 在 Spring Boot Java 中实现,无需使用凭证