我搜索了整个互联网,但没有发现我的问题。我在我的项目中使用 laravel 10 来发送批量邮件。 Laravel 正在将邮件发送到提供的邮箱。但问题是 有没有办法检查邮件是否成功发送给收件人的状态?
我在许多论坛中找到了使用 Mail::failures() 的解决方案。但是这个方法在laravel中已经不可用了。那么,获取邮件是否已送达收件人的状态的正确方法是什么?请帮忙。
我在控制器中的代码:
try {
foreach ($emails as $key => $email) {
$result = Mail::to($email)->send(new MarketingMail($email_content));
}
} catch (Exception $e) {
return response()->json([
'message' => 'Email not valid',
'status' => 500
], 500);
}
一种流行的营销方法,其中包含带有自定义 URL 的电子邮件图像。此 URL 已在您的路由中注册,并将电子邮件标记为已发送,然后返回图像。
例如
Route::get('/images/email-delivered-event/{email_id_or_any_identifier}', function ($email_id_or_any_identifier) {
$model = YourModel::findOrFail($email_id_or_any_identifier);
$model->is_delivered = true;
$model->save();
// Or Consider this as an event listener to your email delivered event you can use any action
// aslo you can return an empty response
});
您生成的图像 URL 应如下所示
https://yourdomain.com/images/email-delivered-event/4356349859348759
请注意,某些邮件客户端默认情况下不显示图像,这对他们不起作用。