Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在一封邮件中包含一些电子邮件_Php_Mysql_Include_Cron_Send - Fatal编程技术网

Php 在一封邮件中包含一些电子邮件

Php 在一封邮件中包含一些电子邮件,php,mysql,include,cron,send,Php,Mysql,Include,Cron,Send,我有一个分类广告网站,我正在制作一个mod,当我的用户在该类别和他们订阅的城市发布广告时,它会向我的用户发送邮件。现在,我有个问题。我已使用cronjob将此文件设置为每天运行一次。在我的网站上,每天发布50条广告,用户每天收到50封电子邮件。我想包括所有的50封电子邮件在一个单一的,所以用户将得到1封电子邮件,但我不知道如何做到这一点。 每封电子邮件有一个链接,50封电子邮件有50个链接。我希望用户只收到一封电子邮件,其中将有所有的50个链接。 我试过很多方法,但都做不到。 每一项建议都受到欢

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


谢谢

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

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

另外,我很好奇为什么在上面的脚本中,你在每一小段代码之后都会跳进跳出PHP。这很让人分心,坦率地说,这让我甚至不想读代码。从上面显示的内容来看,没有任何理由离开PHP——除非这些都是您包含在一起以显示在这里的小片段。如果是这样的话,不要理会我的抱怨

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

/Scratchehead

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

$recipients = array();
while ($row = mysql_fetch_assoc($result)) {
  $email = $row["email"];
  if (!array_key_exists($email, $recipients)) {
    $recipients[$email] = array();
  }
  $recipients[$email][] = $row;
}
在此之后,您有一个数组,每个电子邮件都有一个可变数量的$row条目。您只需要使用foreach循环将这些条目添加到邮件模板中