无法在Swift Mailer功能中使用数组

时间:2014-03-21 04:54:29

标签: php email swiftmailer

我正在使用Swift Mailer向用户发送电子邮件。我遵循脚本一次向许多用户发送电子邮件。

$j=0;
while($row = mysql_fetch_assoc($email))
{
    $message[$j]->addTo($row['email_invited']);
    $mailer->send($message[$j]);
    $j++;
}

执行此操作时出现以下错误:

Fatal error: Cannot use object of type Swift_Message as array in
/home/public_html/example.com/people.php on line 21

如果我尝试发送这样的电子邮件:

while($row = mysql_fetch_assoc($email))
{
    $message->addTo($row['email_invited']);
}
$mailer->send($message);

它正常发送电子邮件&每个用户都可以获得它,但问题是每个用户都可以看到其他用户与他一起收到的电子邮件。因此,基本上在“收件人”字段中,每封电子邮件都是绑定的。因此每个用户都可以看到所有其他电子邮件地址。 我想要实现的是每个用户都应该只收到个性化的电子邮件,即使它是批量发送的。这就是为什么我试图使用array&单独的电子邮件,但收到错误。 知道如何实现这个目标吗?

1 个答案:

答案 0 :(得分:1)

怎么样。我认为你需要在每个循环中创建新的消息实例(也可能是邮件)。

while($row = mysql_fetch_assoc($email))
{
    $mailer = Swift_Mailer::newInstance($transportName);
    $message = Swift_Message::newInstance($subject);
    $message->addTo($row['email_invited']);
    $mailer->send($message);
}