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

王林
王林asal
2023-07-28 11:13:061147semak imbas

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.

  1. Persediaan persekitaran:
    Pertama, kita perlu memastikan rangka kerja CakePHP telah dipasang dan dikonfigurasikan dengan betul. Selain itu, kami perlu mempunyai kunci API penyedia perkhidmatan e-mel dan SMS yang sah. Dalam artikel ini, saya akan menggunakan Mailgun sebagai pembekal perkhidmatan mel dan Twilio sebagai pembekal perkhidmatan SMS.
  2. Konfigurasi Perkhidmatan Mel:
    Dalam CakePHP, kami boleh menggunakan perkhidmatan e-mel yang disediakan oleh Mailgun dengan mengkonfigurasi tetapan SMTP dalam fail config/app.php.
// 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_API_KEY, YOUR_MAILGUN_DOMAIN dan YOUR_MAILGUN_API_URL dengan nilai sebenar. YOUR_MAILGUN_API_KEYYOUR_MAILGUN_DOMAINYOUR_MAILGUN_API_URL替换为实际的值。

  1. 配置短信服务:
    对于短信服务,我们将使用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

    Konfigurasikan perkhidmatan SMS:
      Untuk perkhidmatan SMS, kami akan menggunakan API yang disediakan oleh Twilio. Dalam CakePHP, kami boleh menggunakan perkhidmatan mereka dengan mengkonfigurasi tetapan Twilio dalam fail config/app.php.

    1. // 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);
          }
      }
    2. Begitu juga, kita perlu menggantikan YOUR_TWILIO_SID, YOUR_TWILIO_TOKEN dan YOUR_TWILIO_PHONE_NUMBER dengan nilai sebenar.

    Buat middleware:
      Kini, kita boleh mula menulis middleware CakePHP untuk melaksanakan fungsi pemberitahuan mesej. Mula-mula, kami mencipta fail bernama NotificationMiddleware.php dan meletakkannya dalam direktori src/Middleware.

    1. // config/bootstrap.php
      
      use AppMiddlewareNotificationMiddleware;
      use CakeHttpMiddlewareQueue;
      
      $middlewareQueue = new MiddlewareQueue();
      $middlewareQueue->add(new NotificationMiddleware());
      
      // 替换原有的middlewareQueue
      // ...
      
      // 设置新的middlewareQueue
      $application->setMiddleware($middlewareQueue);
    2. Dalam kod, kami menggunakan MailerAwareTrait yang disertakan dengan CakePHP untuk menghantar e-mel. Kami juga menghantar SMS melalui API Twilio. 'pemberitahuan' dalam kod mewakili templat e-mel yang kami buat dalam direktori Mailers dan $data mewakili data yang dihantar ke templat e-mel.

    Daftar middleware:

    Untuk membolehkan middleware berfungsi, kita perlu mendaftarkannya dengan aplikasi. Kita boleh melakukan ini dengan menambahkan kod berikut pada fail bootstrap.php:

    rrreee🎜Dengan cara ini, kami mendaftarkan NotificationMiddleware ke dalam baris gilir middleware aplikasi. 🎜🎜Kesimpulan: 🎜Dengan menggunakan perisian tengah CakePHP, kami boleh menyepadukan perkhidmatan e-mel dan SMS dengan mudah untuk melaksanakan fungsi pemberitahuan mesej. Artikel ini menyediakan beberapa contoh kod yang kami harap dapat membantu anda melaksanakan fungsi yang serupa dalam projek anda sendiri. Sudah tentu, anda juga boleh melanjutkan dan menyesuaikan kod ini mengikut keperluan anda. Semoga berjaya membina aplikasi web yang berkuasa dan berciri penuh dengan CakePHP! 🎜

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn