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

时间:2017-07-25 05:24:52

标签: email amazon-web-services laravel-5.4 amazon-ses

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

我需要帮助。

1 个答案:

答案 0 :(得分:2)

我最近在这方面取得了成功。

我从亚马逊发送给我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

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

ProcessFailedEmail.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);
    }
}

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
];