2017-09-23 1 views
0

축구 팬들을위한 게임을 씁니다. 그래서, 나는 사람들의 그룹 (완전하게 복제 된 전자 메일 복사본이 아닌)에게 유사한 메일을 보내야한다. 주기로 메일을 보내면 Yii 프레임 워크에서 메일을 두 번 보냅니다. 정적 변수 Yii :: $ app 때문입니다. 누군가 나에게 힌트를 줄 수 있습니까? 예를 들면 코드입니다.Yii2 SwiftMailer가 메일을 두 번 보냅니다.

foreach ($oRace->user as $currUser) { 
     $htmlContent = $this->renderPartial('start_race', ['oRace' => $oRace]); 
     Yii::$app->mailer->compose() 
       ->setFrom('[email protected]') 
       ->setTo($currUser->mail) 
       ->setSubject('Race "' . $raceName . '" has Started') 
       ->setHtmlBody($htmlContent) 
       ->send(); 
    } 

미리 감사드립니다.

내 메일러 구성.

'mailer' => [ 
     'class' => 'yii\swiftmailer\Mailer', 
     'useFileTransport' => false, 
     'transport' => [ 
      'class' => 'Swift_SmtpTransport', 
      'host' => 'mail.example.eu', 
      'username' => '[email protected]', 
      'password' => 'password', 
      'port' => '587', 
      'encryption' => 'TLS', 
     ] 
    ], 

한 가지 더. 주기의 마지막 메일은 중복되지 않습니다 (마지막 메일 만).

다른 실패한 옵션입니다. Yii :: $ app-> mailer-> sendMultiple ($ allMails);

+0

2 개의 메일 비용을 코드에 논리 오류가있을 수 있습니다. –

+0

$ oRace의 내용을 확인하십시오 .. – scaisEdge

+0

많은 테스트를했는데 다 잘되어 있습니다. 메일 클래스의 인스턴스를 별도로 얻을 수 있습니까? – koredalin

답변

0

제공되는 코드 스 니펫에서 3 가지 이유가있을 수 있습니다. 다음 중 하나를,

  • 뭔가
  • SwiftMailer의 송신 함수 내 잘못 [email protected] "

    • $oRace->user는`[email protected]처럼 두 번 두 번
    • $currUser->mail 이메일을 포함하는 모든 사용자를 포함하는
    관련 문제