Laravel - Gửi Email

Giới thiệu

Xin chào các Laravel master tương lai! Hôm nay, chúng ta sẽ cùng nhau khám phá thế giới thú vị của việc gửi email với Laravel. Là người thầy công nghệ máy tính gần gũi của bạn, tôi sẽ hướng dẫn bạn từng bước trong hành trình này. Đừng lo lắng nếu bạn chưa từng viết một dòng mã trước đây - chúng ta sẽ bắt đầu từ những điều cơ bản nhất và dần dần nâng cao. Cuối cùng của hướng dẫn này, bạn sẽ có thể gửi email như một chuyên gia!

Laravel - Sending Email

Laravel là gì?

Trước khi chúng ta bắt đầu gửi email, hãy dành một chút thời gian để hiểu Laravel là gì. Laravel là một khung công tác PHP mạnh mẽ giúp việc phát triển web trở nên dễ dàng. Hãy tưởng tượng nó như một bộ công cụ đầy đủ các phụ kiện thú vị để xây dựng các trang web và ứng dụng web tuyệt vời. Nó giống như một cây kéo đa năng cho phát triển web!

Tại sao gửi email với Laravel?

Bạn có thể đang tự hỏi, "Tại sao chúng ta cần gửi email từ ứng dụng web của mình?" Hãy tưởng tượng bạn đang quản lý một cửa hàng trực tuyến. Bạn sẽ muốn gửi xác nhận đơn hàng, cập nhật vận chuyển, và thậm chí là ưu đãi sinh nhật cho khách hàng của mình. Đó là lúc chức năng email của Laravel phát huy tác dụng!

Cấu hình Laravel để gửi email

Bước 1: Cấu hình

Trước hết, chúng ta cần告诉 Laravel cách gửi email. Mở file .env của bạn (giống như một cuốn nhật ký bí mật cho ứng dụng Laravel của bạn) và thêm các dòng sau:

MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=your_username
MAIL_PASSWORD=your_password
MAIL_ENCRYPTION=tls

Thay thế your_usernameyour_password bằng thông tin tài khoản thực tế của bạn. Để kiểm tra, tôi khuyên bạn nên sử dụng Mailtrap - nó giống như một sân chơi cho email!

Bước 2: Tạo một Mailable

Bây giờ, hãy tạo Mailable đầu tiên của chúng ta. Bạn có thể hỏi, "Mailable là gì?" Đó là như một bản đồ cho email của bạn. Chạy lệnh này trong terminal của bạn:

php artisan make:mail WelcomeMail

Lệnh này sẽ tạo một file mới trong app/Mail/WelcomeMail.php. Hãy mở file này và thêm một chút nội dung:

<?php

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;

class WelcomeMail extends Mailable
{
use Queueable, SerializesModels;

public function __construct()
{
//
}

public function build()
{
return $this->view('emails.welcome');
}
}

Điều này告诉 Laravel sử dụng một view gọi là welcome trong thư mục emails cho nội dung email của chúng ta.

Bước 3: Tạo view cho email

Hãy tạo view đó! Tạo một file mới tại resources/views/emails/welcome.blade.php và thêm một chút HTML:

<!DOCTYPE html>
<html>
<head>
<title>Chào mừng bạn đến với ứng dụng của chúng tôi!</title>
</head>
<body>
<h1>Chào mừng bạn!</h1>
<p>Chúng tôi rất vui mừng được chào đón bạn. Hãy chuẩn bị cho một hành trình tuyệt vời!</p>
</body>
</html>

Gửi email đầu tiên

Bây giờ đến phần thú vị - thực sự gửi email! Hãy tạo một controller để xử lý điều này. Chạy lệnh:

php artisan make:controller MailController

Mở file controller mới và thêm phương thức này:

<?php

namespace App\Http\Controllers;

use App\Mail\WelcomeMail;
use Illuminate\Support\Facades\Mail;

class MailController extends Controller
{
public function sendWelcomeEmail()
{
Mail::to('[email protected]')->send(new WelcomeMail());
return 'Email đã được gửi thành công!';
}
}

Phương thức này thực hiện hai điều:

  1. Nó告诉 Laravel gửi WelcomeMail đến '[email protected]'.
  2. Nó trả về một thông báo thành công.

Kiểm tra email

Để kiểm tra, thêm một route mới trong file routes/web.php của bạn:

Route::get('/send-welcome-email', [MailController::class, 'sendWelcomeEmail']);

Bây giờ, khi bạn truy cập /send-welcome-email trong trình duyệt, nó sẽ kích hoạt quá trình gửi email!

Tính năng email nâng cao

Khi bạn đã thành thạo các tính năng cơ bản, Laravel cung cấp một số tính năng nâng cao thú vị cho email:

Tính năng Mô tả
Đính kèm Thêm tệp vào email
Queue Gửi email trong nền
Markdown Sử dụng Markdown để viết email
Định dạng địa phương Gửi email bằng các ngôn ngữ khác nhau

Hãy xem cách thêm một đính kèm:

public function build()
{
return $this->view('emails.welcome')
->attach(public_path('/files/terms.pdf'), [
'as' => 'terms.pdf',
'mime' => 'application/pdf',
]);
}

Điều này đính kèm một tệp PDF vào email của bạn. Thật tuyệt vời phải không?

Kết luận

Chúc mừng! Bạn đã học cách gửi email bằng Laravel. Nhớ rằng, thực hành làm cho hoàn hảo, vì vậy đừng ngại thử nghiệm với các thiết kế và tính năng email khác nhau. Ai biết được? Bạn có thể sẽ tạo ra nền tảng tiếp thị email tiếp theo lớn!

Nhớ rằng, trong thế giới lập trình, lỗi là những cơ hội để học hỏi. Vậy nếu điều gì đó không hoạt động lần đầu tiên, hãy thở sâu, gỡ lỗi, và thử lại. Bạn có thể làm được!

Chúc bạn lập trình vui vẻ, và hy vọng email của bạn luôn đến đích!

Credits: Image by storyset