2014-05-08 1 views
1

Je veux utiliser le decorator pour envoyer des messages personnalisés aux utilisateurs.Swift Mailer avec décorateur n'envoie pas de mails en Yii2

Pour une raison quelconque, le même message est envoyé.

Pourquoi?

$replacements = array(); 
       $replacements['[email protected]'] = array(
        '{v1}' => 'valoare1', 
        '{v2}' => 'valoare2', 
       ); 
       $replacements['[email protected]'] = array(
        '{v1}' => 'valoare21', 
        '{v2}' => 'valoare22', 
       ); 
       $replacements['[email protected]'] = array(
        '{v1}' => 'valoare31', 
        '{v2}' => 'valoare32', 
       ); 
       $replacements['[email protected]'] = array(
        '{v1}' => 'valoare41', 
        '{v2}' => 'valoare42', 
       ); 
       $replacements['[email protected]'] = array(
        '{v1}' => 'valoare51', 
        '{v2}' => 'valoare52', 
       ); 

       echo count($replacements); 

       $decorator = new \Swift_Plugins_DecoratorPlugin($replacements); 

       $mailer = \Swift_Mailer::newInstance(
           \Swift_SmtpTransport::newInstance('smtp', 25) 
       ); 

       $mailer->registerPlugin($decorator); 

       $message = \Swift_Message::newInstance()->setSubject('title {v1}')->setBody('layout {v2}'); 

       foreach ($replacements as $email => $replacement) { 
        $message->setFrom(array($email => 'to me')); 
//     $message->setTo($email); 
        $message->addTo($email); 
        $mailer->send($message); 
       } 
+0

qu'est-ce que vous voulez atteindre? Il pourrait y avoir d'autres moyens. Mélanger aussi [] avec la syntaxe array() n'est pas sympa! –

Répondre

0

Ajoutez le suivant dans votre fichier confi/main.php.

'mail' => [ 
    'class' => 'yii\swiftmailer\Mailer', 
    'useFileTransport'=>false, 
    'transport' => [ 
    'class' => 'Swift_SmtpTransport', 
    'host' => 'host_name', 
    'username' => 'user_name', 
    'password' => 'password', 
    'port' => '587', 
    'encryption' => 'tls' 
    ], 
] 

et envoyer du courrier en utilisant

\Yii::$app->mailer->compose() 
    ->setHtmlBody("mail_content") 
    ->setFrom('from_email_id') 
    ->setTo('to_email_id') 
    ->setSubject("Subject") 
    ->send();