CakePHP 미들웨어: 이메일과 SMS 서비스를 통합하여 메시지 알림 구현
소개:
최신 웹 애플리케이션에서 메시지 알림은 매우 중요한 기능입니다. 사용자는 성공적인 등록, 비밀번호 재설정, 주문 상태 업데이트 등과 같은 중요한 정보를 시스템으로부터 받아야 합니다. 이 기능을 달성하기 위해 이메일과 SMS 서비스를 통합하는 것이 일반적인 접근 방식이 되었습니다. 이 기사에서는 CakePHP 미들웨어를 사용하여 메시지 알림 기능을 구현하는 방법을 소개하고 몇 가지 구체적인 코드 예제를 제공합니다.
// app.php 'EmailTransport' => [ 'default' => [ 'className' => 'CakeMailerTransportMailgunTransport', 'apiKey' => 'YOUR_MAILGUN_API_KEY', 'domain' => 'YOUR_MAILGUN_DOMAIN', 'url' => 'YOUR_MAILGUN_API_URL', ], ],
YOUR_MAILGUN_API_KEY
, YOUR_MAILGUN_DOMAIN
및 YOUR_MAILGUN_API_URL
을 실제 값으로 바꿔야 합니다. 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
및 YOUR_TWILIO_PHONE_NUMBER
를 실제 값으로 바꿔야 합니다. // config/bootstrap.php use AppMiddlewareNotificationMiddleware; use CakeHttpMiddlewareQueue; $middlewareQueue = new MiddlewareQueue(); $middlewareQueue->add(new NotificationMiddleware()); // 替换原有的middlewareQueue // ... // 设置新的middlewareQueue $application->setMiddleware($middlewareQueue);
미들웨어가 작동하려면 애플리케이션에 등록해야 합니다. bootstrap.php 파일에 다음 코드를 추가하여 이를 수행할 수 있습니다:
위 내용은 CakePHP 미들웨어: 이메일과 SMS 서비스를 통합하여 메시지 알림 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!