2011-12-28 84 views
1

這在單個頁面上工作得很好。它爲我提供了所有我需要的信息。但我想發一封電子郵件。雖然我couldn`t弄清楚我該怎麼辦呢如何在從數據庫中提取信息後發送電子郵件

$db = new mysqli('localhost', 'root', '', 'panel'); 
$sql = "select * from detail"; 
$read = $db->query($sql); 

<table style="border:0;width:600px;"> 
    <tr> 
    <td width="50px">Who</td> 
    <td width="150px">Time</td> 
    <td width="300px">What</td> 
    </tr> 
<?php 
while($wr = mysqli_fetch_array($read)) { 
echo' <tr> 
    <td>'.$wr['Who'].'</td> 
    <td>'.$wr['Time'].'</td> 
    <td>'.$wr['What'].'</td> 
    </tr> '; 
} 


?> 
+0

你試圖發送什麼數據? – Sedz 2011-12-28 15:42:30

+0

試試看[郵件()](http://php.net/mail)功能... – Tyil 2011-12-28 15:43:46

回答

0

你需要緩衝所有你生成的HTML(這意味着不把它發送到瀏覽器,但在緩衝區中積累的話),併發送那個緩衝區就像這樣的電子郵件給用戶:

// Start buffering 
ob_start(); 
// Generate HTML just like you're doing now 
echo("<html><body><table><tr><td></td></tr></table></body></html>"); 
// Get the contents of the buffer 
$html = ob_get_contents(); 
// Stop the buffering 
ob_end_clean(); 

// Now use the content string you have to send an email just like the example at: 
// http://il.php.net/manual/en/function.mail.php 

$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
$headers .= 'To: [email protected]' . "\r\n"; 
$headers .= 'From: [email protected]' . "\r\n"; 

mail("[email protected]", "This is the subject", $html, $headers); 
+1

我真的不明白我需要做什麼,但我會給出一個鏡頭 – Extelliqent 2011-12-28 20:27:13

+0

好吧,如果我您希望將生成的HTML作爲電子郵件發送出去,在這種情況下,我的腳本所做的就是讓您以通常的方式「發送」HTML,而不是通過網絡將其發送到瀏覽器,HTML在緩衝區(由PHP處理)中進行累加,並可以在以後使用'ob_get_contents()'進行收集。最終結果是一個由應該發送給瀏覽器的HTML組成的字符串。 – Yaniro 2011-12-28 21:22:38

相關問題