Я также ответил на ваш старый вопрос. Я думаю, что вы неправильно понимаете процесс. Здесь я создам полный пример для Laravel 6.x, но он должен быть таким же для старых версий.
1. Настройка почтового пистолета
Это самая простая часть. Просто измените файл services.php
с учетными данными mailgun и не забудьте запросить с помощью composer пакет guzzlehttp/guzzle
, иначе вы не сможете отправлять электронную почту. Затем измените файл .env
и установите MAIL_DRIVER
на mailgun
. Таким образом, Laravel будет знать, что он должен использовать этот драйвер для отправки электронной почты.
2. Создайте свою логику
Допустим, вам нужно отправлять электронную почту каждый раз, когда клиент создает и заказывает. У вас будет OrderController
где-то в вашей кодовой базе с методом store
, который создает заказ и сразу после этого отправляет электронное письмо. Что-то вроде
public function store(Request $request)
{
// Validate your request
$this->validate([...]);
// Create the order
$order = new Order();
$order->fill($request->only([...]));
// Save order
$order->save();
// Send confirmation email;
Mail::to(auth()->user())->send(new OrderCreated($order));
}
Поскольку вы установили драйвер почтового пистолета, фасад Mail
автоматически будет использовать класс MailgunTransport
.
3. Создайте слушателя
Как объяснено в мой другой ответ , установите слушателя в EventServiceProvider
. После создания прослушивателя вы можете получить идентификатор почтового пистолета следующим образом:
/**
* Handle the event.
*
* @param \Illuminate\Mail\Events\MessageSent $event
* @return void
*/
public function handle(MessageSent $event)
{
// Retrieve mailgun ID from the message headers
$id = $event->message->getHeaders()->get('X-Mailgun-Message-ID');
}