不能在Swift Mailer函数中使用数组


Can't use an array in Swift Mailer function

我正在使用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);

正常发送邮件&每个用户都收到了邮件,但问题是每个用户都可以看到其他用户收到了哪些邮件。基本上在"To"字段中,每封邮件都是绑定的&因此,每个用户都可以看到所有其他电子邮件地址。我想要实现的是每个用户都应该得到个性化的电子邮件,即使它是批量发送的。这就是为什么我试图使用数组&单独的电子邮件,但得到错误。有什么办法吗?

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

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