Mailtrap.io. Thật đơn giản để kiểm tra việc gửi mail ở local

2nd Nov 2022
Mailtrap.io. Thật đơn giản để kiểm tra việc gửi mail ở local
Table of contents

Ở bài blog này mình xin được chia sẻ một cách rất đơn giản để test được gửi mail ở local trong khi thực hiện 1 chức năng gửi mail cho 1 web của bạn.

Tất nhiên đầu tiên thì bạn phải có chức năng gửi mail trên web của bạn, ở đây để lấy ví dụ cho các bạn, mình đã thự hiện 1 action gửi mail trên web sử dụng Laravel.

Vì chỉ thực hiện gửi mail, nên action mình khá đơn giản, chỉ là khi người dùng click vào button Sendmail thì sẽ chạy đến function sendMail trong MailController. Function được viết như sau:

<?php

namespace App\Http\Controllers;

use Illuminate\Support\Facades\Mail;

class MailController extends Controller
{
    public function sendMail()
    {
        Mail::send('mail', [], function ($message) {
            $message->to('[email protected]', 'Admin')
                ->subject("Subject to admin");
        });

        Mail::send('mail', [], function ($message) {
            $message->to('[email protected]', 'User')
                ->subject("Subject to user");
        });

        return redirect()->route('home');
    }
}

Như vậy khi người dùng click vào button Send mail thì laravel sẽ thực hiện action gửi mail cho 2 mail là [email protected] và [email protected].

Tiếp theo là bước đăng kí tài khoản tại MailTrap. Rất đơn giản, bạn chỉ cần đăng kí và đăng nhập bằng tài khoản github của mình. Tiếp theo bạn vào Hộp thư đến của mình sẽ ra được màn hình này:

Ở bài blog này mình xin được chia sẻ một cách rất đơn giản để test được gửi mail ở local trong khi thực hiện 1 chức năng gửi mail cho 1 web của bạn.

Click tiếp theo vào Demo inbox bạn sẽ thấy được phần SMTP settings như sau:

Ở bài blog này mình xin được chia sẻ một cách rất đơn giản để test được gửi mail ở local trong khi thực hiện 1 chức năng gửi mail cho 1 web của bạn.

Ở đây bạn đã thấy các thông tin của phần config email cần có để thêm vào file .env trong project của bạn. Bạn chỉ cần lấy nó vào điền vào trường phù hợp trong file .env của mình. Như ở project của mình như sau:

MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=ee5cd9cfd7e8de
MAIL_PASSWORD=80431015883209
MAIL_ENCRYPTION=null

Và dưới đây là thành quả, mail test đã được gửi trong inboxes của tài khoản mailtrap của mình:

Ở bài blog này mình xin được chia sẻ một cách rất đơn giản để test được gửi mail ở local trong khi thực hiện 1 chức năng gửi mail cho 1 web của bạn.

Trên đây là bài chia sẻ của mình về một cách đơn giản để có thể test được action gửi mail trong một project của bạn. Nó có ưu điểm là bạn có thể set up rất nhanh, và các mail của bạn sẽ được xuất hiện hết ở một inboxes. Tuy nhiên có rất nhiều cách để có thể test được nữa như sử dụng MailHogMailCatcher. Nhưng theo mình đây là một cách khá tiện dụng và dễ dùng. Cảm ơn các bạn đã đọc blog của mình.

Bạn thấy bài viết này như thế nào?
1 reaction

Add new comment

Image CAPTCHA
Enter the characters shown in the image.

Related Articles

Mỗi kết nối cơ sở dữ liệu được định nghĩa trong một mảng, với tên kết nối là khóa của mảng

Eager Loading là một kỹ thuật tối ưu hóa truy vấn cơ sở dữ liệu trong Laravel, giúp tăng tốc độ truy vấn và giảm số lượng truy vấn cần thiết để lấy dữ liệu liên quan đến một bản ghi.

Để sử dụng Eager Loading với điều kiện trong Laravel, bạn có thể sử dụng phương thức whereHas hoặc orWhereHas trong Eloquent Builder.

E hiểu đơn giản vầy nha. auth() hay Auth trong laravel là những function global hay class, nó cũng chỉ là 1 thôi

Xin chào các bạn, tuần này mình sẽ viết một bài về cách xử lý Real Time(thời gian thực) với Laravel và Pusher