Laravel gửi thư mà không cần smtp

Laravel cung cấp một cách dễ dàng và gọn gàng để gửi email mà không gặp bất kỳ rắc rối và khó khăn nào khi sử dụng Mailable Class

Trong bài viết này, tôi sẽ chỉ cho bạn cách dễ dàng gửi email trong Laravel và cách tạo mẫu email bằng cách sử dụng markdown

Những điều bạn cần biết về Laravel Mail

Nếu bạn muốn gửi email từ ứng dụng Laravel của mình, bạn cần biết về Laravel Mail API. API đơn giản này được xây dựng dựa trên thư viện Swiftmailer phổ biến. Bạn có thể định cấu hình nó để sử dụng SMTP, Mailgun, Postmark, Amazon SES hoặc Sendmail. Bạn cũng có thể sử dụng API đơn giản để gửi email trực tiếp từ mã PHP của mình. Laravel cung cấp nhiều trình điều khiển thư để gửi email giúp dễ dàng gửi email bằng cách sử dụng bất kỳ tích hợp nào theo ý thích của bạn

Laravel Mail API giúp dễ dàng gửi các mẫu email đẹp. Bạn có thể tạo một lớp Mailable và một hàm công khai build() trả về mẫu email của bạn

Thật dễ dàng để bắt đầu với Laravel Mail. Chỉ cần định cấu hình cài đặt SMTP của bạn và bạn đã sẵn sàng để sử dụng

Làm thế nào để bạn gửi Email trong Laravel?

Để gửi một email trong Laravel, bạn có thể làm theo các bước sau

Bước 1. Cài đặt Laravel

Bạn có thể tạo một dự án Laravel mới bằng lệnh laravel new

laravel new test

Bước 2. Tạo một lớp có thể gửi thư

Bạn có thể sử dụng chế tạo. lệnh mail artisan trong Laravel. Điều này sẽ tạo ra một lớp Mailable có chức năng build() nơi logic thư của bạn sẽ được thêm vào

Bạn có thể chỉ định chủ đề email và nội dung của email, chẳng hạn như hình ảnh, tệp đính kèm và trả lời địa chỉ trong số những người khác

php artisan make:mail OrderMail

Lệnh này sẽ tạo một Mailable Class trong thư mục app/Mail

markdown('emails.orders');
    }
}

Ví dụ về thư sử dụng Mẫu Markdown

Một trong những lợi ích chính của laravel là nó có hỗ trợ markdown. Bạn có thể tạo một mẫu email bằng cách sử dụng markdown. Điều này cho phép bạn có chế độ xem soạn sẵn của email mà bạn có thể tùy chỉnh theo ý thích của mình hoặc sử dụng nguyên trạng

Bạn có thể sửa đổi make. lệnh thư và thêm một cờ để chỉ định phần đánh dấu nào sẽ được Lớp có thể gửi thư của bạn sử dụng. Mẫu đánh dấu là một tệp phiến được đặt trong thư mục “email”

php artisan make:mail OrderMail --markdown=emails.orders

Điều này tạo ra một tệp lưỡi đánh dấu mặc định trong thư mục tài nguyên/lượt xem/email

@component('mail::message')
# Introduction

The body of your message.

@component('mail::button', ['url' => ''])
Button Text
@endcomponent

Thanks,
{{ config('app.name') }} @endcomponent

Sử dụng một kịch bản đơn giản của một thư đặt hàng, bạn có thể chuyển một số dữ liệu mặc định cho phần đánh dấu thông qua lệnh with() trong Lớp có thể gửi thư. Bạn có thể sử dụng hàm tạo để nhận dữ liệu từ các lớp khác

Bạn có thể cập nhật logic của lớp Mailable

user = $user;
        $this->order = $order;
    }

    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
        return $this->markdown('emails.orders')
            ->subject('Your Order is being Processed')
            ->with([
                'order' => $this->order,
                'customer' => $this->user,
                'order_url' => URL::route('orders.show', $this->order->id)
            ]);
    }
}

Bước tiếp theo là thêm nội dung vào mẫu lưỡi đánh dấu

@component('mail::message')
Hello {{$customer->name}},

Your Order No.{{$order->id}} has been placed successfully and is now being processed

You can view your order details using the link below.

@component('mail::button', ['url' => $order_url])
View Order
@endcomponent

Regards,
{{ config('app.name') }} @endcomponent

Nếu bạn muốn tùy chỉnh Laravel Mail Components, bạn có thể xuất bản nội dung và thay đổi chúng theo ý thích của mình bằng lệnh này

php artisan vendor:publish --tag=laravel-mail

Bước 3. Gửi email trong Laravel

Khi bạn đã thiết lập mẫu email, giờ là lúc gửi email. Bạn có thể sử dụng Mail Facade để gửi email. Nó đi kèm với rất nhiều phương thức nhưng quan trọng nhất là phương thức to(). Phương pháp này xác định nơi email sẽ được gửi. Bạn có thể truyền email của người dùng dưới dạng tham số và Laravel sẽ gửi email đến email được chỉ định

Phương thức quan trọng tiếp theo là phương thức send(). Phương pháp này cho phép chúng tôi chỉ định Trường hợp thư có thể gửi được. Đây là nơi bạn chỉ định lớp Mailable mà bạn đã tạo trước đó

________số 8

Bạn có thể cập nhật Mặt tiền để bao gồm Lớp có thể gửi thư của mình

use Illuminate\Support\Facades\Mail;
 
$user = User::find($id)?? auth()->user();
$order = Orders::find($id);
Mail::to($user->email)->send(new OrderMail($order, $user));

Email có thể được xếp hàng đợi và gửi trong nền giúp ứng dụng của bạn thậm chí còn nhanh hơn

Trước khi gửi email, trước tiên bạn cần cập nhật cấu hình thư

Bạn có thể đặt các chi tiết mặc định trong tệp env

php artisan make:mail OrderMail
0

Khi bạn đã đặt cấu hình thư, bây giờ bạn có thể bắt đầu gửi email từ Ứng dụng Laravel của mình

Bước 4. Kiểm tra email trong Laravel

Laravel giúp dễ dàng kiểm tra email bằng cách sử dụng tệp nhật ký laravel, mailhog hoặc Mailtrap dưới dạng tích hợp của bên thứ ba. Các dịch vụ này cung cấp máy chủ SMTP giả từ đó bạn có thể kiểm tra và xác minh rằng email của mình được định dạng chính xác

Tất cả những gì bạn cần làm là thay đổi cấu hình thư trong tệp env và sử dụng thông tin đăng nhập của bất kỳ máy chủ SMTP giả mạo nào

Ví dụ, sử dụng Mailtrap, bạn có thể thấy trực quan cách định dạng email

Laravel gửi thư mà không cần smtp
Email mẫu sử dụng Markdown

Nhà cung cấp dịch vụ gửi email bên thứ ba nào được hỗ trợ trong Laravel?

Laravel hỗ trợ một số nhà cung cấp dịch vụ gửi email bên thứ ba, bao gồm Mailgun, Postmark, Amazon SES và SendGrid. Mỗi nhà cung cấp đều có điểm mạnh và điểm yếu riêng, vì vậy điều quan trọng là chọn nhà cung cấp phù hợp nhất với nhu cầu của bạn

Nếu bạn thích sử dụng máy chủ SMTP của riêng mình, hãy đảm bảo rằng cổng SMTP của máy chủ của bạn không bị chặn. Hầu hết các dịch vụ VPS như Digital Ocean đều chặn cổng 25(SMTP) khiến việc gửi và nhận email trên máy chủ của bạn trở nên khó khăn

Tuy nhiên, các dịch vụ khác như Contabo và Kamatera không chặn cổng 25 giúp dễ dàng lưu trữ máy chủ thư của riêng bạn

Nếu bạn thích lưu trữ máy chủ thư của riêng mình thay vì sử dụng nhà cung cấp dịch vụ email bên thứ ba, thì bạn có thể đọc bài viết này

Thật tốt khi lưu ý rằng việc lưu trữ máy chủ thư của riêng bạn đi kèm với một số nhược điểm như email có thể được gửi đến thư mục thư rác. Điều này là do IP máy chủ thư của bạn vẫn còn mới so với các máy chủ SMTP email khác và nó sẽ yêu cầu bạn khởi động IP của mình để nó có được danh tiếng tốt trong số các máy chủ khác

Đây là lý do tại sao hầu hết mọi người thích sử dụng nhà cung cấp dịch vụ email bên thứ ba để bạn tập trung hơn vào những vấn đề quan trọng

Tại sao nên sử dụng Laravel để gửi email?

Một trong những tính năng tuyệt vời của Laravel là hệ thống thư sẵn có của nó. Điều này giúp bạn dễ dàng gửi email từ ứng dụng của mình mà không cần phải thiết lập một máy chủ thư riêng. Thông qua API Thư mạnh mẽ của nó, bạn có thể kết nối với bất kỳ nhà cung cấp dịch vụ Email nào và gửi email của bạn một cách dễ dàng

Gửi email trong Laravel bằng Máy chủ SMTP của Gmail

Hầu hết mọi người thích sử dụng tài khoản Gmail mặc định của họ làm máy chủ SMTP cho Ứng dụng Laravel của họ vì nó miễn phí. Trong phần này, tôi sẽ chỉ cho bạn cách sử dụng Gmail làm máy chủ SMTP để gửi Email Laravel của bạn

Định cấu hình Tài khoản Google

Trước tiên, bạn cần định cấu hình một số cài đặt bảo mật trong tài khoản Gmail của mình. Để làm như vậy, hãy đăng nhập vào tài khoản Gmail của bạn và chọn “Quản lý tài khoản Google của bạn” từ hồ sơ của bạn

Sau đó bạn cần kích hoạt xác minh 2 bước

Laravel gửi thư mà không cần smtp
Trước khi bật Xác minh 2 bước

Khi đã kích hoạt xác minh 2 bước, bạn sẽ vào được phần Mật khẩu ứng dụng

Laravel gửi thư mà không cần smtp
Sau khi bật Xác minh 2 bước

Nhấp vào phần Mật khẩu ứng dụng và tạo mật khẩu mới cho Ứng dụng Thư Laravel của bạn

Chọn Ứng dụng Thư và thiết bị Tùy chỉnh

Laravel gửi thư mà không cần smtp

Laravel gửi thư mà không cần smtp
Tạo mật khẩu ứng dụng mới

Cập nhật cấu hình thư

Khi bạn đã tạo mật khẩu ứng dụng của mình, bạn có thể cập nhật cấu hình thư của mình trong tệp env để sử dụng cấu hình SMTP của Gmail

php artisan make:mail OrderMail
1

Khi bạn đã đặt cấu hình, bạn được đặt để gửi email bằng Gmail miễn phí. Hãy nhớ rằng Gmail chỉ cho phép 500 email mỗi ngày, vì vậy nếu ứng dụng của bạn gửi nhiều email, bạn có thể xem xét các dịch vụ khác

Phần kết luận

Gửi email trong Laravel rất dễ dàng và cần thiết trong bất kỳ ứng dụng sẵn sàng sản xuất nào. Thông qua email, bạn có thể thu hút khách hàng và cũng tự động hóa một số tác vụ cần thiết cho một ứng dụng hoạt động đầy đủ. Trong bài viết này, chúng tôi đã giới thiệu cách thiết lập Triển khai thư đơn giản trong Laravel và cách định cấu hình máy chủ SMTP của Gmail để chúng tôi có thể sử dụng nó với ứng dụng Laravel của mình

Có nhiều cách bạn có thể gửi email trong Laravel. Một cách là lên lịch sử dụng Laravel Scheduler. Tôi hy vọng bài viết này là thông tin và tôi hy vọng bạn thích đọc nó. Cảm ơn bạn đã đọc

Làm cách nào để gửi email mà không cần máy chủ SMTP trong Laravel?

Cách đơn giản nhất để gửi tin nhắn là sử dụng phương thức QuickSend của lớp Smtp (phương thức này là tĩnh, không yêu cầu bạn phải . Phương thức QuickSend cho phép bạn gửi e-mail ngay cả khi bạn không có máy chủ chuyển tiếp SMTP.

Tôi có thể gửi email mà không cần máy chủ SMTP không?

Không có máy chủ SMTP, bạn không thể gửi email của mình đến đích . Khi bạn nhấp vào nút “gửi” từ ứng dụng email của mình, các email của bạn sẽ tự động được chuyển đổi thành một chuỗi mã và được chuyển đến máy chủ SMTP của bạn.

Làm cách nào để gửi thư mà không cần máy chủ SMTP trong php?

php $mail = PHPMailer mới(true); . gmail. com"; // đặt GMAIL làm máy chủ SMTP $mail->

Làm cách nào để gửi thư trong Laravel?

Laravel sử dụng thư viện SwiftMailer miễn phí có nhiều tính năng để gửi email . Sử dụng chức năng thư viện, chúng tôi có thể dễ dàng gửi email mà không gặp quá nhiều phức tạp. Các mẫu e-mail được tải theo cách tương tự như các dạng xem, nghĩa là bạn có thể sử dụng cú pháp Blade và đưa dữ liệu vào các mẫu của mình. gửi email.