我使用 AWS PHP SDK 成功发送了电子邮件。是否可以通过使用发送时生成的 messageId 来知道是否已阅读电子邮件。
一般来说,没有办法知道是否有人阅读了一封电子邮件。有一些技巧,例如在 URL 中引用带有跟踪 ID 的图像(如 here 所述),但许多电子邮件客户端默认阻止外部图像。
实际上没有任何“代码”可以共享,因为绝大多数是通过 AWS 设置的,并且他们已经有很好的示例/说明。所以我会指出去哪里。
基础监控
您可以查看是否已投递、退回、是否已自动回复或是否收到投诉。如果您还没有这样做,您应该控制退回/投诉的数量。
设置:
澄清一下:这真的是必须的,除非你手动监控你的反弹。
您的自定义 PHP 代码将处理到达 SQS 的消息。 AWS 控制台还为您提供了一些工具来模拟退回。
$aNotification = $msg->body;
// Then test for specific actions, eg for a bounce
if ($aNotification['notificationType'] == 'Bounce') {
/* Example Message:
{
bounce: {
bounceType: 'Permanent',
bounceSubType: 'General',
bouncedRecipients: [
{
emailAddress: '[email protected]',
action: 'failed',
status: '5.1.1',
diagnosticCode: 'smtp; 550 5.1.1 user unknown'
}
],
timestamp: '2020-10-08T04:53:57.551Z',
feedbackId: '01000175068f0471-e71a0ff7-f7f3-4c96-9d72-ff1526c4345a-000000',
remoteMtaIp: '3.225.199.89',
reportingMTA: 'dsn; a8-82.smtp-out.amazonses.com'
},
mail: {
timestamp: '2020-10-08T04:53:57.000Z',
source: '[email protected]',
sourceArn: 'arn:aws:ses:us-east-1:285949941349:identity/[email protected]',
sourceIp: '3.24.70.204',
sendingAccountId: '285949941349',
messageId: '01000175068f027d-a5d51815-af50-490a-9550-a1a8975d30f6-000000',
destination: [ '[email protected]' ]
}
}
*/
高级监控(包括读取)
设置完成后,“读取”方法可以利用 SNS 和 SQS,但需要在控制台上进行稍微不同的设置。
警告:跟踪读取的能力可能有效也可能无效,但这是您可以使用 AWS 提供的工具的方式。