gpt4 book ai didi

php - 使用 Laravel Mail 类通过 AWS SES 发送电子邮件

转载 作者:行者123 更新时间:2023-12-04 11:56:03 25 4
gpt4 key购买 nike

我正在尝试使用 AWS SES 服务和 Laravel 邮件类 ( Illuminate\Support\Facades\Mail ) 发送电子邮件。

我想设置为ConfigurationSetName能够通过 AWS SNS 接收通知。

目前,我正在使用 SES 的 Laravel Mail 类,它正在工作,但没有通知。

有没有办法做到这一点?还是我必须始终使用 SesClient 来分配 ConfigurationSetName ?

最佳答案

根据AWS Documentation ,您可以指定 X-SES-CONFIGURATION-SET电子邮件的标题。

从 Laravel 的角度来看,最简单的方法是指定要从 Mailable 直接发送的 header :

public function build()
{
$this->markdown('emails.creditcard.added');

$this->withSwiftMessage(function ($message) {
$message->getHeaders()
->addTextHeader('X-SES-CONFIGURATION-SET', '####');
});
}

您也可以使用 Mail Facade 来实现,因为它有一个底层 Swift_Message实例。例如:
Mail::send('emails.creditcard.added', [], function ($message) use($user) {
$message->to($user->email)
->getSwiftMessage()
->getHeaders()
->addTextHeader('X-SES-CONFIGURATION-SET', '####');
});

如果您想将此标题添加到所有电子邮件中,您还可以收听 Illuminate\Mail\Events\MessageSending事件并从那里添加标题。
public function handle(MessageSending $event)
{
$headers = $event->message->getHeaders();
$headers->addTextHeader('X-SES-CONFIGURATION-SET', '####');
}

我也验证了它的工作原理。

关于php - 使用 Laravel Mail 类通过 AWS SES 发送电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54093420/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com