2012-05-05 195 views
0

我做了一個不發送任何電子郵件的小代碼。它給了我一個空白頁面。有什麼建議麼?如何使用PHP的郵件()函數發送電子郵件

<?php 
$result_array1 = array(); 
$result_array2 = array(); 
$result_array3 = array(); 
$result_array4 = array(); 
$sql1 = "SELECT * FROM `test_thing`"; 
$result1 = mysql_query("$sql1") or die($sql1.mysql_error()); 
while($row1 = mysql_fetch_array($result1)) 
{ 
    $result_array1[] = $row1['email']; 
    $result_array2[] = $subject; 
    $result_array3[] = $message; 
    $result_array4[] = $header; 
} 
$sentmail = mail($result_array1,$result_array2,$result_array3,$result_array4); 
?> 

回答

7
It gives me a blank page. 

其實它應該。您不要在您顯示的代碼中使用輸出函數。如果您希望顯示錯誤消息,請確保您啓用了display_errors,並且error_reportingE_ALL

4

Mail將字符串作爲參數,而不是數組。你需要做一個for循環,並在每個數組上爲其索引調用郵件。

1
while($row1 = mysql_fetch_array($result1)) 
{ 
    $result_array1[] = $row1['email']; 
    $result_array2[] = $subject; 
    $result_array3[] = $message; 
    $result_array4[] = $header; 
} 

我希望你的意思是:

while($row1 = mysql_fetch_array($result1)) 
{ 
    $result_array1 = $row1['email']; 
    $result_array2 = $subject; 
    $result_array3 = $message; 
    $result_array4 = $header; 
} 

mail()將字符串。除非您有意循環併發送多封郵件,否則您需要重新設計您的代碼。

+0

你能給我一個提示如何重新設計代碼有點因爲我的意思是循環發送多個郵件 謝謝 – TheBig

1

如果這是您的完整代碼,您的數據庫未正確初始化。有關更多信息和示例,請閱讀mysql_connect()的文檔。

此外,嘗試回顯一些調試數據,看看你實際上是從數據庫中獲取一些數據。

+0

我的完整代碼大約500行,這只是它的一小部分。 – TheBig

0

爲什麼不

<?php 
    $result_array1 = array(); 
    $result_array2 = array(); 
    $result_array3 = array(); 
    $result_array4 = array(); 
    $sql1 = "SELECT * FROM `test_thing`"; 
    $result1 = mysql_query("$sql1") or die($sql1.mysql_error()); 
    while($row1 = mysql_fetch_array($result1)) 
    { 
    $sentmail = mail($row1['email'],$subject,$message,$header); 
    } 
?> 
+0

,因爲這樣用戶收到無限的電子郵件 – TheBig

0

這裏我覺得你的問題不止一個。 首先你必須連接到數據庫。如在答案1中,閱讀php手冊中的mysql接口,特別是函數mysql_connect。其次,這個時間其實是錯誤的。 雖然(x = any_function)不會將any_function結果賦值給變量'x'。 'x = any_function'返回一個布爾值,沒有別的。 ((x = any_function()))或者在你的情況下: while(($ row1 = mysql_fetch_array($ result1))) 其中'$ row1 = mysql_fetch_array($ result1)'屬性到mysql_fecth_array返回的$ rows1值和 '($ row1 = mysql_fetch_array($ result1))'返回一個布爾值來控制while構造。 我希望我已經幫助你。