1

我有一个分类网站,我正在制作一个 mod,当广告发布在他们订阅的类别和城市中时,它将向我的用户发送邮件。现在,我有一个问题。我已将此文件设置为每天使用 cronjob 运行一次。一天之内,我的网站每天发布 50 个广告,因此用户每天收到 50 封电子邮件。我想将所有 50 封电子邮件包含在一封邮件中,因此用户将收到 1 封电子邮件,但我不知道该怎么做。例如:每封电子邮件有一个链接,50 封电子邮件有 50 个链接。我希望用户只收到一封电子邮件,其中包含所有 50 个链接。我尝试了很多方法,但我做不到。每个建议都受到欢迎。

谢谢

4

3 回答 3

0

这段代码太糟糕了,无法更改,编写新代码要简单得多。我可以建议您创建数组并将电子邮件信息放入其中,而不是立即发送。如果数组已包含具有相同电子邮件的项目,请不要添加新电子邮件,而是将信息添加到现有电子邮件。获取所有电子邮件后,遍历新数组并发送电子邮件。

于 2012-04-22T11:18:39.703 回答
0

只需将您的广告信息收集在一个数组中,您可以在其中将电子邮件设置为数组键。

$recipients = array();
while ($row = mysql_fetch_assoc($result)) {
  $email = $row["email"];
  if (!array_key_exists($email, $recipients)) {
    $recipients[$email] = array();
  }
  $recipients[$email][] = $row;
}

在此之后,您有一个数组,每封电子邮件都有可变数量的 $row-entries。您只需使用 foreach 循环将这些条目添加到您的邮件模板中。

于 2012-05-06T12:46:07.107 回答
0

由于您已经在为脚本运行 cronjob,只需设置一个适当的时间(清晨或晚上)并查询您存储分类广告中的帖子的数据库,选择最后 50 个帖子,将它们添加到电子邮件中并发送它们发送给注册的用户以接收最新的帖子电子邮件。看起来很简单,除非我误解了什么。

另外,我很好奇为什么(在上面的脚本中)你在每个小代码块之后跳进跳出 PHP。这很让人分心,坦率地说,我什至不想阅读代码。上面显示的内容没有任何理由离开 PHP - 除非这些都是您包含在此处显示的所有小片段。如果是这样,请忽略我的抱怨。

<?php } ?>
<?php } ?>
<?php } ?>
<?php } ?>
<?php } ?>
<?php } ?>

/scratcheshead

于 2012-04-22T12:07:29.723 回答