1

decoratorを使用してカスタム メッセージをユーザーに送信したいと考えています。

何らかの理由で、同じメッセージが送信されます。

なんで?

$replacements = array();
                $replacements['f1@d.net'] = array(
                    '{v1}' => 'valoare1',
                    '{v2}' => 'valoare2',
                );
                $replacements['f2@d.net'] = array(
                    '{v1}' => 'valoare21',
                    '{v2}' => 'valoare22',
                );
                $replacements['f3@d.net'] = array(
                    '{v1}' => 'valoare31',
                    '{v2}' => 'valoare32',
                );
                $replacements['f4@d.net'] = array(
                    '{v1}' => 'valoare41',
                    '{v2}' => 'valoare42',
                );
                $replacements['f5@d.net'] = 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);
                }
4

1 に答える 1

0

conf/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'
  ],
]

そして、を使用してメールを送信します

\Yii::$app->mailer->compose()
  ->setHtmlBody("mail_content")
  ->setFrom('from_email_id')
  ->setTo('to_email_id')
  ->setSubject("Subject")
  ->send();
于 2014-09-19T12:06:47.183 に答える