我正在使用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&单独的电子邮件,但收到错误。 知道如何实现这个目标吗?
答案 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);
}