2012-04-22 196 views
1

我有一个分类广告网站,我正在制作一个广告系列,当广告张贴在类别和订阅的城市时,我的用户就会邮寄。现在,我有一个问题。我已经将这个文件设置为每天使用cronjob运行一次。在一天中,我的网站每天发布50个广告,因此用户每天可以收到50封电子邮件。我希望将所有50封电子邮件都包含在一个电子邮件中,因此用户将收到1封电子邮件,但我不知道该怎么做。例如:每封电子邮件有一个链接,50封电子邮件有50个链接。我希望用户只能收到一封电子邮件,其中包含所有50个链接。 我尝试了很多方法,但我做不到。 欢迎任何建议。在一个电子邮件中包含一些电子邮件

感谢

回答

0

简单地聚集在一个阵列,在那里你设置的邮箱作为阵列的关键广告信息。

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

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

0

此代码是太糟糕了去改变它,它更simplier写新的。我可以建议你创建数组,并将电子邮件信息发送给它,而不是立即发送。如果数组已经包含具有相同电子邮件的项目,请不要添加新电子邮件,而是将信息添加到现有电子邮件。获取所有电子邮件后,迭代新数组并发送电子邮件。

0

由于您已经为脚本运行了cronjob,只需设置适当的时间(清晨或夜晚)并查询您存储分类中帖子的数据库,选择最近发布的50个帖子,将它们添加到电子邮件并将它们发送给注册的用户以接收最新的发布邮件。似乎很直截了当,除非我误解了某些东西。

另外,我很好奇为什么(在你的脚本中)你在每一小段代码之后跳入和跳出PHP。这非常令人分心,坦率地说,我甚至不想阅读代码。上面显示的东西没有任何理由可以离开PHP--除非这些都是你们在一起显示的小片段。如果是这样,请忽略我的投诉。

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

/scratcheshead

相关问题