Tôi sẽ tạo một hình thức liên lạc với laravel và thông báo nội dung vào email, vì vậy tôi sẽ chia sẻ những gì tôi học được ở đó. (Qua WebAPI)
Nhận SendGrid APIKey
Đầu tiên, tạo một tài khoản SendGrid.
Cấp khóa API. Trang xuất bản rất khó hiểu, nhưng nó nằm trong Cài đặt trong thanh menu ở bên trái Trang của tôi.
Nhấp vào Tạo CreatAPIKey, và vào màn hình sau, đặt tên cho khóa API. Ở đây tôi đặt tên cho nó là “laravel”. Quyền khóa API được đặt thành Hạn chế vì nó chỉ gửi email.
Nếu bạn chỉ muốn gửi thư, Gửi thư là tất cả những gì bạn cần. Tiếp theo là Tạo & Xem.
APIKey nên được hiển thị. Sao chép nó và đừng quên sao lưu nó vì nó sẽ chỉ được hiển thị một lần.
Mô tả khóa API, trình điều khiển thư (SendGrid trong trường hợp này), từ địa chỉ và từ tên trong tệp env
.
Theo mặc định, SendGrid không thể được chỉ định làm trình điều khiển, nhưng một số người đã tạo gói, vì vậy hãy cài đặt nó bằng trình soạn thảo.
Nếu có vấn đề, xóa trình điều khiển .
1 2 3 4 5 | MAIL_DRIVER=sendgrid SENDGRID_API_KEY='copied APIKey' MAIL_FROM_ADDRESS= sending address MAIL_FROM_NAME= sending name |
Tạo sẵn
Cuối cùng là phần thực hiện. Tạo lớp có sẵn.
php artisan make: mail SendGridSample
Một tệp có tên App/Mail/SendGridSample
được tạo. Chỉnh sửa này
(Đừng quên ghi lại cách sử dụng trình điều khiển mà tôi biết ơn.)
Tạo một phương thức xây dựng và viết quy trình trong đó.
Vì from
được ghi trong tệp env
, nên nó không cần phải viết ở đây.
- SendGridSample.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | <?php namespace AppMail; use IlluminateBusQueueable; use IlluminateContractsQueueShouldQueue; use IlluminateMailMailable; use IlluminateQueueSerializesModels; use SichikawaLaravelSendgridDriverSendGrid; class SendGridSample extends Mailable { use SendGrid; /** * Create a new message instance. * * @return void */ // Variable for data received in argument protected $contact; public function __construct($contact) { // Set the data received in the argument to a variable $this -> contact = $contact; } /** * Build the message. * * @return $this */ public function build() { return $this ->view('emails.email') //Specify the template to call ->subject('check the content of meetingお問い合わせ内容確認') ->with(['contact' => $this -> contact]) //Pass the data set by the with option to the template ]); } } |
Mô tả việc sử dụng SENDGRID_API_KEY của env trong tệp service.php.
- dịch vụ.php
1 2 3 4 5 6 | [ 'sendgrid' => [ 'api_key' => env('SENDGRID_API_KEY') ] ]; |
Tạo mẫu thư
Một cái đơn giản trả về tên, địa chỉ email và nội dung yêu cầu của bạn.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <div class="row"> <h1>We have received your inquiry.</h1> </div> <br> ・Name<br> Mr{{ $contact['name'] }}<br> <br> ・Mail address<br> {{ $contact['email'] }}<br> <br> ・Inquiry Content<br> {!! nl2br(e($contact['post'])) !!}<br> <div class="row"> <p>Thank you for your inquiry。</p> </div> |
Chỉnh sửa ContactControll
- ContactControll.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <?php // Use the created mail class use IlluminateSupportFacadesMail; use SichikawaLaravelSendgridDriverSendGrid; public function send(Request $request) { Mail::to($request -> email) ->send(new SendGridSample($request)); } |
Bây giờ bạn có thể gửi email hoàn thành của cuộc điều tra.