2011-12-13 32 views
0

我有一個郵件列表表單,我正在處理這個問題,那就是需要讓用戶根據他們選擇的複選框訂閱多個電子郵件列表。現在訂閱郵件列表,它只是發送電子郵件 - list_#@domain.com帶有多個操作的PHP表單

我很好奇,如果這樣的事情是可能的只使用PHP,然後發送電子郵件到不同的列表,基於如果相關的複選框被選中?

+0

我想如果有用戶的電子郵件地址,你可以使用'郵件()'或SMTP功能發送以他們的名義申請電子郵件,他們只需要他們的電子郵件「發件人」。我猜你正在談論的是你發送請求的LISTSERV設置。 –

+0

這是可能的。你可以使用javascript/jquery來做到這一點。 – wargodz009

+0

您能簡單地將電子郵件發送給多次收件人嗎? – Scuzzy

回答

3

當然可以!只需使用PHP的mail function將郵件從用戶在Web表單中指定的電子郵件地址發送到所需的收件人即可。

但有一點需要注意:您可能會遇到一些郵件服務器和人爲創建的「From」標頭(如郵件功能中使用的標頭)。出於安全考慮,如果某條消息看起來對其來源不明確(例如:意外的發件人IP),則某些服務器會將違規IP列入黑名單,從而無法將郵件從該IP發送到該服務器。包括用戶在電子郵件主題或正文中的地址,以及使用該數據(而不是From頭)將收件人添加到郵件列表中可能會更好。

編輯:另外值得一提的是,如果這種可能性存在訂閱很多郵件列表(讀:發送許多電子郵件)在你的郵件腳本的一個執行,你可能要放棄mail()這樣的事情PEAR's mail package。原因是mail()必須爲它發送的每條消息打開一個新的SMTP套接字,而像上面提到的那樣的套件更適合批量發送郵件。

0

就我個人而言,我會在兩個單獨的函數中運行此功能,其中1個用於訂閱電子郵件列表,另一個用於發送郵件。

不知道你用來存儲訂閱數據的數據庫或結構,我會創建一個function來將訂閱信息插入到數據庫中。我可能會這樣做的方式(僅僅爲了靈活的數據庫結構)是建立訂閱郵件列表的array,並用foreach循環來循環它。

接下來是電子郵件的實際發送,我將設置一個特殊的郵件帳戶,其中包含我將發送給它的所有電子郵件別名,然後我將使用一個郵件管道(或輪詢)該郵件到我的系統中「CRON job」,當CRON正在運行時,我會通過SMTP通過我的首選ISP或SMTP服務器發送郵件。這又是一個自定義函數,但過去我使用過Pear SMTP處理程序。如果你快速搜索「php smtp handler」,那麼有很多SMTP處理程序。

我希望這會有所幫助。

0

這裏是使用單選按鈕的簡單表單操作。

<html> 
<head> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script> 
<link rel="stylesheet" href="style.css" /> 
<script type="text/javascript"> 
$(document).ready(function() { 
     $('input[type=submit]').click(function(e){ 
     e.preventDefault(); 
     var id = $('input[type=radio]:checked').attr('id'); 
      if(id == "radio1") { 
       //do an ajax call to a php file to subscribe 
      } else if(id == "radio2") { 
       //do an ajax call to a php file to mail 
      } else { 
       //do an ajax call to a php file to others 
      } 
     }); 
}); 
</script> 
</head> 
<body> 
<form> 
<input type='text' id='fname' name='fname'> 
<input type='text' id='lname' name='lname'> 
<input type='radio' id='radio1' name='lname'> 
<input type='radio' id='radio2' name='lname'> 
<input type='radio' id='radio3' name='lname'> 
<input type='submit' value='submit'> 
</form> 

</body> 
</html> 

*注:我使用的單選按鈕來限制用戶只選擇一個選項