現在の位置: ホーム> 最新記事一覧> CakePHPミドルウェアはメールとSMSサービスを統合して、自動化されたメッセージ通知関数を実現します

CakePHPミドルウェアはメールとSMSサービスを統合して、自動化されたメッセージ通知関数を実現します

M66 2025-06-29

導入

最新のWebアプリケーションでは、メッセージ通知機能が重要です。ユーザー登録、パスワードリセット、または注文の更新であろうと、通知はユーザーエクスペリエンスの不可欠な部分です。この記事では、CakePHPミドルウェアを使用して電子メールとSMSサービスを統合して、自動化されたメッセージ通知関数を実現する方法を紹介します。

環境の準備

まず、CakePHPフレームワークを正しくインストールして構成していることを確認してください。さらに、有効な電子メールとSMSサービスプロバイダーAPIキーが必要です。この例では、MailGunをメールサービスプロバイダーとして、TwilioをSMSサービスプロバイダーとして使用します。

メールサービスを構成します

CakePHPでは、 config/app.phpファイルにSMTP設定を構成することにより、Mailgunが提供する電子メールサービスを使用できます。 MailGunを構成する例は次のとおりです。

 // app.php
'EmailTransport' => [
    'default' => [
        'className' => 'CakeMailerTransportMailgunTransport',
        'apiKey' => 'YOUR_MAILGUN_API_KEY',
        'domain' => 'YOUR_MAILGUN_DOMAIN',
        'url' => 'YOUR_MAILGUN_API_URL',
    ],
],

Your_mailgun_api_keyyour_mailgun_domainyour_mailgun_api_urlを実際の値に置き換えてください。

SMSサービスを構成します

SMSサービスの場合、Twilioが提供するAPIを使用します。 CakePhpでは、 config/app.phpでtwilioの関連する設定を構成することで実装できます。

 // app.php
'Twilio' => [
    'sid' => 'YOUR_TWILIO_SID',
    'token' => 'YOUR_TWILIO_TOKEN',
    'sender' => 'YOUR_TWILIO_PHONE_NUMBER',
],

同様に、 Your_twilio_sidyour_twilio_tokenyour_twilio_phone_numberを実際の値で置き換えます。

ミドルウェアを作成します

次に、メッセージ通知関数を処理するために、 notificationMiddleware.phpというミドルウェアファイルを書き込みます。ファイルは、SRC/ミドルウェアディレクトリに配置する必要があります。

 // 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を介してテキストメッセージを送信します。 「通知」は、Mailersディレクトリで作成したメールテンプレートを表し、 $データはメールテンプレートに渡されたデータです。

ミドルウェアを登録します

ミドルウェアが有効になるためには、 config/bootstrap.phpファイルに登録する必要があります。

 // config/bootstrap.php
use AppMiddlewareNotificationMiddleware;
use CakeHttpMiddlewareQueue;

$middlewareQueue = new MiddlewareQueue();
$middlewareQueue->add(new NotificationMiddleware());

// 新しいものをセットアップしますmiddlewareQueue
$application->setMiddleware($middlewareQueue);

このコードは、通知をアプリケーションのミドルウェアキューに登録します。

結論は

CakePHPミドルウェアを使用すると、電子メールとSMSサービスを簡単に統合して、自動化されたメッセージ通知機能を実現できます。この記事で提供されているコードの例は、独自のプロジェクトで同様の機能を実装するのに役立ちます。ニーズに応じて、これらのコードをさらに拡張またはカスタマイズして、特定のニーズを満たすことができます。