В этом уроке мы рассмотрим, как создать простую почтовую систему в Laravel без использования представлений и уведомлений. Мы сосредоточимся на программной отправке электронных писем с использованием встроенного Mail-фасада Laravel. К концу этого руководства вы получите базовое представление о том, как отправлять электронные письма в Laravel без необходимости просмотра или уведомлений.
Предварительные требования:
Прежде чем мы начнем, убедитесь, что у вас соблюдены следующие требования:
- Laravel установлен в вашей системе.
- Базовые знания о фасаде Laravel Mail
Шаг 1. Настройка конфигурации почты
Сначала давайте настроим наш почтовый драйвер в файле .env. Откройте файл .envв своем проекте Laravel и установите следующие переменные:
MAIL_DRIVER=log
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=your-email@example.com
MAIL_FROM_NAME=Your Name
Обратите внимание, что в этом примере мы используем драйвер log, который регистрирует отправленные электронные письма, а не отправляет их. Это полезно для целей тестирования.
Шаг 2. Создание почтового класса
Далее давайте создадим почтовый класс для обработки логики отправки электронной почты. В своем терминале выполните следующую команду, чтобы создать новый почтовый класс:
php artisan make:mail SimpleMail
Эта команда создаст новый почтовый класс с именем SimpleMailв каталоге app/Mail.
Откройте файл app/Mail/SimpleMail.phpи обновите его, добавив в него следующий код:
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
class SimpleMail extends Mailable
{
use Queueable, SerializesModels;
/
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->subject('Your Subject')
->text('emails.simple_mail')
->with([
'message' => 'This is a sample email without a view or notification.',
]);
}
}
В приведенном выше коде мы определяем метод build, который задает тему электронного письма и определяет его содержимое. Мы используем метод text, чтобы предоставить тело письма напрямую, без использования представления. Вы можете настроить тему и текст в соответствии со своими потребностями.
Шаг 3. Отправка электронного письма
Теперь, когда у нас настроен класс почты, давайте отправим электронное письмо. Откройте нужный контроллер или команду, куда вы хотите отправить электронное письмо, и добавьте следующий код:
<?php
namespace App\Http\Controllers;
use App\Mail\SimpleMail;
use Illuminate\Support\Facades\Mail;
class MailController extends Controller
{
public function sendEmail()
{
$email = new SimpleMail();
Mail::send($email);
return "Email sent successfully!";
}
}
В приведенном выше коде мы создаем экземпляр класса SimpleMailи используем метод Mail::sendдля отправки электронного письма.
Шаг 4. Тестирование электронной почты
Чтобы протестировать функциональность электронной почты, вы можете добавить маршрут, который запускает метод sendEmailв вашем контроллере. Откройте файл routes/web.phpи добавьте следующий маршрут:
Route::get('/send-email', 'MailController@sendEmail');
Теперь, когда вы посещаете /send-emailв своем браузере, электронное письмо будет отправлено с использованием класса SimpleMail.
В этом уроке мы узнали, как создать простую почтовую систему в Laravel без использования представлений и уведомлений. Мы рассмотрели, как настроить почтовый драйвер, создать почтовый класс и программно отправлять электронные письма с помощью фасада Mail Laravel. Этот подход позволяет отправлять электронные письма напрямую, без необходимости просмотра или уведомлений, что делает его подходящим для простых почтовых систем.
Выполнив шаги, описанные в этом руководстве, вы теперь должны иметь базовое представление о том, как реализовать простую почтовую систему в Laravel без представлений и уведомлений.