php - 使用 Laravel 5,如何确定 Mailgun 电子邮件是否已成功发送?

标签 php api laravel-5 mailgun

我正在使用 Laravel 5 中的原生 Mailgun 驱动程序来发送电子邮件

\Mail::send('emails.notification', $data, function($message) use ($data)
{
  $message->to('name@gmail.com', 'Joe Bob')->subject("Headline here");
});

效果很好,正在接收电子邮件,但我想知道如何从 Mailgun 获得回复,让我知道电子邮件已发送。

我怎样才能获得这些信息?

最佳答案

要了解电子邮件的状态,您可以使用 Mailgun webhooks。在 Mailgun 管理区域中,您可以指定 Mailgun 在处理完您的电子邮件后将发布到的 Webhook URL。

确保您用作 webhook 的任何 url 存在于您的应用程序中,并且在您使用的任何 Controller 中都有路由和方法。一旦您的应用程序收到发布的数据,您就可以解析发送的数据并确定电子邮件的状态。然后您可以更新您的数据库或任何您需要做的事情。

要识别哪封电子邮件,您需要在电子邮件中添加一些自定义 header ,以便稍后识别。

有关如何执行此操作的更多详细信息,请参阅此答案:Using Laravel's Mailgun driver, how do you (gracefully) send custom data and tags with your email?

webhook url 需要有效才能工作,所以如果你在本地使用 laravell homestead 进行测试,你可以看看 ngrok,它允许你将本地环境隧道连接到一个 url 以用于测试目的。

关于php - 使用 Laravel 5,如何确定 Mailgun 电子邮件是否已成功发送?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35766576/

相关文章:

php - 使用 alamofire 4 在 swift 4 中上传图像,php 在更新版本中不起作用

php - Amazon Webservice 上的 mySQL RDS 实例性能

django - 具有多个值的 Tastypie 过滤

javascript - 如何将 jQuery ng-repeat {{x.something}} 传递给 javascript api url,如/api/get_now/{{x.something}}

python - Dropbox Python API : File size detection may have failed

php - Laravel 的 Eloquent public static function "create"在 Model.php 中发生了什么?

php - Laravel 5 中的单例类

php - 为 MySQL 解析一个大的 XML 文件

php - 使用 Guzzle/Goutte 时限制请求大小

php - 在 Laravel 中编辑电子邮件模板