2012-08-11 54 views
-1

假設我有一個包含5個電子郵件地址的數據庫,並且我有一個聯繫表單。分配負載

每次用戶提交聯繫表單時,表單都需要將詳細信息提交給我的一個存儲的電子郵件地址。這我可以處理,但我開始感到困惑,我將如何得到它*與電子郵件分享提交。

IE。我需要分享電子郵件地址之間的負載。每次提交聯繫表格時,都需要發送到我表格中的下一個電子郵件地址。然後從最開始的時候開始到達最後一封電子郵件。

對不起,如果這是一個嚴重的初學者問題,我似乎不能想到這樣做的最佳方式。

+1

讓5個用戶共享同一個POP帳戶會容易得多。 – 2012-08-11 13:15:28

回答

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); 

這樣你總是會發送電子郵件到最小的地址!

+0

這是完美的!非常感謝 – Charlie 2012-08-12 12:11:14

1

兩個選項浮現在腦海中:

  1. 只需選擇與陣列隨機的電子郵件地址,不要爲了將它們發送到每個電子郵件打擾。這將實現起來更加簡單,並且將會給您帶來相同的規模效果。

    $my_emails = array('anemail', ...); 
    $selected_email = $my_emails[array_rand($my_emails)]; 
    
  2. 每一個電子郵件發送時間

    增加一個計數器,在一個數據庫表或文件或東西堅持的價值,然後用你的計數器的模數和電子郵件的數量從選擇到選擇電子郵件,例如

    $counter = fetch_counter(); 
    $my_emails = array('anemail', ...); 
    $index = ($counter + count($my_emails)) % count($my_emails); 
    $selected_email = $my_emails[$index]; 
    $counter++; 
    store_counter($counter); 
    

我沒有爲年,所以YMMV編程PHP。你已經被警告;)

+0

假設@Charlie不需要持久性,這當然會起作用... – weltschmerz 2012-08-11 13:43:08

+0

如果您需要持久性,我建議的第二個選項將會起作用。顯然你需要實現持久化代碼,但你明白了。 – jstr 2012-08-11 13:45:47

+0

謝謝,我很感激它:)我想過一個數組轉換,但會堅持隨機方法。謝謝! – Charlie 2012-08-12 11:29:35

0

您可以嘗試找出提交的相似之處並分享此內容。然後,您可以構建樹並使用貪婪算法分發電子郵件。這個問題看起來像一個垃圾箱或虛擬機共享。