CakePHP ミドルウェア: 電子メールと SMS サービスを統合してメッセージ通知を実装する
はじめに:
最新の Web アプリケーションでは、メッセージ通知は非常に重要な機能です。ユーザーは、登録の成功、パスワードのリセット、注文ステータスの更新などの重要な情報をシステムから受け取る必要があります。この機能を実現するには、電子メール サービスと SMS サービスを統合することが一般的なアプローチになっています。この記事では、CakePHP ミドルウェアを使用してメッセージ通知機能を実装する方法と、いくつかの具体的なコード例を紹介します。
// app.php 'EmailTransport' => [ 'default' => [ 'className' => 'CakeMailerTransportMailgunTransport', 'apiKey' => 'YOUR_MAILGUN_API_KEY', 'domain' => 'YOUR_MAILGUN_DOMAIN', 'url' => 'YOUR_MAILGUN_API_URL', ], ],
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); } }
コードでは、CakePHP に付属する MailerAwareTrait を使用して電子メールを送信します。 Twilio の API 経由で SMS も送信しました。コード内の「notification」は Mailers ディレクトリに作成した電子メール テンプレートを表し、$data は電子メール テンプレートに渡されるデータを表します。
// config/bootstrap.php use AppMiddlewareNotificationMiddleware; use CakeHttpMiddlewareQueue; $middlewareQueue = new MiddlewareQueue(); $middlewareQueue->add(new NotificationMiddleware()); // 替换原有的middlewareQueue // ... // 设置新的middlewareQueue $application->setMiddleware($middlewareQueue);
この方法で、NotificationMiddleware をアプリケーションのミドルウェア キューに登録します。
結論:
CakePHP ミドルウェアを使用すると、電子メールと SMS サービスを簡単に統合して、メッセージ通知機能を実装できます。この記事では、独自のプロジェクトに同様の機能を実装するのに役立ついくつかのコード例を紹介します。もちろん、ニーズに応じてこれらのコードを拡張およびカスタマイズすることもできます。 CakePHP を使用して、強力でフル機能の Web アプリケーションを構築できるよう頑張ってください。
以上がCakePHP ミドルウェア: 電子メールと SMS サービスを統合してメッセージ通知を実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。