Gởi email trong Laravel 8.x với Gmail SMTP Server

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}"

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 QueueableSerializesModels;

    /**
     * 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é.

Share this

Related Posts

Previous
Next Post »