최신 웹 응용 프로그램에서는 메시지 알림 기능이 중요합니다. 사용자 등록, 비밀번호 재설정 또는 주문 업데이트에 관계없이 알림은 사용자 경험에 없어서는 안될 부분입니다. 이 기사는 CakePHP 미들웨어를 사용하여 이메일 및 SMS 서비스를 통합하여 자동 메시지 알림 기능을 달성하는 방법을 소개합니다.
먼저 CakePHP 프레임 워크를 올바르게 설치하고 구성했는지 확인하십시오. 또한 유효한 이메일 및 SMS 서비스 제공 업체 API 키가 있어야합니다. 이 예에서는 Mailgun을 Mail Service 제공 업체로, Twilio를 SMS 서비스 제공 업체로 사용합니다.
CakePHP에서는 config/app.php 파일에서 SMTP 설정을 구성하여 Mailgun에서 제공하는 이메일 서비스를 사용할 수 있습니다. 다음은 Mailgun 구성의 예입니다.
// 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을 실제 값으로 바꾸십시오.
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_sid , your_twilio_token 및 your_twilio_phone_number를 실제 값으로 바꾸십시오.
다음으로 메시지 알림 기능 처리를 위해 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를 통해 문자 메시지를 보내십시오. '알림'은 Mailers 디렉토리에서 만든 메일 템플릿을 나타내고 $ 데이터는 메일 템플릿에 전달 된 데이터입니다.
미들웨어가 적용하려면 config/bootstrap.php 파일에 등록해야합니다.
// config/bootstrap.php
use AppMiddlewareNotificationMiddleware;
use CakeHttpMiddlewareQueue;
$middlewareQueue = new MiddlewareQueue();
$middlewareQueue->add(new NotificationMiddleware());
// 새로운 것을 설정하십시오middlewareQueue
$application->setMiddleware($middlewareQueue);
이 코드는 알림 Middleware를 응용 프로그램의 미들웨어 큐에 등록합니다.
CakePHP 미들웨어를 사용하면 이메일 및 SMS 서비스를 쉽게 통합하여 자동 메시지 알림 기능을 달성 할 수 있습니다. 이 기사에 제공된 코드 예제는 자신의 프로젝트에서 유사한 기능을 구현하는 데 도움이 될 수 있습니다. 귀하의 요구에 따라, 특정 요구 사항을 충족시키기 위해 이러한 코드를 더 확장하거나 사용자 정의 할 수 있습니다.