2016-09-22 8 views
1

を変更することはできません私は、複数の受信者のアドレスに電子メールを送信しようとしていますケーキPHPで3cakephpの3の複数のアドレスにメールを送信:既存の設定

を私のコードは次のとおりです。

$this->loadModel('AsIndividualDetails'); 
$EmailDetails = $this-> AsIndividualDetails->find('all',['fields'=>'email']); 
$EmailDetails = $EmailDetails->toArray(); 

    foreach ($EmailDetails as $key => $a) { 

     $this->loadModel('DomainEmailDetails'); 
     $DomainEmailDetails = $this-> DomainEmailDetails->find('all')->first(); 
     $DomainEmailDetails = $DomainEmailDetails->toArray(); 
     $host  = 'ssl://'.$DomainEmailDetails['host_name']; 
     $username = $DomainEmailDetails['user_name']; 
     $password = $DomainEmailDetails['user_password']; 
     $port  = $DomainEmailDetails['port']; 
     $email_to = $a['email']; 
     $senderName = 'abc'; 
     $email_id ='[email protected]'; 

     Email::configTransport('WebMail', [ 
                  'className' => 'Smtp', 
                  'host' => $host, 
                  'port' => $port, 
                  'timeout' => 30, 
                  'username' => $username, 
                  'password' => $password, 
                  'client' => null, 
                  'tls' => null, 
              ]); 
         ////////// SEND MAIL 
         $email = new Email('WebMail'); 
         $email ->template('default','default') 
           ->emailFormat('both') 
           ->from([$username => $senderName]) 
           ->to($email_to) 
           ->replyTo($email_id) 
           ->subject('Client Message'); 
         $response = $email->send('My msg'); 

         if($response){ 
          echo 'success'; 
         }else{ 
          echo 'failed'; 
         } 

} 

私が実行すると、このスクリプトただ一つだけメール送信に成功し、エラーになったと後:このエラーを解決し、すべての受信者のメールアドレスにメールを送信する方法

Cannot modify an existing config "WebMail" 

答えて

0

メールの設定をループ外にする。電子メールを送信するたびに構成を試してみることは一度だけです。その1つの設定に基づいてすべての電子メールを送信します。

+0

ためClass Email APIを参照してくださいには、電子メールでのドキュメントが同様に輸送しています。 [電子メールの転送](http://book.cakephp.org/3.0/en/core-libraries/email.html#configuring-transports) –

+0

複数の設定で複数のユーザーに電子メールを送信したい場合はどうすればいいですか –

+0

別々に構成を作成します。しかし、それに基づいて、あなたはその構成で電子メールを送信する人にどのような構成に行くかを決定します。 @AjayKrishnaDutta –

0

あなたが本当にループ内で設定を設定する必要がある場合は、設定を書き換える前に、それを削除できます。

use Cake\Mailer\Email; 
    Email::dropTransport($key); 

はここで詳細

関連する問題