Amazon SES 使用 AWS PHP SDK 获取电子邮件状态(已读或未读)

问题描述 投票:0回答:2

我使用 AWS PHP SDK 成功发送了电子邮件。是否可以通过使用发送时生成的 messageId 来知道是否已阅读电子邮件。

php email amazon-ses aws-php-sdk
2个回答
0
投票

一般来说,没有办法知道是否有人阅读了一封电子邮件。有一些技巧,例如在 URL 中引用带有跟踪 ID 的图像(如 here 所述),但许多电子邮件客户端默认阻止外部图像。


0
投票

实际上没有任何“代码”可以共享,因为绝大多数是通过 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 提供的工具的方式。

© www.soinside.com 2019 - 2024. All rights reserved.