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