Cấu hình và gửi thư điện tử (Email) với Gmail trong Laravel


Cập nhật: 11 tháng trước
Bài viết ngẫu nhiên:

   Trọn bộ bài giảng thiết kế, xây dựng website bằng PHP từ A-Z (Free)

   XD phần mềm quản lý điểm: Bài 16. Tạo chữ không nền trong PhotoShop để ghép vào Project và các nội dung khác

   Để học lập trình bạn nên lựa chọn ngôn ngữ lập trình nào?

   XD phần mềm Quản lý điểm: Bài 4. Thiết kế Form, Xử lý dữ liệu Bảng Học kỳ (select, insert, update, delete)

   Hướng dẫn chi tiết cách cấu hình và cài đặt Wordpress

   Phát triển một phần mềm hay một Website bạn cần làm những công việc gì?


Trong quá trình xây dựng Website, việc xác thực người dùng khi đăng ký tài khoản, xác thực địa chỉ Email khi quên mật khẩu hay gửi Email cho thành viên mỗi khi có tin bài mới là một công việc quan trọng. Trong bài viết này, tôi sẽ hướng dẫn các bạn xây dựng cấu hình để gửi Email trong Laravel

Bạn cần một địa chỉ Gmail không có xác thực bảo mật qua 2 lớp (không khuyên dùng) vì nếu Email của bạn đã được xác thực bảo mật qua hai lớp thì không thể gửi được Email (đăng nhập bằng mật khẩu và code điện thoại di động).

Tiếp đó, bạn cần cấu hình file .env như sau:

APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:hLwSXW0+cgSKYh5Ti42pjBRMlZGwDWbyan4PhCFAINA=
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL=http://dothanhspyb.com // Địa chỉ này là chạy trên Server, nếu là Localhost thì bạn cần cấu hình http://127.0.0.1:8000 hoặc tên miền ảo. 

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=blog_sample
DB_USERNAME=root
DB_PASSWORD=

BROADCAST_DRIVER=log
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=Địa chỉ email của bạn. VD: dothanhspyb@gmail.com
MAIL_PASSWORD=mật khẩu đăng nhập Gmail
MAIL_ENCRYPTION=tls

PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=

Tiếp đó, bạn mở file mail.php theo đường dẫn: app\config\mail.php và cấu hình như sau:

env('MAIL_DRIVER', 'smtp'),

    /*
    |--------------------------------------------------------------------------
    | SMTP Host Address
    |--------------------------------------------------------------------------
    |
    | Here you may provide the host address of the SMTP server used by your
    | applications. A default option is provided that is compatible with
    | the Mailgun mail service which will provide reliable deliveries.
    |
    */

    'host' => env('MAIL_HOST', 'smtp.gmail.com'),

    /*
    |--------------------------------------------------------------------------
    | SMTP Host Port
    |--------------------------------------------------------------------------
    |
    | This is the SMTP port used by your application to deliver e-mails to
    | users of the application. Like the host we have set this value to
    | stay compatible with the Mailgun e-mail application by default.
    |
    */

    'port' => env('MAIL_PORT', 587),

    /*
    |--------------------------------------------------------------------------
    | Global "From" Address
    |--------------------------------------------------------------------------
    |
    | You may wish for all e-mails sent by your application to be sent from
    | the same address. Here, you may specify a name and address that is
    | used globally for all e-mails that are sent by your application.
    |
    */

    'from' => [
        'address' => env('MAIL_FROM_ADDRESS', 'email của bạn@gmail.com'),
        'name' => env('MAIL_FROM_NAME', 'Thành Đỗ. Đào tạo Tin học trực tuyến'),
    ],

    /*
    |--------------------------------------------------------------------------
    | E-Mail Encryption Protocol
    |--------------------------------------------------------------------------
    |
    | Here you may specify the encryption protocol that should be used when
    | the application send e-mail messages. A sensible default using the
    | transport layer security protocol should provide great security.
    |
    */

    'encryption' => env('MAIL_ENCRYPTION', 'tls'),

    /*
    |--------------------------------------------------------------------------
    | SMTP Server Username
    |--------------------------------------------------------------------------
    |
    | If your SMTP server requires a username for authentication, you should
    | set it here. This will get used to authenticate with your server on
    | connection. You may also set the "password" value below this one.
    |
    */

    'username' => env('MAIL_USERNAME'),

    'password' => env('MAIL_PASSWORD'),

    /*
    |--------------------------------------------------------------------------
    | Sendmail System Path
    |--------------------------------------------------------------------------
    |
    | When using the "sendmail" driver to send e-mails, we will need to know
    | the path to where Sendmail lives on this server. A default path has
    | been provided here, which will work well on most of your systems.
    |
    */

    'sendmail' => '/usr/sbin/sendmail -bs',

    /*
    |--------------------------------------------------------------------------
    | Markdown Mail Settings
    |--------------------------------------------------------------------------
    |
    | If you are using Markdown based email rendering, you may configure your
    | theme and component paths here, allowing you to customize the design
    | of the emails. Or, you may simply stick with the Laravel defaults!
    |
    */

    'markdown' => [
        'theme' => 'default',

        'paths' => [
            resource_path('views/vendor/mail'), // Cái này không quan trọng
        ],
    ],

    // Cấu hình chạy Email:
    'stream' => [
        'ssl' => [
            'allow_self_signed' => true,
            'verify_peer' => false,
            'verify_peer_name' => false,
        ],
    ],

];

Có thể bạn cứ copy hết toàn bộ code và thay thế địa chỉ Email của bạn vào là Ok. Như vậy, chúng ta đã cấu hình xong Email, chúc bạn thành công!

Xem thêm

   So sánh giữa hai công nghệ xây dựng website: PHP và ASP.NET

   11 xu hướng thiết kế web trong năm 2019

   GIS là gì? Thành phần, chức năng, nhiệm vụ và ứng dụng của công nghệ GIS

   Bạn sẽ chọn ngành nào phù hợp với lĩnh vực Công nghệ Thông tin?

   Bạn hiểu thế nào là nghề lập trình? để bước vào nghề lập trình thì phải học những gì?

   Lập trình máy tính là gì? Các ngôn ngữ lập trình, phát triển phần mềm

   Tại sao bạn phải hiểu và có kỹ năng về lập trình hướng đối tượng?

   Xử lý hình ảnh (images) với Bootstrap CSS FrameWork phiên bản 4.x

   Để học lập trình bạn nên lựa chọn ngôn ngữ lập trình nào?

   Top 25 bài giảng có số lượt xem cao nhất thời điểm hiện tại

   Có gì khác biệt giữa HTML và HTML5?

   5 yếu tố quan trọng của định hướng thị giác trong thiết kế web

   Một số thẻ và Type quan trọng với HTML5 cần chú ý trong quá trình thiết kế website

Xem nhiều nhất

   Giáo trình hướng dẫn Microsoft PowerPoint 2016 từ cơ bản đến nâng cao

   Chia sẻ Full bộ lịch âm dương 2019 vector - File PNG, JPEG và AI (Adobe Illustrator)

   Hệ thống bài giảng e-Learning lớp Ứng dụng CNTT và các phần mềm vào đổi mới phương pháp dạy và học

   Thiết kế trò chơi ô chữ trong powerpoint (download miễn phí)

   Thực hành biên tập, thiết kế, chỉnh sửa Videos bằng Adobe Premiere

   Thiết lập hiệu ứng trống đồng quay trong Microsoft PowerPoint

   Trọn bộ Giáo trình Microsoft Word 2016 từ cơ bản đến nâng cao

   Hướng dẫn sử dụng phần mềm bảng tương tác thông minh ActivInspire

   Xây dựng Website tin tức bằng PHP và MySql theo phương pháp lập trình hướng đối tượng (mysqli Object Oriented)

   Cài đặt và sử dụng tính năng mới của Office 365 trên Office 2016

   Thực hành sử dụng phần mềm thiết kế đồ họa Adobe Illustrator

   Hướng dẫn thu âm, chỉnh sửa âm thanh, tăng giảm tone nhạc bằng phần mềm Adobe Audition CC

   Tạo câu hỏi trắc nghiệm với siêu liên kết (hyperlink) và Trigger với PowerPoint 2016

   Bài giảng Microsoft PowerPoint 2013 và 2016 từ cơ bản đến nâng cao

   Thực hành sử dụng phần mềm thiết kế đồ họa Corel Draw

   Dòng chữ chạy liên tục từ trái qua phải và đồng hồ đếm ngược trong PowerPoint