BCC thư PHP

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ọn

Cấ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ạt

Trong 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 sau

composer require aws/aws-sdk-php

1

Nế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'],

3

composer require aws/aws-sdk-php

3

Trì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

4

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'],

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 sau

composer require aws/aws-sdk-php

9

Nế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ạn

composer require aws/aws-sdk-php

2

Bằ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ụng

composer require aws/aws-sdk-php

6

Nế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ình

composer require aws/aws-sdk-php

4

Cấ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ửi

Khi 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ạn

composer require aws/aws-sdk-php

10

Tạ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 Artisan

composer require aws/aws-sdk-php

11

Viế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

48

Phươ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

12

Sử dụng địa chỉ

composer require aws/aws-sdk-php

103 toàn cầu

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ình

composer require aws/aws-sdk-php

13

Lưu ý
Bạn có thể muốn tạo một thư mục

composer require aws/aws-sdk-php

109 để chứa tất cả các mẫu email của mình; .

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ình

composer 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

108

composer require aws/aws-sdk-php

15

Xem 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

16

Khi 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

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

17

Sau 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ình

tệ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

124

composer require aws/aws-sdk-php

18

Khi đí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

126

composer 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

127

composer require aws/aws-sdk-php

30

Tấ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

31

Phươ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ình

composer require aws/aws-sdk-php

32

Tệ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án

composer require aws/aws-sdk-php

33

Tệ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ông

composer require aws/aws-sdk-php

34

Cảnh báo
Biến

composer require aws/aws-sdk-php

132 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.

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úng

composer 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

143

composer require aws/aws-sdk-php

36

Khi 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 email

composer require aws/aws-sdk-php

37

Tấ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

38

Ngoà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èm

composer require aws/aws-sdk-php

39

Laravel 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 MIME

composer require aws/aws-sdk-php

40

tiê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ình

composer require aws/aws-sdk-php

41

Thẻ 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ình

composer require aws/aws-sdk-php

42

Nế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ạn

composer require aws/aws-sdk-php

43

Markdown 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 Artisan

composer require aws/aws-sdk-php

44

Sau đó, 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

108

composer require aws/aws-sdk-php

45

Viế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

46

Lư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ích

composer require aws/aws-sdk-php

47

Thà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

48

Thà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

49

Tù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

171

composer require aws/aws-sdk-php

90

Lệ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ốn

Tù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ạn

Nế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

187

composer require aws/aws-sdk-php

91

Bạ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

92

Lặ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ận

composer require aws/aws-sdk-php

93

Gử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

94

thư 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

95

Phươ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ửi

composer 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

97

Xế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 đồng

composer require aws/aws-sdk-php

98

Hà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

99

Ngoà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ạn

composer require aws/aws-sdk-php

20

Lư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ỗi

composer require aws/aws-sdk-php

21

Xem 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

22

Cả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ất

composer 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

24

Khi 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ày

composer require aws/aws-sdk-php

25

Kiể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

321

Như 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

26

Kiể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ình

HELO / 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 Mailtrap

Nế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

324

Sử dụng địa chỉ

composer require aws/aws-sdk-php

182 toàn cầu

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ạn

composer require aws/aws-sdk-php

27

Sự 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ạn

composer require aws/aws-sdk-php

28

Vậ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ạn

composer require aws/aws-sdk-php

29

Khi 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ụng

composer require aws/aws-sdk-php

0

Khi 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ới

composer require aws/aws-sdk-php

1

Vậ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

2

Khi 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ạn

Cuố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ụ

Chủ Đề