我尝试使用Java AWS SDK发送带有Amazon SES的电子邮件,但它确实有效。我希望能够(稍后)检查交付是否成功。如果最终的邮件服务器接受邮件发送,我会定义成功。
我看到,当您发送电子邮件时,您可以获得唯一标识您的电子邮件的messageId:
SendEmailRequest request = new SendEmailRequest(from, destination, message);
SendEmailResult result = service.sendEmail(request);
String messageId = result.getMessageId();
但是我看到你只能获得聚合统计信息,例如使用SendDataPoint(表示发送统计数据。每个SendDataPoint包含15分钟发送活动的统计信息)。
我没有使用SES发送批量电子邮件,但是数量非常少的个性化通知,我有兴趣检查每条消息。
我忽视了什么吗?是否可以使用SES进行此类检查?
答案 0 :(得分:4)
亚马逊确实提供了一种捕获跳出的机制,为您提供相反的验证。
您可以创建一个邮箱来接收退回通知,然后告诉SES在那里转发退回通知。 e.g:
request.setReturnPath("bounces@example.com");
然后,您可以编写代码以定期检查该邮箱,并解析目标电子邮件地址的邮件。
亚马逊提供了他们如何处理弹跳的简要说明。投诉在这里:
http://aws.amazon.com/ses/faqs/#37
但是,如果您想检查邮件是否避免了垃圾邮件过滤器或最终用户是否已阅读,那么这超出了SES的范围(尽管他们努力确保可传递性)。
答案 1 :(得分:3)
我们使用Bouncely.com。您只需将ReturnPath
设置为bounces@bouncely.com
即可跟踪所有退回和垃圾邮件报告。它还有一个API,允许我们自动取消订阅用户。
答案 2 :(得分:0)
使用Amazon Simple Notification Service并定义HTTP端点,以便在电子邮件退回时接收通知。效果很好。