Yii2 애플리케이션에서 모든 이메일을 하나의 받은 편지함으로 리디렉션하는 방법
@runtime/mail
에 (기본적으로) 저장되어 개발자가 결과를 검사할 수 있습니다.그러나 받은 편지함에서 실제로 이메일을 수신하려는 경우에는 어떻게 될까요? 모든 이메일이 하나의 계정으로 이동한다고 가정하면 문제가 없습니다. 매개변수로 설정하고
params-local.php
에서 수정합니다(고급 애플리케이션 템플릿 가정).앱이 다른 계정으로 이메일을 보내고 replyTo, cc 및 bcc 필드를 사용해야 할 때 큰 문제가 발생합니다.
if(YII_DEBUG)
를 많이 사용하지 않고 이전 접근 방식으로 해결하는 것은 거의 불가능합니다.자, 다음으로 해결책이 있습니다.
'useFileTransport' => true,
'fileTransportCallback' => function (\yii\mail\MailerInterface $mailer, \yii\mail\MessageInterface $message) {
$message->attachContent(json_encode([
'to' => $message->getTo(),
'cc' => $message->getCc(),
'bcc' => $message->getBcc(),
'replyTo' => $message->getReplyTo(),
]), ['fileName' => 'metadata.json', 'contentType' => 'application/json'])
->setTo('[email protected]') // account to receive all the emails
->setCc(null)
->setBcc(null)
->setReplyTo(null);
$mailer->useFileTransport = false;
$mailer->send($message);
$mailer->useFileTransport = true;
return $mailer->generateMessageFileName();
}
어떻게 작동합니까?
fileTransportCallback
는 @runtime/mail
에 저장된 이메일을 생성하는 데 사용해야 하는 파일 이름을 지정하는 콜백입니다. 그것은 이메일 전송 프로세스를 "가로채기"하여 우리의 돌고래에 사용할 수 있습니다.useFileTransport
useFileTransport
이렇게 하면 지정된 계정의 모든 이메일을 수신하고
@runtime/mail
에 저장합니다.Yii2 애플리케이션에서 이메일을 검토하는 아주 간단한 도우미입니다.
Reference
이 문제에 관하여(Yii2 애플리케이션에서 모든 이메일을 하나의 받은 편지함으로 리디렉션하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/glpzzz/how-to-redirect-all-emails-to-one-inbox-on-yii2-applications-5d9e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)