Можно ли получить ответ Mail в Laravel после Mail: на вызываемый метод?Где лучше всего это сделать?
Mail::to($order->email)
->send(new ThankYouMail($order->fresh()));
Я использую Sendgrid в качестве драйвера почты Laravel и хочу получить messageID, чтобы использовать его для последующих перехватов Sendgrid (получения статуса доставки по электронной почте и т. Д.).
public function build()
{
$from = 'info@domain.com';
$subject = 'Thank You for Ordering';
$name = 'Name XYZ';
$order_id = (string)$this->order->id;
$headerData = [
'category' => 'Order',
'unique_args' => [
'OrderID' => $order_id
]
];
$header = $this->asString($headerData);
$this->withSwiftMessage(function ($message) use ($header) {
$message->getHeaders()
->addTextHeader('X-SMTPAPI', $header);
});
return $this->view('mails.thank-you')
->from($from, $name)
->replyTo($from, $name)
->subject($subject);
}
ОБНОВЛЕНИЕ: 2019/06/25
Если кто-то хочет получить и сохранить статусы почты, это лучшее решение для использования Sendgrid Event Webhook.
- Возможно, вы прикрепите (к электронному письму) уникальный аргумент, такой как OrderID, во время процесса отправки электронного письма (см. API Sendgrid или мой пример выше).
- После этого вам нужно будет создать API POSTмаршрут для получения / хранения данных электронной почты Webhook, где вы можете отфильтровать / прицелиться и подключить данные статуса.