ホームページ  >  記事  >  PHPフレームワーク  >  Laravel 開発: Laravel 通知を使用して SMS と電子メールを送信するにはどうすればよいですか?

Laravel 開発: Laravel 通知を使用して SMS と電子メールを送信するにはどうすればよいですか?

王林
王林オリジナル
2023-06-13 10:33:061317ブラウズ

Laravel 開発: Laravel 通知を使用して SMS と電子メールを送信するにはどうすればよいですか?

Laravel は、Web アプリケーション開発を簡素化するための多数の機能とツールを提供する、人気のある PHP ベースの Web アプリケーション フレームワークです。 Laravel 通知は Laravel フレームワークの重要な機能であり、SMS や電子メール通知などの通知を簡単かつ迅速に送信する方法を提供します。

この記事では、Laravel 通知を使用して SMS および電子メール通知を送信する方法について詳しく説明します。

ステップ 1: 必要な依存関係をインストールする

始める前に、Laravel フレームワークと Laravel 通知コンポーネントという 2 つの必要な依存関係をインストールする必要があります。

すでに Laravel アプリケーションをお持ちの場合は、この手順をスキップできます。そうでない場合は、ターミナルを開いて次のコマンドを入力して、新しい Laravel アプリケーションを作成します。

composer create-project --prefer-dist laravel/laravel my-app

アプリケーションを作成したら、 Laravel 通知コンポーネントをインストールするには、ターミナルで次のコマンドを実行するだけです:

composer require laravel-notification-channels/nexmo

このコマンドは、SMS および音声通知の送信に使用できる通知ドライバーである nexmo 通知ドライバーをインストールします。

ステップ 2: 通知クラスを作成する

通知クラスを作成して、送信される SMS および電子メール通知を定義する必要があります。次のコマンドを使用して、Laravel アプリケーションに新しい通知クラスを作成できます:

php artisan make:notification NewOrder

このコマンドは、app/Notifications ディレクトリに NewOrder.php という名前の新しい通知クラスを作成します。このクラスは、通知の内容とその送信方法を定義します。

この通知クラスを定義する方法を見てみましょう。

toNexmo メソッドでは、通知の送信内容と送信方法を定義します。テキスト メッセージを送信する必要がある場合は、このメソッドに次のコンテンツを追加できます:

return (new NexmoMessage)
    ->content('你收到了一条新订单。');

電子メール通知を送信する必要がある場合は、このメソッドに次のコンテンツを追加できます:

return (new MailMessage)
    ->line('你收到了一条新订单。')
    ->action('查看订单', url('/orders'))
    ->line('谢谢你的使用。');

これは、cc、bcc、replyTo などの他のメソッドを通知クラスに追加する必要があることに基づいて追加できます。

ステップ 3: 通知の送信

通知クラスを定義しました。次に、アプリケーションで通知を送信する必要があります。 Laravel には、グローバル ブロードキャスト、キュー、イベントなど、通知を送信するためのさまざまな方法が用意されています。

コントローラーで通知を送信する方法を見てみましょう。

これは簡単なコントローラー コード スニペットです。新しい注文通知をクライアントに送信できます。

namespace AppHttpControllers;

use AppHttpControllersController;
use IlluminateHttpRequest;
use IlluminateSupportFacadesNotification;
use AppNotificationsNewOrder;

class OrderController extends Controller
{
    public function store(Request $request)
    {
        // 创建新订单的代码...

        $user = auth()->user();

        Notification::send($user, new NewOrder($order));
    }
}

各新しい注文の作成コードが実行された後、通知クラス NewOrder を使用して次のことを行うことができます。新しい注文通知をクライアントに送信します。上記のコードでは、Laravel の通知ファサードを使用して通知を送信します。

ステップ 4: 通知をテストする

通知クラスとコントローラーを作成し、Laravel の通知ファサードを使用して通知を送信しました。次に、通知が正しく送信できるかどうかをテストする必要があります。

最初に電子メール通知の送信をテストしてみましょう。次のメソッドを通知クラスに追加して、電子メール テスト受信者の電子メール アドレスを設定します。

public function toMail($notifiable)
{
    return (new MailMessage)
        ->to('test@example.com')
        ->line('你收到了一条新订单。')
        ->action('查看订单', url('/orders'))
        ->line('谢谢你的使用。');
}

注: これは、ニーズに応じて設定する必要があるテスト電子メール アドレスです。

これで、実際のクライアントの代わりにテスト電子メール受信機を使用して、通知をトリガーするコードを再度作成できます:

Notification::route('mail', 'test@example.com')
    ->notify(new NewOrder($order));

また、通知に次の行を追加して、SMS 通知の送信をテストすることもできます。 class SMS テスト受信者の電子メール アドレスを設定するには:

public function toNexmo($notifiable)
{
    return (new NexmoMessage)
        ->to('+1234567890')
        ->content('你收到了一条新订单。');
}

注: これは、ニーズに応じて設定する必要があるテスト用の電話番号です。

これで、実際のクライアントの代わりにテスト電子メール受信機を使用して、通知をトリガーするコードを作成できます。

Notification::route('nexmo', '+1234567890')
    ->notify(new NewOrder($order));

電子メールまたは SMS 通知を受信した場合は、正常に受信したことが証明されます。 Laravel 通知を使用して通知を送信しました。

Laravel 通知を使用して SMS および電子メール通知を送信してみてください。より良い Web アプリケーションの構築に役立つことを願っています。

以上がLaravel 開発: Laravel 通知を使用して SMS と電子メールを送信するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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