Thực hiện chức năng gửi mail trong project Laravel

Tram Ho

Lời nói đầu

Đầu xuân năm mới mình chợt nảy ra một ý định là sẽ gửi mail chúc mừng năm mới đến những người quen của mình, và đồng thời mình cũng nhận ra là trong series Laravel project của mình chưa đề cập đến chức năng cực kì quan trọng này. Vì vậy mình quyết định viết về một chức năng mà chắc chắn rằng trang web nào cũng sẽ cần đến.

  • Khi đăng kí tài khoản trên 1 website, việc đầu tiên là bạn sẽ phải vào mail để kích hoạt tài khoản.
  • Khi khách hàng đặt hàng trên website của bạn, bạn cần gửi mail xác nhận đến cho khách hàng.
  • Khi website có khuyến mãi, quảng cáo qua mail là một phương pháp cực kì đơn giản và hữu dụng.

Như vậy bạn đã thấy sự thiết thực của của chức năng gửi mail chưa nào? Và ở bài viết này mình sẽ đi vào tìm hiểu 2 nội dung chính, đó là:

  • Làm thế nào để có thể xay dựng được chức năng gửi mail?
  • Làm thế nào để test xem chức năng gửi mail đã hoạt động đúng hay chưa?

Giờ thì cùng bắt tay vào việc thôi nào!

Nội dung

Xây dựng chức năng gửi mail

  • Bước đầu tiên, để gửi được email, bạn sẽ phải cài đặt Guzzle HTTP library thông qua composer nhé:

  • Sau đó, chúng ta sẽ tạo một command để gọi chức năng gửi mail với câu lệnh:

    ta sẽ thu được file appConsoleCommandsSendMail có cấu trúc như sau:

  • Bước 2, chúng ta sử dụng câu lệnh php artisan make:mail NewYearMail để tạo class NewYearMail:

  • Bước 3, chúng ta sẽ tạo một blade cho nội dung của email:

Test chức năng gửi mail với Mailtrap

  • Trước hết hãy nói sơ qua về cách thức hoạt động của mailtrap đã nhé:

    • Bình thường để check được nội dung mail thì bắt buộc phải gửi mail đi thì mới xem được. Nhưng để test chức năng thì bạn sẽ phải vừa sửa-vừa test liên tục dẫn đến việc sẽ bị spam hòm thư.
    • Và Mailtrap giải quyết vấn đề đó bằng cách CÓ tạo mail, CÓ gửi đi nhưng sẽ BỊ GIỮ LẠI giữa đường và lưu trong hộp thư của mailtrap, không đến được người nhận nữa. Như vậy bạn sẽ tránh được tình trạng bị spam hộp thư hoặc sử dụng mail không có thật mà vẫn có thể check được nội dung các email gửi đi.
  • Sau khi bạn đăng kí tài khoản mailtrap thành công, truy cập vào bên trong hòm thư sẽ xuất hiện thông tin cấu hình như ảnh bên dưới. Và ở phần Integration thì bạn lựa chọn ngôn ngữ/framework tương ứng nhé. Như mình ở đây thì sẽ lựa chọn Laravel

Sau đó copy phần thông tin cấu hình bên dưới (LÀM 1 TRONG 2 thứ thôi nhé) vào:

  • Cấu hình trong .env:

  • HOẶC trong config/mail.php

Cài đặt mailtrap cũng chỉ đơn giản như vậy thôi, giờ thì cùng test thử xem nó đã hoạt động chưa nhé!

Giờ chúng ta sẽ chạy câu lệnh php artisan email:newyear 1 để gửi email cho user có id=1 và đây là kết quả mình thu được:

Tổng kết

Sau bài viết này, hi vọng các bạn đã có thể xay dựng được chức năng gửi email theo đúng ý trong sản phẩm website của mình. Nếu có bất cứ khó khăn gì trong quá trình thực hiện, bạn có thể comment xuống phía dưới hoặc đăng câu hỏi lên viblo để mọi người hỗ trợ nhé!

Cảm ơn các bạn đã theo dõi và hãy ủng hộ mình trong những bài viết tiếp theo nhé!

Tài liệu tham khảo

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo