Một tính năng quan trọng khác của Laravel là cung cấp việc sử dụng API rõ ràng và đơn giản, miễn phí và giàu tính năng thư viện - "SwiftMailer", được sử dụng để gửi email. Với sự trợ giúp của các chức năng thư viện, các nhà phát triển Laravel dễ dàng gửi email mà không gặp bất kỳ trở ngại nào. Các nhà phát triển có thể sử dụng cú pháp phiến để đưa dữ liệu vào một mẫu vì các mẫu email được tải giống như cách xem
Cú pháp trông giống như thế này
cú pháp
void send[string|array $view, array $data, Closure|string $callback]
- Ở đây
void
chỉ ra rằng điều này sẽ không trả lại bất kỳ giá trị nào string|array $view
cung cấp tên xem, có thông báo email
0 là tập hợp dữ liệu phải được chuyển để xemMail::send[['text'=>'text.view'], $data, $callback];
1 có khả năng tùy chỉnh chủ đề của người nhận và các chi tiết thư khác dưới dạng mộtMail::send[['text'=>'text.view'], $data, $callback];
2 được nhận dưới dạng thư thể hiệnMail::send[['text'=>'text.view'], $data, $callback];
Các phương pháp khác nhau của hệ thống gửi thư
Đối số thứ ba trong hàm trên lấy ví dụ là một tin nhắn và một số hàm sau giúp thực hiện tương tác gửi thư tốt hơn. đó là
- $message -> subject['Hướng dẫn về Laravel'];
- $message ->from['testuser@example. com', 'tên bất kỳ'];
- $message ->to['alex@example. com', 'Alex'];
Các phương pháp thường được sử dụng khác là
- $message ->sender['testuser@example. com', 'tên bất kỳ'];
- $message ->returnPath['testuser@example. com'];
- $message ->cc['testuser@example. com', 'tên bất kỳ'];
- $message ->bcc['neha@example. com', 'Neha'];
- $message ->replyTo['testuser@example. com', 'tên bất kỳ'];
- $message ->priority[4];
Để gửi thư văn bản thuần túy, bạn phải sử dụng cú pháp hiển thị bên dưới
Mail::send[['text'=>'text.view'], $data, $callback];
Toàn bộ cú pháp này ở định dạng mảng-khóa-giá trị, trong đó đối số đầu tiên có dạng mảng theo sau là văn bản và tên của chế độ xem dưới dạng cặp khóa-giá trị
Các bước để gửi email trong Laravel
Vì vậy, chủ đề là gửi email qua tài khoản Gmail và cần tệp môi trường Laravel, đó là. env, để định cấu hình với tài khoản Gmail của bạn. Tệp môi trường chứa tập lệnh
MAIL_DRIVER = smtp
MAIL_HOST = smtp.gmail.com
MAIL_PORT = 587
MAIL_USERNAME = developers-Gmail-username
MAIL_PASSWORD = developers-password
MAIL_ENCRYPTION = tls
Tiếp theo, bạn phải xóa bộ đệm và khởi động lại máy chủ Laravel của mình. Đối với điều đó, bạn phải sử dụng các lệnh sau
php artisan config:cache
Sau đó, để tạo MailController, bạn phải gõ và chạy lệnh dưới đây
php artisan make:controller MailController --plain
Sau đó, bạn phải thiết lập nội dung bên trong của MailController. php và để làm được điều này, bạn phải viết đoạn script được đề cập bên dưới
Gửi email là một trong những tính năng phổ biến nhất mà mọi ứng dụng web cung cấp. Một số trang web sử dụng tính năng gửi email của họ để gửi bản tin và một số sử dụng tính năng này để thu thập phản hồi phản hồi
Các trang web hỗ trợ PHP sử dụng phương thức Mail[] php để gửi email. Tuy nhiên, trong trường hợp này, bảo mật thường bị xâm phạm vì đây không phải là cách an toàn nhất để gửi/nhận email trên trang web
Để gửi email trong Laravel, framework cung cấp một số tính năng nâng cao để làm việc với. Nó có các gói khác nhau có sẵn trên thị trường giúp tích hợp chức năng gửi email dễ dàng.
Tại sao nên sử dụng Laravel để gửi email?
Laravel cung cấp nhiều công cụ khác nhau để định cấu hình email trong trang web. Bạn có thể kiểm tra một số tùy chọn dưới đây.
- Laravel đề xuất sử dụng trình điều khiển cho SMTP, Mailgun, SparkPost, Amazon SES và sendmail
- Laravel cung cấp các tùy chọn để xếp hàng email
- Trong Laravel, bạn có thể sử dụng hỗ trợ Markdown có sẵn trong một số khung. Nó giúp tạo các mẫu tuyệt vời như nút hoặc bảng điều khiển, v.v.
- Bạn có thể đính kèm các tệp có định dạng khác nhau [JPEG, PDF], v.v. bằng cách sử dụng hệ thống Tạo mẫu của Laravel, cho phép bạn sử dụng nhiều mẫu khác nhau và định cấu hình chế độ xem
Phương pháp bản địa hóa để đặt ngôn ngữ mong muốn cho người dùng cụ thể
Ngừng lãng phí thời gian trên máy chủ
Cloudways xử lý việc quản lý máy chủ cho bạn để bạn có thể tập trung vào việc tạo các ứng dụng tuyệt vời và giữ cho khách hàng của mình hài lòng
Cài đặt Laravel
Với mục đích của hướng dẫn này, tôi giả sử rằng bạn đã cài đặt ứng dụng Laravel trên máy chủ web
[email protected]'] ->view['emails.CloudHosting.Product]; }
Địa chỉ thư toàn cầu
Nếu thư của bạn giống nhau trên tất cả các ứng dụng web của chúng tôi thì bạn có thể cấu hình trước trong config/mail. php trong Laravel bằng cách sử dụng đoạn mã sau
Nếu bạn đang sử dụng cùng một địa chỉ email trên toàn bộ ứng dụng, thì trước tiên bạn phải định cấu hình địa chỉ đó trong tệp config/mail. tập tin php. Chỉ cần sao chép và dán đoạn mã sau
'from' => ['address' => '[email protected]', 'name' => 'App Name'],
Cài đặt View cho Laravel Mail
Trong phương thức xây dựng của lớp có thể gửi thư, bạn có thể sử dụng phương thức xem để chỉ định mẫu nào sẽ được sử dụng để gửi thư khi hiển thị nội dung của email
public function build[] { return $this->view['emails.CloudHosting.Product]; }
Xem dữ liệu
Bạn muốn chuyển một số dữ liệu đến chức năng xem mà bạn có thể sử dụng khi hiển thị HTML của email? .
Đầu tiên, bất kỳ thuộc tính công khai nào được xác định trong lớp có thể gửi thư của bạn sẽ tự động có sẵn cho chế độ xem. Ví dụ: bạn có thể truyền dữ liệu vào hàm tạo của lớp có thể gửi thư của mình và đặt dữ liệu đó thành các thuộc tính công khai được xác định trên lớp
name = $name; } public function build[] { return $this->view['emails.name']; } }
Khi dữ liệu đã được đặt thành thuộc tính công khai, nó sẽ tự động có sẵn trong chế độ xem của bạn
Tạo mẫu email Laravel
Name: {{ $name }}
Định cấu hình các tuyến đường
Tạo tuyến đường bằng cách dán đoạn mã sau vào web. tập tin php
Route::get['/send/email', '[email protected]'];
Tập tin điều khiển
Bây giờ, hãy tạo một tệp điều khiển với bất kỳ tên ưa thích nào của bạn. Đối với hướng dẫn này, tôi sẽ dán đoạn mã sau vào HomeController
public function mail[] { $name = 'Cloudways'; Mail::to['[email protected]']->send[new SendMailable[$name]]; return 'Email sent Successfully'; }
Cấu hình cho Laravel Gmail SMTP
Cài đặt email trong Laravel với Gmail SMTP khá dễ dàng. Trước hết, bạn cần cấu hình các cài đặt cơ bản. Để thực hiện bước này, Dán đoạn mã sau vào. env theo cài đặt của bạn
MAIL_DRIVER=smtp MAIL_HOST=smtp.googlemail.com MAIL_PORT=465 MAIL_USERNAME=ENTER_YOUR_EMAIL_ADDRESS[GMAIL] MAIL_PASSWORD=ENTER_YOUR_GMAIL_PASSWORD MAIL_ENCRYPTION=ssl
Trong cài đặt nêu trên, bạn có thể định cấu hình MAIL_DRIVER là SMTP, MAIL_HOST cho Gmail là smtp. thư Google. com, MAIL_ PORT cho Gmail là phương thức 465 và MAIL_ENCRYPTION là SSL
Vì chúng tôi đang sử dụng Gmail SMTP với Laravel, chúng tôi cần thay đổi một số cài đặt bảo mật trên tài khoản Google của mình để cấp quyền truy cập cho các ứng dụng kém an toàn hơn
Cài đặt tài khoản Gmail
Sau khi định cấu hình thành công cài đặt cho ứng dụng Laravel của bạn, hãy truy cập tài khoản Gmail của bạn
[email protected]'] ->view['emails.CloudHosting.Product]; } 0
6 công cụ gửi email hàng đầu cho Laravel
Có nhiều gói email và nguồn có sẵn cho Laravel. Hãy xem một số công cụ được sử dụng phổ biến nhất trong Laravel để gửi email
- bẫy thư
- súng thư
- gửi lưới
- Mandrill
- người gửi thư nhanh
- mailchimp
Tích hợp Mailtrap với Laravel
Mailtrap có một máy chủ mặc định trong Laravel, vì vậy bạn chỉ cần nhập thông tin đăng nhập của mình vào đó. Chỉ cần cài đặt Laravel bằng cách sử dụng Nền tảng lưu trữ được quản lý trên nền tảng đám mây và dán các cấu hình sau vào. tập tin env
[email protected]'] ->view['emails.CloudHosting.Product]; } 1
[email protected]'] ->view['emails.CloudHosting.Product]; } 2
Tạo lớp Mailable cho Mailtrap
Bây giờ, tạo một lớp Mailable bằng cách dán lệnh sau vào SSH Terminal
*/ public function build[] { return $this->from['[email protected]'] ->view['emails.CloudHosting.Product]; }3
[email protected]'] ->view['emails.CloudHosting.Product]; } 4
Tiếp theo, bạn phải tạo một thông báo cho điều này trong thanh kiếm. tập tin php. Trong ví dụ này, tôi đã chỉ định lớp mailable trong thư. thí dụ. Bây giờ bạn phải tạo thư mục 'mails' với tệp mẫu phiến 'emailexample. lưỡi. php'.
tuyến đường
Để tạo lộ trình cho thư, chỉ cần dán đoạn mã sau
*/ public function build[] { return $this->from['[email protected]'] ->view['emails.CloudHosting.Product]; }5
Tích hợp SendGrid với Laravel
Một công cụ phổ biến khác cho email của Laravel là SendGrid. Cùng tham khảo hướng dẫn gửi email với SendGrid trong Laravel sau đây.
[email protected]'] ->view['emails.CloudHosting.Product]; } 6
[email protected]'] ->view['emails.CloudHosting.Product]; } 7
Lệnh này sẽ tạo một tệp mới trong ứng dụng/Mail/TestEmail. php và nó sẽ trông như thế này
*/ public function build[] { return $this->from['[email protected]'] ->view['emails.CloudHosting.Product]; }8
Chế độ xem email của Laravel
Hãy tạo Laravel View cho Email Templates khi gửi email. Chỉ cần dán đoạn mã sau vào tệp xem của bạn nằm trong lượt xem/email/kiểm tra. lưỡi. php
*/ public function build[] { return $this->from['[email protected]'] ->view['emails.CloudHosting.Product]; }9
Tích hợp Mailgun trong Laravel
Trước hết, bạn phải đăng ký Mailgun và tạo một tài khoản miễn phí. Sau khi tạo tài khoản, bạn có thể thay đổi. cài đặt tệp env chỉ bằng cách thay đổi Trình điều khiển thư thành mailgun
[email protected]', 'name' => 'App Name'], 0
Định tuyến Mailgun của Laravel
Hãy tạo các tuyến để kiểm tra email bằng Mailgun. Chỉ cần sao chép mã dưới đây vào web ứng dụng của bạn. tập tin php
'from' => ['address' => '[email protected]', 'name' => 'App Name'],1
Bạn cũng có thể muốn bao gồm một dòng chủ đề và có thể là một email người gửi như vậy
'from' => ['address' => '[email protected]', 'name' => 'App Name'],2
Tích hợp Mandrill trong Laravel
Trước hết bạn phải tạo một tài khoản trên Mandrill và sau đó phải cài guzzle cho cái đó. Chỉ cần dán lệnh sau vào ứng dụng của bạn
'from' => ['address' => '[email protected]', 'name' => 'App Name'],3
[email protected]', 'name' => 'App Name'], 4
Gửi email Mandrill
Sao chép phương thức được đề cập bên dưới để gửi email bằng Mandrill
'from' => ['address' => '[email protected]', 'name' => 'App Name'],5
Tích hợp Mailchimp trong Laravel
Để tích hợp Mailchimp trong Laravel, trước tiên bạn phải tạo một tài khoản miễn phí trên Mailchimp. Sau khi đăng nhập thành công, hãy tạo Danh sách trên menu, sau đó chuyển đến Cài đặt và sao chép ID Danh sách mà bạn sẽ sử dụng trong API. mở của bạn. env và dán khóa API vào đó
'from' => ['address' => '[email protected]', 'name' => 'App Name'],6
Cài đặt gói Laravel Mailchimp
Sau khi cấu hình thành công các cài đặt trong. env, hãy mở thiết bị đầu cuối SSH của bạn và dán lệnh sau
'from' => ['address' => '[email protected]', 'name' => 'App Name'],7
Tệp cấu hình Laravel
Bây giờ, hãy thiết lập tệp cấu hình của bạn bằng cách dán đoạn mã sau vào tệp cấu hình của bạn. tập tin php
'from' => ['address' => '[email protected]', 'name' => 'App Name'],8
Định tuyến Laravel
Bây giờ, hãy thiết lập các tuyến ứng dụng web của bạn như hình bên dưới
'from' => ['address' => '[email protected]', 'name' => 'App Name'],9
Bộ điều khiển Laravel
Bây giờ, hãy tạo một bộ điều khiển có tên là MailchmpController. php
public function build[] { return $this->view['emails.CloudHosting.Product]; }0
Chế độ xem Laravel
Sau khi tạo Controller, bước tiếp theo là tạo file view blade của bạn trong resource/views/mailchimp. lưỡi. php. Chỉ cần dán đoạn mã sau vào tệp. Bạn cũng có thể xem tích hợp MailChimp php Trên Cloudways, vì đây thực sự là một nền tảng tất cả trong một để tương tác với khán giả của bạn và các bên liên quan khác
public function build[] { return $this->view['emails.CloudHosting.Product]; }1
Q. Nhà cung cấp dịch vụ gửi email bên thứ ba nào được hỗ trợ theo mặc định trong Laravel?
A. Sau đây được hỗ trợ theo mặc định trong Laravel
- súng thư
- tia lửa điện
- Amazon SES
Q. Những lý do phổ biến khiến email không gửi được là gì?
A. Lý do tại sao email có thể không được gửi
- Lỗi kỹ thuật của tập lệnh lập trình của bạn
- Bị chặn bởi nhà cung cấp dịch vụ lưu trữ của bạn trong khi gửi
- Đã đạt đến giới hạn tốc độ gửi email do nhà cung cấp dịch vụ lưu trữ của bạn đặt
- Bị chặn bởi máy chủ người nhận vì “tiếng xấu” của máy chủ nhà cung cấp dịch vụ lưu trữ của bạn
- Đã vào SPAM hoặc một thư mục được lọc tự động khác
Q. Làm cách nào để sử dụng thư [] trong Laravel?
A. Laravel cung cấp API mạnh mẽ và rõ ràng trên thư viện SwiftMailer với trình điều khiển cho Mailgun, SMTP, Amazon SES, SparkPost và gửi email. Với API này, chúng tôi có thể gửi email trên máy chủ cục bộ cũng như máy chủ trực tiếp
Thí dụ
Laravel cho phép chúng tôi lưu trữ email trong các tệp xem của chúng tôi. Ví dụ: để quản lý email của chúng tôi, chúng tôi có thể tạo thư mục email trong thư mục tài nguyên/lượt xem của mình
Q. Làm cách nào để kiểm tra xem email đã được gửi trong Laravel chưa?
A. Nói chung, thư. fail[] trả về một mảng các địa chỉ email bị lỗi
Q. Làm cách nào để tạo mẫu email trong Laravel?
A. Tệp mẫu email là tệp phiến mà bạn có thể tùy chỉnh để thêm chi tiết và các phần tùy chỉnh theo thiết kế mẫu email của mình
Từ cuối cùng
Điều này đưa chúng ta đến phần cuối của bài viết này, trình bày chi tiết quá trình tích hợp hoàn chỉnh của các công cụ gửi email khác nhau trong Laravel. Sử dụng các công cụ dựng sẵn này, bạn có thể dễ dàng gửi email trong ứng dụng Laravel – trong thời gian nhanh chóng. Hơn nữa, như đã đề cập ở trên, quy trình tích hợp của chúng khá dễ dàng, vì vậy các nhà phát triển có thể nhanh chóng bắt đầu với các công cụ gửi email của Laravel
Nếu bạn vẫn có bất kỳ câu hỏi nào liên quan đến bài viết này, vui lòng hỏi họ trong phần bình luận bên dưới
Đánh giá của khách hàng tại
“Dịch vụ lưu trữ trên nền tảng đám mây có một trong những dịch vụ khách hàng tốt nhất và tốc độ lưu trữ”
Sanjit C [Nhà phát triển trang web]
Saquib Rizwan
Saquib là Chuyên gia cộng đồng PHP tại Cloudways - Nền tảng đám mây lưu trữ PHP được quản lý. Anh thông thạo PHP và thường xuyên đóng góp cho các dự án mã nguồn mở. Để giải trí, anh ấy thích chơi game, xem phim và đi chơi với bạn bè. Bạn có thể gửi email cho anh ấy tại [email protected]