假设我有一个包含5个电子邮件地址的数据库,我有一个联系表格。
每次用户提交联系表单时,表单都需要将详细信息提交到我存储的电子邮件地址之一。这我可以处理,但我开始感到困惑,我将如何得到*与电子邮件分享提交。
IE。我需要分享电子邮件地址之间的负载。每次提交联系表单时,都需要发送到我表格中的下一个电子邮件地址。然后在它到达最后一封电子邮件时从头开始。
很抱歉,如果这是一个严肃的初学者问题,我似乎无法想到最好的方法。
答案 0 :(得分:1)
有两种选择:
只需从您的阵列中选择一个随机的电子邮件地址,不要费心将它们按顺序发送到每封电子邮件。这将更容易实现,并将在规模上为您提供相同的结果。
$my_emails = array('anemail', ...);
$selected_email = $my_emails[array_rand($my_emails)];
每次发送电子邮件时递增计数器,将值保存在db表或文件中,然后使用计数器的模数和您必须选择的电子邮件数来选择电子邮件,例如
$counter = fetch_counter();
$my_emails = array('anemail', ...);
$index = ($counter + count($my_emails)) % count($my_emails);
$selected_email = $my_emails[$index];
$counter++;
store_counter($counter);
我没有编程PHP多年,所以YMMV。你已被警告;)
答案 1 :(得分:1)
您可以在电子邮件表格中考虑名为sendcount
的额外列,默认为0.在要查找要向其发送电子邮件的地址的脚本中,执行以下操作:
//Get email with least counts
$query="SELECT * FROM emails ORDER BY sendcount ASC LIMIT 1";
$result=mysql_query($query);
$object=mysql_fetch_object($result); //This will store the required email address in $object->email
//Send email...
//Increase counter by one
$query="UPDATE emails SET sendcount=sendcount+1 WHERE id=".$object->id;
mysql_query($query);
这样您就会始终将电子邮件发送到计数最少的地址!
答案 2 :(得分:0)
您可以尝试找出提交内容的相似之处并分享。然后,您可以构建一个树并使用贪婪算法来分发电子邮件。问题看起来像bin-packing或vm共享。