Tôi chưa thấy mã đầy đủ của bạn, nhưng bên dưới là một mẫu hoạt động mà bạn có thể sử dụng hoặc tùy chỉnh theo nhu cầu của mình
Bây giờ chắc chắn làm thế nào, nhưng mã của bạn đã hoạt động
Cảm ơn vì đã thể hiện phép thuật của bạn
Gửi email không cần phải phức tạp. Laravel cung cấp một API email đơn giản, rõ ràng được cung cấp bởi thành phần Symfony Mailer phổ biến. Laravel và Symfony Mailer cung cấp trình điều khiển để gửi email qua SMTP, Mailgun, Postmark, Amazon SES và
composer require aws/aws-sdk-php
4, cho phép bạn nhanh chóng bắt đầu gửi thư qua dịch vụ cục bộ hoặc dịch vụ dựa trên đám mây mà bạn chọnCấu hình
Các dịch vụ email của Laravel có thể được cấu hình thông qua tệp cấu hình
composer require aws/aws-sdk-php
5 của ứng dụng của bạn. Mỗi người gửi thư được định cấu hình trong tệp này có thể có cấu hình riêng và thậm chí là "vận chuyển" duy nhất của riêng nó, cho phép ứng dụng của bạn sử dụng các dịch vụ email khác nhau để gửi một số email nhất định. Ví dụ: ứng dụng của bạn có thể sử dụng Dấu bưu điện để gửi email giao dịch trong khi sử dụng Amazon SES để gửi email hàng loạtTrong tệp cấu hình
composer require aws/aws-sdk-php
6 của bạn, bạn sẽ tìm thấy một mảng cấu hình composer require aws/aws-sdk-php
7. Mảng này chứa một mục nhập cấu hình mẫu cho từng trình điều khiển/vận chuyển thư chính được hỗ trợ bởi Laravel, trong khi giá trị cấu hình composer require aws/aws-sdk-php
8 xác định trình gửi thư nào sẽ được sử dụng theo mặc định khi ứng dụng của bạn cần gửi thư emailĐiều kiện tiên quyết cho người lái xe / phương tiện giao thông
Các trình điều khiển dựa trên API như Mailgun và Postmark thường đơn giản và nhanh hơn gửi thư qua máy chủ SMTP. Bất cứ khi nào có thể, chúng tôi khuyên bạn nên sử dụng một trong những trình điều khiển này
Trình điều khiển súng thư
Để sử dụng trình điều khiển Mailgun, hãy cài đặt Mailgun Mailer của Symfony thông qua Composer
composer require symfony/mailgun-mailer symfony/http-client
Tiếp theo, đặt tùy chọn
composer require aws/aws-sdk-php
8 trong tệp cấu hình composer require aws/aws-sdk-php
5 của ứng dụng của bạn thành 'key' => env['AWS_ACCESS_KEY_ID'],
'secret' => env['AWS_SECRET_ACCESS_KEY'],
'region' => env['AWS_DEFAULT_REGION', 'us-east-1'],
1. Sau khi định cấu hình trình gửi thư mặc định cho ứng dụng của bạn, hãy xác minh rằng tệp cấu hình 'key' => env['AWS_ACCESS_KEY_ID'],
'secret' => env['AWS_SECRET_ACCESS_KEY'],
'region' => env['AWS_DEFAULT_REGION', 'us-east-1'],
2 của bạn có chứa các tùy chọn saucomposer require aws/aws-sdk-php
1Nếu bạn không sử dụng khu vực Mailgun của Hoa Kỳ, bạn có thể xác định điểm cuối của khu vực trong tệp cấu hình
'key' => env['AWS_ACCESS_KEY_ID'],
'secret' => env['AWS_SECRET_ACCESS_KEY'],
'region' => env['AWS_DEFAULT_REGION', 'us-east-1'],
3composer require aws/aws-sdk-php
3Trình điều khiển dấu bưu điện
Để sử dụng trình điều khiển Postmark, hãy cài đặt Postmark Mailer của Symfony thông qua Composer
composer require aws/aws-sdk-php
4Tiếp theo, đặt tùy chọn
composer require aws/aws-sdk-php
8 trong tệp cấu hình composer require aws/aws-sdk-php
5 của ứng dụng của bạn thành 'key' => env['AWS_ACCESS_KEY_ID'],
'secret' => env['AWS_SECRET_ACCESS_KEY'],
'region' => env['AWS_DEFAULT_REGION', 'us-east-1'],
6. Sau khi định cấu hình trình gửi thư mặc định của ứng dụng, hãy xác minh rằng tệp cấu hình 'key' => env['AWS_ACCESS_KEY_ID'],
'secret' => env['AWS_SECRET_ACCESS_KEY'],
'region' => env['AWS_DEFAULT_REGION', 'us-east-1'],
2 của bạn có chứa các tùy chọn saucomposer require aws/aws-sdk-php
9Nếu bạn muốn chỉ định luồng tin nhắn Dấu bưu điện sẽ được sử dụng bởi một người gửi thư nhất định, bạn có thể thêm tùy chọn cấu hình
'key' => env['AWS_ACCESS_KEY_ID'],
'secret' => env['AWS_SECRET_ACCESS_KEY'],
'region' => env['AWS_DEFAULT_REGION', 'us-east-1'],
8 vào mảng cấu hình của người gửi thư. Mảng cấu hình này có thể được tìm thấy trong tệp cấu hình composer require aws/aws-sdk-php
5 của ứng dụng của bạncomposer require aws/aws-sdk-php
2Bằng cách này, bạn cũng có thể thiết lập nhiều người gửi thư có Dấu bưu điện với các luồng thư khác nhau
Trình điều khiển SES
Để sử dụng trình điều khiển Amazon SES, trước tiên bạn phải cài đặt Amazon AWS SDK cho PHP. Bạn có thể cài đặt thư viện này thông qua trình quản lý gói Composer
composer require aws/aws-sdk-php
Tiếp theo, đặt tùy chọn
composer require aws/aws-sdk-php
8 trong tệp cấu hình composer require aws/aws-sdk-php
5 của bạn thành composer require aws/aws-sdk-php
62 và xác minh rằng tệp cấu hình 'key' => env['AWS_ACCESS_KEY_ID'],
'secret' => env['AWS_SECRET_ACCESS_KEY'],
'region' => env['AWS_DEFAULT_REGION', 'us-east-1'],
2 của bạn có chứa các tùy chọn sau 'key' => env['AWS_ACCESS_KEY_ID'],
'secret' => env['AWS_SECRET_ACCESS_KEY'],
'region' => env['AWS_DEFAULT_REGION', 'us-east-1'],
Để sử dụng thông tin xác thực tạm thời của AWS thông qua mã thông báo phiên, bạn có thể thêm khóa
composer require aws/aws-sdk-php
64 vào cấu hình SES của ứng dụngcomposer require aws/aws-sdk-php
6Nếu bạn muốn xác định các tùy chọn bổ sung mà Laravel sẽ chuyển sang phương thức
composer require aws/aws-sdk-php
65 của AWS SDK khi gửi email, bạn có thể xác định một mảng composer require aws/aws-sdk-php
66 trong cấu hình composer require aws/aws-sdk-php
62 của mìnhcomposer require aws/aws-sdk-php
4Cấu hình chuyển đổi dự phòng
Đôi khi, một dịch vụ bên ngoài mà bạn đã định cấu hình để gửi thư của ứng dụng có thể không hoạt động. Trong những trường hợp này, có thể hữu ích khi xác định một hoặc nhiều cấu hình gửi thư dự phòng sẽ được sử dụng trong trường hợp trình điều khiển gửi thư chính của bạn bị hỏng
Để thực hiện điều này, bạn nên xác định một người gửi thư trong tệp cấu hình
composer require aws/aws-sdk-php
6 của ứng dụng sử dụng phương thức vận chuyển composer require aws/aws-sdk-php
69. Mảng cấu hình cho trình gửi thư composer require aws/aws-sdk-php
69 của ứng dụng của bạn phải chứa một mảng composer require aws/aws-sdk-php
7 tham chiếu thứ tự mà trình điều khiển thư sẽ được chọn để gửiKhi thư chuyển đổi dự phòng của bạn đã được xác định, bạn nên đặt thư này làm thư mặc định được ứng dụng của bạn sử dụng bằng cách chỉ định tên của thư làm giá trị của khóa cấu hình
composer require aws/aws-sdk-php
8 trong tệp cấu hình composer require aws/aws-sdk-php
6 của ứng dụng của bạncomposer require aws/aws-sdk-php
10Tạo thư có thể gửi
Khi xây dựng các ứng dụng Laravel, mỗi loại email được gửi bởi ứng dụng của bạn được biểu diễn dưới dạng một lớp "có thể gửi thư". Các lớp này được lưu trữ trong thư mục
composer require aws/aws-sdk-php
44. Đừng lo lắng nếu bạn không thấy thư mục này trong ứng dụng của mình, vì nó sẽ được tạo cho bạn khi bạn tạo lớp có thể gửi thư đầu tiên bằng cách sử dụng lệnh composer require aws/aws-sdk-php
45 Artisancomposer require aws/aws-sdk-php
11Viết thư
Khi bạn đã tạo một lớp có thể gửi thư, hãy mở nó lên để chúng tôi có thể khám phá nội dung của nó. Cấu hình lớp mailable được thực hiện theo một số phương thức, bao gồm các phương thức
composer require aws/aws-sdk-php
46, composer require aws/aws-sdk-php
47 và composer require aws/aws-sdk-php
48Phương thức
composer require aws/aws-sdk-php
46 trả về một đối tượng composer require aws/aws-sdk-php
100 xác định chủ đề và đôi khi là người nhận tin nhắn. Phương thức composer require aws/aws-sdk-php
47 trả về một đối tượng composer require aws/aws-sdk-php
102 xác định mẫu Blade sẽ được sử dụng để tạo nội dung thông báoĐịnh cấu hình Người gửi
Sử dụng phong bì
Trước tiên, hãy khám phá cấu hình người gửi email. Hay nói cách khác, email sẽ được "từ" gửi đến ai. Có hai cách để cấu hình người gửi. Trước tiên, bạn có thể chỉ định địa chỉ "từ" trên phong bì thư của mình
composer require aws/aws-sdk-php
12Sử dụng địa chỉ composer require aws/aws-sdk-php
103 toàn cầu
composer require aws/aws-sdk-php
Tuy nhiên, nếu ứng dụng của bạn sử dụng cùng một địa chỉ "từ" cho tất cả các email của nó, thì việc gọi phương thức
composer require aws/aws-sdk-php
103 trong mỗi lớp có thể gửi thư mà bạn tạo có thể trở nên phức tạp. Thay vào đó, bạn có thể chỉ định địa chỉ "từ" chung trong tệp cấu hình composer require aws/aws-sdk-php
5 của mình. Địa chỉ này sẽ được sử dụng nếu không có địa chỉ "từ" nào khác được chỉ định trong lớp có thể gửi thưNgoài ra, bạn có thể xác định địa chỉ "reply_to" chung trong tệp cấu hình
composer require aws/aws-sdk-php
5 của mìnhĐịnh cấu hình Chế độ xem
Trong phương thức
composer require aws/aws-sdk-php
47 của lớp mailable, bạn có thể xác định composer require aws/aws-sdk-php
108 hoặc mẫu nào sẽ được sử dụng khi hiển thị nội dung của email. Vì mỗi email thường sử dụng một mẫu Blade để hiển thị nội dung của nó, nên bạn có toàn bộ sức mạnh và sự tiện lợi của công cụ tạo mẫu Blade khi xây dựng HTML cho email của mìnhcomposer require aws/aws-sdk-php
13Lưu ý
Bạn có thể muốn tạo một thư mục109 để chứa tất cả các mẫu email của mình; .
composer require aws/aws-sdk-php
Email văn bản thuần túy
Nếu bạn muốn xác định phiên bản văn bản thuần túy cho email của mình, bạn có thể chỉ định mẫu văn bản thuần túy khi tạo định nghĩa
composer require aws/aws-sdk-php
111 của thư. Giống như tham số composer require aws/aws-sdk-php
108, tham số composer require aws/aws-sdk-php
113 phải là một tên mẫu sẽ được sử dụng để hiển thị nội dung của email. Bạn có thể tự do xác định cả phiên bản HTML và văn bản thuần túy của tin nhắn của mìnhcomposer require aws/aws-sdk-php
14Để rõ ràng, tham số
composer require aws/aws-sdk-php
114 có thể được sử dụng làm bí danh của tham số composer require aws/aws-sdk-php
108composer require aws/aws-sdk-php
15Xem dữ liệu
Thông qua tài sản công cộng
Thông thường, bạn sẽ muốn chuyển một số dữ liệu vào chế độ xem của mình mà bạn có thể sử dụng khi hiển thị HTML của email. Có hai cách bạn có thể cung cấp dữ liệu cho chế độ xem của mình. Đầu tiên, bất kỳ thuộc tính công khai nào được xác định trên lớp có thể gửi thư của bạn sẽ tự động được cung cấp cho chế độ xem. Vì vậy, ví dụ: bạn có thể chuyể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 thuộc tính công khai được xác định trên lớp
composer require aws/aws-sdk-php
16Khi dữ liệu đã được đặt thành thuộc tính công khai, dữ liệu đó sẽ tự động có sẵn trong chế độ xem của bạn, vì vậy bạn có thể truy cập dữ liệu đó giống như truy cập bất kỳ dữ liệu nào khác trong các mẫu Blade của mình
Thông qua Tham số composer require aws/aws-sdk-php
116
composer require aws/aws-sdk-php
Nếu bạn muốn tùy chỉnh định dạng dữ liệu email của mình trước khi gửi đến mẫu, bạn có thể chuyển dữ liệu của mình sang chế độ xem theo cách thủ công thông qua định nghĩa ________ 1111 tham số ________ 1116. Thông thường, bạn vẫn sẽ truyền dữ liệu qua hàm tạo của lớp có thể gửi được;
composer require aws/aws-sdk-php
17Sau khi dữ liệu đã được chuyển đến phương thức
composer require aws/aws-sdk-php
116, nó sẽ tự động có sẵn trong chế độ xem của bạn, vì vậy bạn có thể truy cập nó giống như bạn truy cập bất kỳ dữ liệu nào khác trong các mẫu Blade của mìnhtệp đính kèm
Để thêm tệp đính kèm vào email, bạn sẽ thêm tệp đính kèm vào mảng được trả về bởi phương thức
composer require aws/aws-sdk-php
48 của thư. Trước tiên, bạn có thể thêm tệp đính kèm bằng cách cung cấp đường dẫn tệp tới phương thức composer require aws/aws-sdk-php
123 được cung cấp bởi lớp composer require aws/aws-sdk-php
124composer require aws/aws-sdk-php
18Khi đính kèm tệp vào thư, bạn cũng có thể chỉ định tên hiển thị và/hoặc loại MIME cho tệp đính kèm bằng phương pháp
composer require aws/aws-sdk-php
125 và composer require aws/aws-sdk-php
126composer require aws/aws-sdk-php
19Đính kèm tập tin từ đĩa
Nếu bạn đã lưu trữ một tệp trên một trong các đĩa hệ thống tệp của mình, bạn có thể đính kèm tệp đó vào email bằng phương thức đính kèm
composer require aws/aws-sdk-php
127composer require aws/aws-sdk-php
30Tất nhiên, bạn cũng có thể chỉ định tên và loại MIME của tệp đính kèm
composer require aws/aws-sdk-php
31Phương pháp
composer require aws/aws-sdk-php
128 có thể được sử dụng nếu bạn cần chỉ định một ổ đĩa lưu trữ khác với ổ đĩa mặc định của mìnhcomposer require aws/aws-sdk-php
32Tệp đính kèm dữ liệu thô
Phương thức đính kèm
composer require aws/aws-sdk-php
129 có thể được sử dụng để đính kèm một chuỗi byte thô dưới dạng tệp đính kèm. Ví dụ: bạn có thể sử dụng phương pháp này nếu bạn đã tạo tệp PDF trong bộ nhớ và muốn đính kèm tệp đó vào email mà không cần ghi tệp vào đĩa. Phương thức composer require aws/aws-sdk-php
129 chấp nhận một bao đóng giải quyết các byte dữ liệu thô cũng như tên mà tệp đính kèm sẽ được gáncomposer require aws/aws-sdk-php
33Tệp đính kèm nội tuyến
Nhúng hình ảnh nội tuyến vào email của bạn thường rất cồng kềnh; . Để nhúng một hình ảnh nội tuyến, hãy sử dụng phương pháp
composer require aws/aws-sdk-php
131 trên biến composer require aws/aws-sdk-php
132 trong mẫu email của bạn. Laravel tự động cung cấp biến composer require aws/aws-sdk-php
132 cho tất cả các mẫu email của bạn, vì vậy bạn không cần phải lo lắng về việc chuyển nó theo cách thủ côngcomposer require aws/aws-sdk-php
34Cảnh báo
Biến132 không có sẵn trong các mẫu tin nhắn văn bản thuần túy do tin nhắn văn bản thuần túy không sử dụng tệp đính kèm nội tuyến.
composer require aws/aws-sdk-php
Nhúng tệp đính kèm dữ liệu thô
Nếu bạn đã có một chuỗi dữ liệu hình ảnh thô mà bạn muốn nhúng vào một mẫu email, bạn có thể gọi phương thức
composer require aws/aws-sdk-php
135 trên biến composer require aws/aws-sdk-php
132. Khi gọi phương thức composer require aws/aws-sdk-php
135, bạn sẽ cần cung cấp tên tệp sẽ được gán cho hình ảnh được nhúngcomposer require aws/aws-sdk-php
35Đối tượng có thể đính kèm
Mặc dù việc đính kèm tệp vào thư thông qua các đường dẫn chuỗi đơn giản thường là đủ, nhưng trong nhiều trường hợp, các thực thể có thể đính kèm trong ứng dụng của bạn được đại diện bởi các lớp. Ví dụ: nếu ứng dụng của bạn đang đính kèm ảnh vào thư, ứng dụng của bạn cũng có thể có mô hình
composer require aws/aws-sdk-php
138 đại diện cho ảnh đó. Trong trường hợp đó, sẽ không thuận tiện nếu chỉ cần chuyển mô hình composer require aws/aws-sdk-php
138 sang phương thức composer require aws/aws-sdk-php
140? Để bắt đầu, hãy triển khai giao diện
composer require aws/aws-sdk-php
141 trên đối tượng sẽ được đính kèm vào thư. Giao diện này ra lệnh rằng lớp của bạn định nghĩa một phương thức composer require aws/aws-sdk-php
142 trả về một thể hiện composer require aws/aws-sdk-php
143composer require aws/aws-sdk-php
36Khi bạn đã xác định đối tượng có thể đính kèm của mình, bạn có thể trả về một phiên bản của đối tượng đó từ phương thức
composer require aws/aws-sdk-php
48 khi tạo một thông báo emailcomposer require aws/aws-sdk-php
37Tất nhiên, dữ liệu đính kèm có thể được lưu trữ trên dịch vụ lưu trữ tệp từ xa như Amazon S3. Vì vậy, Laravel cũng cho phép bạn tạo các phiên bản tệp đính kèm từ dữ liệu được lưu trữ trên một trong các đĩa hệ thống tệp của ứng dụng của bạn
composer require aws/aws-sdk-php
38Ngoài ra, bạn có thể tạo các phiên bản tệp đính kèm thông qua dữ liệu bạn có trong bộ nhớ. Để thực hiện điều này, hãy cung cấp một bao đóng cho phương thức
composer require aws/aws-sdk-php
129. Việc đóng sẽ trả về dữ liệu thô đại diện cho tệp đính kèmcomposer require aws/aws-sdk-php
39Laravel cũng cung cấp các phương thức bổ sung mà bạn có thể sử dụng để tùy chỉnh tệp đính kèm của mình. Ví dụ: bạn có thể sử dụng các phương thức
composer require aws/aws-sdk-php
125 và composer require aws/aws-sdk-php
126 để tùy chỉnh tên tệp và loại MIMEcomposer require aws/aws-sdk-php
40tiêu đề
Đôi khi bạn có thể cần đính kèm các tiêu đề bổ sung vào thư gửi đi. Chẳng hạn, bạn có thể cần đặt một
composer require aws/aws-sdk-php
148 tùy chỉnh hoặc các tiêu đề văn bản tùy ý khácĐể thực hiện điều này, hãy xác định một phương thức
composer require aws/aws-sdk-php
149 trên mailable của bạn. Phương thức composer require aws/aws-sdk-php
149 sẽ trả về một phiên bản composer require aws/aws-sdk-php
151. Lớp này chấp nhận các tham số composer require aws/aws-sdk-php
152, composer require aws/aws-sdk-php
153 và composer require aws/aws-sdk-php
113. Tất nhiên, bạn chỉ có thể cung cấp các tham số bạn cần cho thông báo cụ thể của mìnhcomposer require aws/aws-sdk-php
41Thẻ và Siêu dữ liệu
Một số nhà cung cấp dịch vụ email bên thứ ba như Mailgun và Postmark hỗ trợ "thẻ" và "siêu dữ liệu" cho thông báo, có thể được sử dụng để nhóm và theo dõi các email do ứng dụng của bạn gửi. Bạn có thể thêm thẻ và siêu dữ liệu vào email thông qua định nghĩa
composer require aws/aws-sdk-php
155 của mìnhcomposer require aws/aws-sdk-php
42Nếu ứng dụng của bạn đang sử dụng trình điều khiển Mailgun, bạn có thể tham khảo tài liệu của Mailgun để biết thêm thông tin về thẻ và siêu dữ liệu. Tương tự như vậy, tài liệu Dấu bưu điện cũng có thể được tham khảo để biết thêm thông tin về sự hỗ trợ của chúng đối với thẻ và siêu dữ liệu
Nếu ứng dụng của bạn đang sử dụng Amazon SES để gửi email, bạn nên sử dụng phương pháp
composer require aws/aws-sdk-php
156 để đính kèm các "thẻ" SES vào thưTùy chỉnh thông báo Symfony
Khả năng thư của Laravel được cung cấp bởi Symfony Mailer. Laravel cho phép bạn đăng ký các cuộc gọi lại tùy chỉnh sẽ được gọi với phiên bản Symfony Message trước khi gửi tin nhắn. Điều này mang đến cho bạn cơ hội để tùy chỉnh sâu sắc tin nhắn trước khi nó được gửi đi. Để thực hiện điều này, hãy xác định tham số
composer require aws/aws-sdk-php
157 trên định nghĩa composer require aws/aws-sdk-php
155 của bạncomposer require aws/aws-sdk-php
43Markdown Mailables
Đánh dấu thư có thể gửi thư cho phép bạn tận dụng lợi thế của các mẫu dựng sẵn và các thành phần của thông báo thư trong thư có thể gửi của bạn. Vì các tin nhắn được viết bằng Markdown, Laravel có thể hiển thị các mẫu HTML đáp ứng, đẹp mắt cho các tin nhắn đồng thời tự động tạo một bản sao văn bản thuần túy
Tạo Markdown Mailables
Để tạo một mailable với một mẫu Markdown tương ứng, bạn có thể sử dụng tùy chọn
composer require aws/aws-sdk-php
159 của lệnh composer require aws/aws-sdk-php
45 Artisancomposer require aws/aws-sdk-php
44Sau đó, khi định cấu hình định nghĩa
composer require aws/aws-sdk-php
111 có thể gửi thư trong phương thức composer require aws/aws-sdk-php
47 của nó, hãy sử dụng tham số composer require aws/aws-sdk-php
163 thay vì tham số composer require aws/aws-sdk-php
108composer require aws/aws-sdk-php
45Viết tin nhắn Markdown
Markdown mailables sử dụng kết hợp các thành phần Blade và cú pháp Markdown cho phép bạn dễ dàng xây dựng thư trong khi tận dụng các thành phần giao diện người dùng email dựng sẵn của Laravel
composer require aws/aws-sdk-php
46Lưu ý
Không sử dụng thụt lề thừa khi viết email Markdown. Theo tiêu chuẩn Markdown, trình phân tích cú pháp Markdown sẽ hiển thị nội dung thụt lề dưới dạng khối mã.
Thành phần nút
Thành phần nút hiển thị liên kết nút ở giữa. Thành phần chấp nhận hai đối số, một
composer require aws/aws-sdk-php
165 và một tùy chọn composer require aws/aws-sdk-php
166. Các màu được hỗ trợ là composer require aws/aws-sdk-php
167, composer require aws/aws-sdk-php
168 và composer require aws/aws-sdk-php
169. Bạn có thể thêm bao nhiêu thành phần nút vào một tin nhắn tùy thíchcomposer require aws/aws-sdk-php
47Thành phần bảng điều khiển
Thành phần bảng hiển thị khối văn bản đã cho trong bảng có màu nền hơi khác so với phần còn lại của thông báo. Điều này cho phép bạn thu hút sự chú ý vào một khối văn bản nhất định
composer require aws/aws-sdk-php
48Thành phần bảng
Thành phần bảng cho phép bạn chuyển đổi bảng Markdown thành bảng HTML. Thành phần chấp nhận bảng Markdown làm nội dung của nó. Căn chỉnh cột của bảng được hỗ trợ bằng cách sử dụng cú pháp căn chỉnh bảng Markdown mặc định
composer require aws/aws-sdk-php
49Tùy chỉnh các thành phần
Bạn có thể xuất tất cả các thành phần thư Markdown sang ứng dụng của riêng mình để tùy chỉnh. Để xuất các thành phần, hãy sử dụng lệnh Artisan
composer require aws/aws-sdk-php
170 để xuất bản thẻ tài sản composer require aws/aws-sdk-php
171composer require aws/aws-sdk-php
90Lệnh này sẽ xuất bản các thành phần thư Markdown vào thư mục
composer require aws/aws-sdk-php
172. Thư mục composer require aws/aws-sdk-php
6 sẽ chứa một thư mục composer require aws/aws-sdk-php
114 và một thư mục composer require aws/aws-sdk-php
113, mỗi thư mục chứa các biểu diễn tương ứng của mọi thành phần có sẵn. Bạn có thể tự do tùy chỉnh các thành phần này theo cách bạn muốnTùy chỉnh CSS
Sau khi xuất các thành phần, thư mục
composer require aws/aws-sdk-php
176 sẽ chứa tệp composer require aws/aws-sdk-php
177. Bạn có thể tùy chỉnh CSS trong tệp này và các kiểu của bạn sẽ tự động được chuyển đổi thành các kiểu CSS nội tuyến trong các biểu diễn HTML của thư Markdown của bạnNếu bạn muốn xây dựng một chủ đề hoàn toàn mới cho các thành phần Laravel Markdown, bạn có thể đặt một tệp CSS trong thư mục ________ 1178. Sau khi đặt tên và lưu tệp CSS của bạn, hãy cập nhật tùy chọn
composer require aws/aws-sdk-php
179 của tệp cấu hình composer require aws/aws-sdk-php
5 của ứng dụng của bạn để khớp với tên chủ đề mới của bạnĐể tùy chỉnh chủ đề cho một mailable riêng lẻ, bạn có thể đặt thuộc tính
composer require aws/aws-sdk-php
181 của lớp mailable thành tên của chủ đề sẽ được sử dụng khi gửi mailable đó.Đang gửi thư
Để gửi tin nhắn, hãy sử dụng phương thức
composer require aws/aws-sdk-php
182 trên mặt tiền composer require aws/aws-sdk-php
183. Phương thức composer require aws/aws-sdk-php
182 chấp nhận địa chỉ email, phiên bản người dùng hoặc tập hợp người dùng. Nếu bạn chuyển một đối tượng hoặc tập hợp các đối tượng, người gửi thư sẽ tự động sử dụng các thuộc tính composer require aws/aws-sdk-php
185 và composer require aws/aws-sdk-php
186 của chúng khi xác định người nhận email, vì vậy hãy đảm bảo các thuộc tính này có sẵn trên các đối tượng của bạn. Khi bạn đã chỉ định người nhận của mình, bạn có thể chuyển một thể hiện của lớp có thể gửi thư của mình sang phương thức composer require aws/aws-sdk-php
187composer require aws/aws-sdk-php
91Bạn không bị giới hạn trong việc chỉ định người nhận "đến" khi gửi tin nhắn. Bạn có thể tự do đặt người nhận "to", "cc" và "bcc" bằng cách xâu chuỗi các phương thức tương ứng của chúng lại với nhau
composer require aws/aws-sdk-php
92Lặp qua người nhận
Đôi khi, bạn có thể cần gửi thư có thể gửi tới danh sách người nhận bằng cách lặp qua một mảng người nhận/địa chỉ email. Tuy nhiên, vì phương thức
composer require aws/aws-sdk-php
182 nối các địa chỉ email vào danh sách người nhận của thư có thể gửi, nên mỗi lần lặp qua vòng lặp sẽ gửi một email khác đến mọi người nhận trước đó. Do đó, bạn phải luôn tạo lại phiên bản có thể gửi thư cho mỗi người nhậncomposer require aws/aws-sdk-php
93Gửi thư qua một người gửi thư cụ thể
Theo mặc định, Laravel sẽ gửi email bằng cách sử dụng thư được định cấu hình là thư
composer require aws/aws-sdk-php
8 trong tệp cấu hình composer require aws/aws-sdk-php
6 của ứng dụng của bạn. Tuy nhiên, bạn có thể sử dụng phương pháp composer require aws/aws-sdk-php
191 để gửi thư bằng cấu hình người gửi thư cụ thểcomposer require aws/aws-sdk-php
94thư xếp hàng
Xếp hàng thư
Vì việc gửi email có thể tác động tiêu cực đến thời gian phản hồi của ứng dụng của bạn nên nhiều nhà phát triển chọn xếp hàng email để gửi trong nền. Laravel làm cho điều này trở nên dễ dàng bằng cách sử dụng API hàng đợi hợp nhất được tích hợp sẵn của nó. Để xếp hàng đợi thư, hãy sử dụng phương pháp
composer require aws/aws-sdk-php
192 trên mặt tiền composer require aws/aws-sdk-php
183 sau khi chỉ định người nhận thưcomposer require aws/aws-sdk-php
95Phương pháp này sẽ tự động xử lý việc đẩy một công việc vào hàng đợi để tin nhắn được gửi trong nền. Bạn sẽ cần định cấu hình hàng đợi của mình trước khi sử dụng tính năng này
Hàng đợi tin nhắn bị trì hoãn
Nếu bạn muốn trì hoãn việc gửi thư email đã xếp hàng đợi, bạn có thể sử dụng phương pháp
composer require aws/aws-sdk-php
194. Là đối số đầu tiên của nó, phương thức composer require aws/aws-sdk-php
194 chấp nhận một phiên bản composer require aws/aws-sdk-php
196 cho biết khi nào tin nhắn sẽ được gửicomposer require aws/aws-sdk-php
96Đẩy vào hàng đợi cụ thể
Vì tất cả các lớp có thể gửi thư được tạo bằng lệnh
composer require aws/aws-sdk-php
45 đều sử dụng đặc điểm của composer require aws/aws-sdk-php
198, bạn có thể gọi các phương thức composer require aws/aws-sdk-php
199 và composer require aws/aws-sdk-php
300 trên bất kỳ phiên bản lớp có thể gửi thư nào, cho phép bạn chỉ định tên kết nối và hàng đợi cho thưcomposer require aws/aws-sdk-php
97Xếp hàng theo mặc định
Nếu bạn có các lớp có thể gửi thư mà bạn muốn luôn được xếp hàng, bạn có thể triển khai hợp đồng
composer require aws/aws-sdk-php
301 trên lớp. Bây giờ, ngay cả khi bạn gọi phương thức composer require aws/aws-sdk-php
187 khi gửi thư, khả năng gửi thư vẫn sẽ được xếp hàng đợi vì nó thực hiện hợp đồngcomposer require aws/aws-sdk-php
98Hàng đợi Mailables & Cơ sở dữ liệu giao dịch
Khi các thư có thể xếp hàng đợi được gửi đi trong các giao dịch cơ sở dữ liệu, chúng có thể được hàng đợi xử lý trước khi giao dịch cơ sở dữ liệu được thực hiện. Khi điều này xảy ra, bất kỳ cập nhật nào bạn đã thực hiện đối với mô hình hoặc bản ghi cơ sở dữ liệu trong quá trình giao dịch cơ sở dữ liệu có thể chưa được phản ánh trong cơ sở dữ liệu. Ngoài ra, bất kỳ mô hình hoặc bản ghi cơ sở dữ liệu nào được tạo trong giao dịch có thể không tồn tại trong cơ sở dữ liệu. Nếu thư của bạn phụ thuộc vào các mô hình này, các lỗi không mong muốn có thể xảy ra khi công việc gửi thư có thể xếp hàng đợi được xử lý
Nếu tùy chọn cấu hình
composer require aws/aws-sdk-php
303 của kết nối hàng đợi của bạn được đặt thành composer require aws/aws-sdk-php
304, bạn vẫn có thể cho biết rằng một thư có thể gửi trong hàng đợi cụ thể sẽ được gửi đi sau khi tất cả các giao dịch cơ sở dữ liệu mở đã được thực hiện bằng cách gọi phương thức composer require aws/aws-sdk-php
305 khi gửi thưcomposer require aws/aws-sdk-php
99Ngoài ra, bạn có thể gọi phương thức
composer require aws/aws-sdk-php
305 từ hàm tạo của mailable của bạncomposer require aws/aws-sdk-php
20Lưu ý
Để tìm hiểu thêm về cách khắc phục những sự cố này, vui lòng xem lại tài liệu liên quan đến công việc được xếp hàng đợi và giao dịch cơ sở dữ liệu.
Kết xuất thư
Đôi khi bạn có thể muốn nắm bắt nội dung HTML của một mailable mà không gửi nó. Để thực hiện điều này, bạn có thể gọi phương thức
composer require aws/aws-sdk-php
307 của mailable. Phương thức này sẽ trả về nội dung HTML được đánh giá của mailable dưới dạng một chuỗicomposer require aws/aws-sdk-php
21Xem trước Mailables trong trình duyệt
Khi thiết kế mẫu có thể gửi thư, thật thuận tiện để nhanh chóng xem trước mẫu có thể gửi được trong trình duyệt của bạn giống như mẫu Blade điển hình. Vì lý do này, Laravel cho phép bạn trả lại bất kỳ thư nào có thể gửi trực tiếp từ bộ điều khiển hoặc đóng tuyến đường. Khi một mailable được trả lại, nó sẽ được hiển thị và hiển thị trong trình duyệt, cho phép bạn nhanh chóng xem trước thiết kế của nó mà không cần gửi nó đến một địa chỉ email thực
composer require aws/aws-sdk-php
22Cảnh báo
Tệp đính kèm nội tuyến sẽ không được hiển thị khi thư có thể xem trước trong trình duyệt của bạn. Để xem trước các thư này, bạn nên gửi chúng đến một ứng dụng kiểm tra email chẳng hạn như MailHog hoặc HELO.
Bản địa hóa Mailables
Laravel cho phép bạn gửi mailable ở một ngôn ngữ khác với ngôn ngữ hiện tại của yêu cầu và thậm chí sẽ nhớ ngôn ngữ này nếu thư được xếp hàng đợi
Để thực hiện điều này, mặt tiền
composer require aws/aws-sdk-php
183 cung cấp phương thức composer require aws/aws-sdk-php
309 để đặt ngôn ngữ mong muốn. Ứng dụng sẽ thay đổi thành ngôn ngữ này khi mẫu của mailable đang được đánh giá và sau đó hoàn nguyên về ngôn ngữ trước đó khi quá trình đánh giá hoàn tấtcomposer require aws/aws-sdk-php
23Địa điểm ưa thích của người dùng
Đôi khi, các ứng dụng lưu trữ ngôn ngữ ưa thích của mỗi người dùng. Bằng cách triển khai hợp đồng
composer require aws/aws-sdk-php
310 trên một hoặc nhiều mô hình của bạn, bạn có thể hướng dẫn Laravel sử dụng ngôn ngữ được lưu trữ này khi gửi thưcomposer require aws/aws-sdk-php
24Khi bạn đã triển khai giao diện, Laravel sẽ tự động sử dụng ngôn ngữ ưa thích khi gửi thư và thông báo tới mô hình. Do đó, không cần gọi phương thức
composer require aws/aws-sdk-php
309 khi sử dụng giao diện nàycomposer require aws/aws-sdk-php
25Kiểm tra thư
Laravel cung cấp nhiều phương pháp để kiểm tra cấu trúc mailable của bạn. Ngoài ra, Laravel cung cấp một số phương pháp thuận tiện để kiểm tra xem thư của bạn có chứa nội dung mà bạn mong đợi không. Những phương pháp này là.
composer require aws/aws-sdk-php
312, composer require aws/aws-sdk-php
313, composer require aws/aws-sdk-php
314, composer require aws/aws-sdk-php
315, composer require aws/aws-sdk-php
316, composer require aws/aws-sdk-php
317, composer require aws/aws-sdk-php
318, composer require aws/aws-sdk-php
319, composer require aws/aws-sdk-php
320 và composer require aws/aws-sdk-php
321Như bạn có thể mong đợi, các xác nhận "HTML" khẳng định rằng phiên bản HTML của thư có thể chứa một chuỗi nhất định, trong khi các xác nhận "văn bản" khẳng định rằng phiên bản văn bản thuần của thư có thể chứa một chuỗi nhất định
composer require aws/aws-sdk-php
26Kiểm tra khả năng gửi thư
Chúng tôi khuyên bạn nên kiểm tra nội dung của các thư có thể gửi của bạn một cách riêng biệt với các thử nghiệm khẳng định rằng một thư cụ thể đã được "gửi" đến một người dùng cụ thể. Để tìm hiểu cách kiểm tra xem thư có được gửi hay không, hãy xem tài liệu của chúng tôi về Thư giả mạo
Phát triển Thư & Địa phương
Khi phát triển một ứng dụng gửi email, có thể bạn không thực sự muốn gửi email đến các địa chỉ email trực tiếp. Laravel cung cấp một số cách để "vô hiệu hóa" việc gửi email thực tế trong quá trình phát triển cục bộ
Trình điều khiển nhật ký
Thay vì gửi email của bạn, trình điều khiển thư
composer require aws/aws-sdk-php
322 sẽ ghi tất cả thư email vào tệp nhật ký của bạn để kiểm tra. Thông thường, trình điều khiển này sẽ chỉ được sử dụng trong quá trình phát triển cục bộ. Để biết thêm thông tin về cách định cấu hình ứng dụng của bạn cho mỗi môi trường, hãy xem tài liệu cấu hìnhHELO / Mailtrap / MailHog
Ngoài ra, bạn có thể sử dụng một dịch vụ như HELO hoặc Mailtrap và trình điều khiển
composer require aws/aws-sdk-php
323 để gửi email của bạn đến hộp thư "giả" nơi bạn có thể xem chúng trong một ứng dụng email thực sự. Cách tiếp cận này có lợi ích là cho phép bạn thực sự kiểm tra các email cuối cùng trong trình xem thư của MailtrapNếu bạn đang sử dụng Laravel Sail, bạn có thể xem trước thư của mình bằng MailHog. Khi Sail đang chạy, bạn có thể truy cập giao diện MailHog tại.
composer require aws/aws-sdk-php
324Sử dụng địa chỉ composer require aws/aws-sdk-php
182 toàn cầu
composer require aws/aws-sdk-php
Cuối cùng, bạn có thể chỉ định một địa chỉ "đến" toàn cầu bằng cách gọi phương thức
composer require aws/aws-sdk-php
326 được cung cấp bởi mặt tiền composer require aws/aws-sdk-php
183. Thông thường, phương thức này nên được gọi từ phương thức composer require aws/aws-sdk-php
328 của một trong những nhà cung cấp dịch vụ cho ứng dụng của bạncomposer require aws/aws-sdk-php
27Sự kiện
Laravel kích hoạt hai sự kiện trong quá trình gửi thư. Sự kiện
composer require aws/aws-sdk-php
329 được kích hoạt trước khi tin nhắn được gửi, trong khi sự kiện composer require aws/aws-sdk-php
330 được kích hoạt sau khi tin nhắn được gửi. Hãy nhớ rằng, những sự kiện này được kích hoạt khi thư đang được gửi chứ không phải khi thư được xếp hàng đợi. Bạn có thể đăng ký người nghe sự kiện cho sự kiện này trong nhà cung cấp dịch vụ composer require aws/aws-sdk-php
331 của bạncomposer require aws/aws-sdk-php
28Vận chuyển tùy chỉnh
Laravel bao gồm nhiều phương thức vận chuyển thư; . Để bắt đầu, hãy định nghĩa một lớp mở rộng lớp
composer require aws/aws-sdk-php
332. Sau đó, thực hiện các phương pháp composer require aws/aws-sdk-php
333 và composer require aws/aws-sdk-php
334 trên phương tiện di chuyển của bạncomposer require aws/aws-sdk-php
29Khi bạn đã xác định phương tiện vận chuyển tùy chỉnh của mình, bạn có thể đăng ký nó qua phương pháp
composer require aws/aws-sdk-php
335 do mặt tiền composer require aws/aws-sdk-php
183 cung cấp. Thông thường, điều này nên được thực hiện trong phương pháp composer require aws/aws-sdk-php
328 của nhà cung cấp dịch vụ composer require aws/aws-sdk-php
338 của ứng dụng của bạn. Một đối số composer require aws/aws-sdk-php
339 sẽ được chuyển đến bao đóng được cung cấp cho phương thức composer require aws/aws-sdk-php
335. Đối số này sẽ chứa mảng cấu hình được xác định cho người gửi thư trong tệp cấu hình composer require aws/aws-sdk-php
5 của ứng dụngcomposer require aws/aws-sdk-php
0Khi phương tiện vận chuyển tùy chỉnh của bạn đã được xác định và đăng ký, bạn có thể tạo định nghĩa người gửi thư trong tệp cấu hình
composer require aws/aws-sdk-php
5 của ứng dụng sử dụng phương tiện vận chuyển mớicomposer require aws/aws-sdk-php
1Vận chuyển Symfony bổ sung
Laravel bao gồm hỗ trợ cho một số phương thức vận chuyển thư được duy trì bởi Symfony hiện có như Mailgun và Postmark. Tuy nhiên, bạn có thể muốn mở rộng Laravel với sự hỗ trợ cho các phương tiện vận chuyển được duy trì bởi Symfony. Bạn có thể làm như vậy bằng cách yêu cầu trình gửi thư Symfony cần thiết thông qua Trình soạn thảo và đăng ký vận chuyển với Laravel. Ví dụ: bạn có thể cài đặt và đăng ký bộ gửi thư Symfony "Sendinblue"
composer require aws/aws-sdk-php
2Khi gói gửi thư Sendinblue đã được cài đặt, bạn có thể thêm một mục nhập cho thông tin đăng nhập API Sendinblue của mình vào tệp cấu hình
'key' => env['AWS_ACCESS_KEY_ID'],
'secret' => env['AWS_SECRET_ACCESS_KEY'],
'region' => env['AWS_DEFAULT_REGION', 'us-east-1'],
3 của ứng dụng của bạnCuối cùng, bạn có thể sử dụng phương thức
composer require aws/aws-sdk-php
335 của mặt tiền composer require aws/aws-sdk-php
183 để đăng ký vận chuyển với Laravel. Thông thường, điều này nên được thực hiện trong phương pháp composer require aws/aws-sdk-php
328 của nhà cung cấp dịch vụ