Rumah > Artikel > pembangunan bahagian belakang > Perisian tengah CakePHP: Mengintegrasikan perkhidmatan e-mel dan SMS untuk melaksanakan pemberitahuan mesej
Perisian tengah CakePHP: Mengintegrasikan perkhidmatan e-mel dan SMS untuk melaksanakan pemberitahuan mesej
Pengenalan:
Dalam aplikasi web moden, pemberitahuan mesej merupakan fungsi yang sangat penting. Pengguna perlu menerima maklumat penting daripada sistem, seperti pendaftaran yang berjaya, penetapan semula kata laluan, kemas kini status pesanan, dsb. Untuk mencapai fungsi ini, menyepadukan perkhidmatan e-mel dan SMS telah menjadi pendekatan biasa. Dalam artikel ini, saya akan memperkenalkan cara menggunakan middleware CakePHP untuk melaksanakan fungsi pemberitahuan mesej dan menyediakan beberapa contoh kod khusus.
// app.php 'EmailTransport' => [ 'default' => [ 'className' => 'CakeMailerTransportMailgunTransport', 'apiKey' => 'YOUR_MAILGUN_API_KEY', 'domain' => 'YOUR_MAILGUN_DOMAIN', 'url' => 'YOUR_MAILGUN_API_URL', ], ],
Kami perlu menggantikan YOUR_MAILGUN_DOMAIN
dan YOUR_MAILGUN_API_URL
dengan nilai sebenar. YOUR_MAILGUN_API_KEY
、YOUR_MAILGUN_DOMAIN
和YOUR_MAILGUN_API_URL
替换为实际的值。
// app.php 'Twilio' => [ 'sid' => 'YOUR_TWILIO_SID', 'token' => 'YOUR_TWILIO_TOKEN', 'sender' => 'YOUR_TWILIO_PHONE_NUMBER', ],
同样,我们需要将YOUR_TWILIO_SID
、YOUR_TWILIO_TOKEN
和YOUR_TWILIO_PHONE_NUMBER
// src/Middleware/NotificationMiddleware.php namespace AppMiddleware; use CakeMailerMailerAwareTrait; use CakeMailerEmail; use TwilioRestClient; class NotificationMiddleware { use MailerAwareTrait; public function __invoke($request, $response, $next) { // 执行下一个中间件之前的代码 // ... // 发送电子邮件 $this->getMailer('Default')->send('notification', [$data]); // 发送短信 $twilio = new Client(getenv('TWILIO_SID'), getenv('TWILIO_TOKEN')); $twilio->messages->create( $phoneNumber, [ 'from' => getenv('TWILIO_SENDER'), 'body' => $message, ] ); // 执行下一个中间件之后的代码 // ... return $next($request, $response); } }
YOUR_TWILIO_TOKEN
dan YOUR_TWILIO_PHONE_NUMBER
dengan nilai sebenar. // config/bootstrap.php use AppMiddlewareNotificationMiddleware; use CakeHttpMiddlewareQueue; $middlewareQueue = new MiddlewareQueue(); $middlewareQueue->add(new NotificationMiddleware()); // 替换原有的middlewareQueue // ... // 设置新的middlewareQueue $application->setMiddleware($middlewareQueue);
Untuk membolehkan middleware berfungsi, kita perlu mendaftarkannya dengan aplikasi. Kita boleh melakukan ini dengan menambahkan kod berikut pada fail bootstrap.php:
Atas ialah kandungan terperinci Perisian tengah CakePHP: Mengintegrasikan perkhidmatan e-mel dan SMS untuk melaksanakan pemberitahuan mesej. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!