Phía dưới là ví dụ thật đơn giản làm thế nào để gởi email trong Laravel sử dụng Gmail SMTP server.
Giả lập là bạn đã có sẵn ứng dụng Laravel, các bạn theo dõi từng bước bên dưới nhé.
Bước 1: Cấu hình SMTP Server trong file .env
MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=emailaddress@gmail.com
MAIL_PASSWORD=emailpassword
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=emailaddress@gmail.com
MAIL_FROM_NAME="${APP_NAME}"
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=emailaddress@gmail.com
MAIL_PASSWORD=emailpassword
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=emailaddress@gmail.com
MAIL_FROM_NAME="${APP_NAME}"
Gõ lệnh sau khi bạn điều chỉnh trong .env
#php artisan config:clear
Bạn cần bật tính năng "Less secure app access" của emailaddress@gmail.com sang chế độ ON nhé.
Bước 2: Tạo class Mail
Trong console, bạn gõ lệnh:
#php artisan make:mail TestMail
Một file tạo ra trong app/Mail/TestMail.php, có nội dung
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
class TestEmail extends Mailable
{
use Queueable, SerializesModels;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct()
{
//
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->subject('Email from Yours')
->view('email.testemail'); //folder email và file testemail.blade.php
}
}
Bước 3: Tạo Blade View
<body>
<h1>{{ 'Hello! This is email from Yours' }}</h1>
<p>{{ 'This is testing email is sent from Gmail smtp' }}</p>
<p>Thank you</p>
</body>
Bước 4: Thêm Route
Tạo route cho trình gởi email, thêm đoạn code sau vào file routes\web.php
Route::get('/sendemail', function () {
$details = [
'title',
'body'
];
\Mail::to('sento_email_address@dot.com')->send(new \App\Mail\TestEmail($details));
echo "Email is Sent.";
});
Bước 5: Chạy ứng dụng và kiểm tra
Chạy lệnh khởi động ứng dụng:
#php artisan serve
và truy cập:
http://localhost:8000/sendmail
Lần đầu tiên, có thể email sẽ bị vào thư mục spam của hộp thư bạn nhé.