2013-03-03 47 views
0

我有這個問題。我在PHP中創建了一個註冊表單(帶有一個簡單的後端/控制面板)。旅行者進入一個頁面,他們在那裏註冊(姓名,電話號碼,電子郵件等)。然後註冊被存儲在MySQL數據庫中。每當控制面板加載時,它就會從MySQL數據庫中獲取所有信息。這是不同體育營地的招牌,發生在不同的國家。所以我試圖給'發郵件給註冊X'方法的參與者,然後以某種方式發送一封電子郵件給所有註冊了目的地X的人。我已經考慮過幾個不同的方式來做到這一點,但無法弄清楚,這是更容易做出或更好。從PHP腳本發送多個電子郵件

1)要使'SELECT theEmailAddress FROM tablename WHERE 1',即獲得所有的電子郵件地址。之後,爲他們每個人製作一個PHP郵件函數。然後製作一個接觸式的HTML表單,發送給每封電子郵件。 我只是覺得這個解決方案看起來有些笨拙,或者是什麼?

2)我創建了一個Mailchimp帳戶。我也在考慮使用Mailchimps API(我沒有使用它,看起來有點複雜)在控制面板中創建按鈕,因此爲每個目標創建一個List。然後該消息應該從Mailchimp發送。這種做法的巨大優勢在於,不會與垃圾郵件過濾器發生衝突(因爲Mailchimps電子郵件很少被垃圾郵件過濾器捕獲)。

3)其他一些聰明的方法,我還沒有想過。我接受任何建議。

謝謝。

+0

你可以使用while循環我想 – Pachonk 2013-03-03 23:17:02

回答

1

以下代碼將繼續發送郵件,直到處理完所有行(與條件匹配)。

$query = mysql_query("SELECT theEmailAddress FROM tablename WHERE 1"); 
while ($row = mysql_fetch_assoc($query)) { 

    $to  = $row['theEmailAddress']; 
    $subject = 'the subject'; 
    $message = 'hello'; 
    $headers = 'From: [email protected]' . "\r\n" . 
    'X-Mailer: PHP/' . phpversion(); 

    mail($to, $subject, $message, $headers); 
} 

然而,大多數郵件服務器都阻止了php郵件程序,或將其標記爲垃圾郵件。所以我建議尋找一個SMTP郵件類。有很多不同的類型,所以你必須自己挑選一個。但是,你可以連接到一個Gmail(或其他SMTP帳戶),並通過那裏發送你的郵件。它使事情更可靠。

1

我建議使用MailChimp製作的Mandrill API,而不是MailChimp API(用於將電子郵件活動發送給人員列表)。這是一個API,用於發送您所描述的一次性和交易性電子郵件。使用Mandrill將具有可靠的可交付性(如您所述)的優勢,併爲您提供有關誰正在打開並點擊您的電子郵件的數據。

在這種情況下,您將有一個類似於@ Neograph734的腳本,但不使用PHP的mail()函數,而是使用Mandrill API。

@ Neograph734也是正確的,你也可以用直接PHP來做到這一點。

1

MailChimp API具有您需要的功能。一種做法是創建每個國家特有的Interest Groups。單獨使用組可以讓您發送電子郵件到整個列表,並通過每個用戶訂閱的組自定義內容。與Segments結合使用,您可以只寫信給興趣小組的成員。

MailChimp API可能看起來很複雜,但它正在建模一個固有的複雜問題。 API經過精心設計,具有所需的功能。

您也可以通過使用您的程序生成列表,然後手動將其導入MailChimp並從Web UI發送電子郵件來妥協。這取決於列表的大小和發送電子郵件的頻率。

MailChimp是要走的路,如果你想要堅如磐石的電子郵件和跟蹤。只需要一些時間來學習。