我尝试使用 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/