ホームページ バックエンド開発 PHPチュートリアル CakePHP ミドルウェア: 電子メールと SMS サービスを統合してメッセージ通知を実装します

CakePHP ミドルウェア: 電子メールと SMS サービスを統合してメッセージ通知を実装します

Jul 28, 2023 am 11:13 AM
ミドルウェア cakephp 通知

CakePHP ミドルウェア: 電子メールと SMS サービスを統合してメッセージ通知を実装する

はじめに:
最新の Web アプリケーションでは、メッセージ通知は非常に重要な機能です。ユーザーは、登録の成功、パスワードのリセット、注文ステータスの更新などの重要な情報をシステムから受け取る必要があります。この機能を実現するには、電子メール サービスと SMS サービスを統合することが一般的なアプローチになっています。この記事では、CakePHP ミドルウェアを使用してメッセージ通知機能を実装する方法と、いくつかの具体的なコード例を紹介します。

  1. 環境の準備:
    まず、CakePHP フレームワークがインストールされ、正しく構成されていることを確認する必要があります。さらに、有効な電子メールおよび SMS サービス プロバイダーの API キーが必要です。この記事では、メール サービス プロバイダーとして Mailgun を使用し、SMS サービス プロバイダーとして Twilio を使用します。
  2. メール サービスの構成:
    CakePHP では、config/app.php ファイルで SMTP 設定を構成することで、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_DOMAIN、および YOUR_MAILGUN_API_URL を実際の値に置き換える必要があります。

  1. 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_TOKEN、および YOUR_TWILIO_PHONE_NUMBER を実際の値に置き換える必要があります。

  1. ミドルウェアの作成:
    これで、メッセージ通知機能を実装するための CakePHP ミドルウェアの作成を開始できます。まず、NotificationMiddleware.php という名前のファイルを作成し、それを src/Middleware ディレクトリに配置します。
// 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 は電子メール テンプレートに渡されるデータを表します。

  1. ミドルウェアの登録:
    ミドルウェアを動作させるには、ミドルウェアをアプリケーションに登録する必要があります。これを実現するには、次のコードを bootstrap.php ファイルに追加します。
// 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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

CakePHP プロジェクトの構成 CakePHP プロジェクトの構成 Sep 10, 2024 pm 05:25 PM

この章では、CakePHP の環境変数、一般設定、データベース設定、電子メール設定について理解します。

CakePHP データベースの操作 CakePHP データベースの操作 Sep 10, 2024 pm 05:25 PM

CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。

Xiaomi ブラウザーでメッセージ通知をオフにする方法 Xiaomi ブラウザーでメッセージ通知をオフにする方法 Feb 24, 2024 pm 12:20 PM

Xiaomi Browser でメッセージ通知をオフにする方法 Xiaomi Browser は最もホットな情報を自動的に通知しますが、多くの友達はメッセージ通知をオフにする方法を知りません。次はプレイヤーに提供される Xiaomi Browser でメッセージ通知をオフにする方法ですチュートリアル、興味のあるプレイヤーはぜひ見に来てください! Xiaomi ブラウザのメッセージ通知をオフにする方法 1. まず Xiaomi 携帯電話で [ブラウザ] 機能を開き、メイン ページの右下隅に [My] と入力して特別なエリアに入ります; 2. その後、機能バーが展開されます以下、アバター機能の右側にある[設定]をクリックします; 3.設定機能ページで[メッセージ通知管理]をクリックします; 4.最後に[メッセージ通知を受け取る]の後ろにあるボタンをスライドしてメッセージ通知をオフにします。

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP ルーティング CakePHP ルーティング Sep 10, 2024 pm 05:25 PM

この章では、ルーティングに関連する次のトピックを学習します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

See all articles