Heim > Artikel > Backend-Entwicklung > CakePHP-Middleware: Integrieren Sie E-Mail- und SMS-Dienste, um Nachrichtenbenachrichtigungen zu implementieren
CakePHP-Middleware: Integrieren Sie E-Mail- und SMS-Dienste, um Nachrichtenbenachrichtigungen zu implementieren
Einführung:
In modernen Webanwendungen sind Nachrichtenbenachrichtigungen eine sehr wichtige Funktion. Benutzer müssen wichtige Informationen vom System erhalten, z. B. erfolgreiche Registrierung, Zurücksetzen des Passworts, Aktualisierungen des Bestellstatus usw. Um diese Funktionalität zu erreichen, ist die Integration von E-Mail- und SMS-Diensten zu einem gängigen Ansatz geworden. In diesem Artikel werde ich die Verwendung der CakePHP-Middleware zur Implementierung der Nachrichtenbenachrichtigungsfunktion vorstellen und einige spezifische Codebeispiele bereitstellen.
// app.php 'EmailTransport' => [ 'default' => [ 'className' => 'CakeMailerTransportMailgunTransport', 'apiKey' => 'YOUR_MAILGUN_API_KEY', 'domain' => 'YOUR_MAILGUN_DOMAIN', 'url' => 'YOUR_MAILGUN_API_URL', ], ],
Wir müssen YOUR_MAILGUN_API_KEY
, YOUR_MAILGUN_DOMAIN
und YOUR_MAILGUN_API_URL
durch die tatsächlichen Werte ersetzen. 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); } }
YOUR_TWILIO_SID
, YOUR_TWILIO_TOKEN
und YOUR_TWILIO_PHONE_NUMBER
durch die tatsächlichen Werte ersetzen. // config/bootstrap.php use AppMiddlewareNotificationMiddleware; use CakeHttpMiddlewareQueue; $middlewareQueue = new MiddlewareQueue(); $middlewareQueue->add(new NotificationMiddleware()); // 替换原有的middlewareQueue // ... // 设置新的middlewareQueue $application->setMiddleware($middlewareQueue);
Damit die Middleware funktioniert, müssen wir sie bei der Anwendung registrieren. Wir können dies tun, indem wir der Datei bootstrap.php den folgenden Code hinzufügen:
Das obige ist der detaillierte Inhalt vonCakePHP-Middleware: Integrieren Sie E-Mail- und SMS-Dienste, um Nachrichtenbenachrichtigungen zu implementieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!