使用 Laravel 处理 AWS SES 中的退回邮件和投诉

Bla*_*arl 5 email amazon-web-services amazon-ses laravel-5.4

我已配置Laravel为通过发送邮件,SES smtp并且工作正常。我想增加 24 小时的电子邮件配额,因此处理退回邮件和投诉部分。目前,我的配额是每24小时200封邮件,发送的邮件仅用于注册确认和密码重置。

我需要这方面的帮助。

小智 3

我最近在这方面取得了进展。

我从亚马逊发送给我的链接中执行了以下步骤https://aws.amazon.com/blogs/ses/handling-bounces-and-complaints/

设置以下 AWS 组件来处理退回通知:

  • 创建一个名为 ses-bounces-queue 的 Amazon SQS 队列。
  • 创建一个名为 ses-bounces-topic 的 Amazon SNS 主题。
  • 配置 Amazon SNS 主题以发布到 SQS 队列。
  • 配置 Amazon SES 以使用 ses-bounces-topic 向 ses-bounces-queue 发布退回通知。

然后我安装了这个包,因为 Out of the box, Laravel expects SQS messages to be generated in specific format https://github.com/dusterio/laravel-plain-sqs

我按照他们的设置说明创建了这个作业。我能够从任何格式的 SQS 测试消息中获取响应并启动此队列工作程序php artisan queue:work sqs-plain

处理失败电子邮件.php

namespace App\Jobs;

use Dusterio\PlainSqs\Jobs\DispatcherJob;
use Illuminate\Contracts\Queue\Job;

class ProcessFailedEmail extends DispatcherJob
{
    protected $data;

    function __construct($data = null)
    {
        parent::__construct($data);
    }


    public function handle(Job $job, $data)
    {
        var_dump($data);
    }
}
Run Code Online (Sandbox Code Playgroud)

sqs-plain.php

/**
 * List of plain SQS queues and their corresponding handling classes
 */
return [
    'handlers' => [
        'ses-bounces-queue' => App\Jobs\ProcessFailedEmail::class
    ],

    'default-handler' => App\Jobs\ProcessFailedEmail::class
];
Run Code Online (Sandbox Code Playgroud)