2010-03-20 68 views
0

我試圖通過PHP中生成的結果集發送電子郵件在php中發送電子郵件無法使用HTML標記

這是代碼。

<?php 
$txtMsg = '<table><th>Name</th>'; 
$txtMsg = ''; 
    mysql_connect("localhost", "root", "pop") or die(mysql_error()); 
     mysql_select_db("jpd") or die(mysql_error()); 
     $oustanding = mysql_query("select Name from results") or die(mysql_error()); 
     $num=mysql_num_rows($oustanding); 

     while($row1 = mysql_fetch_array($oustanding)) { 
      ?> 
     <tr> 
      <td><h3><?php echo $row1['Name']; ?></h3></td> 

     </tr> 
<?php 
$txtMsg .= "<tr><td>".$row1['Name']."</td></tr>"; 
}  


ini_set ("SMTP", "xy.domain.com"); 
$mail_to= '[email protected]'; 
$mail_from='[email protected]'; 
$mail_sub='OutStanding Results'; 
$mail_mesg=$txtMsg; 

//Check for success/failure of delivery 
if(mail($mail_to,$mail_sub,$mail_mesg,"From: $mail_from")) 
echo "<br><br>Email Successfully Sent!"; 
else 
echo "<br><br>Error Sending Email!"; 
} 

?> 

問題是,我希望結果以表格格式顯示。但不是處理html標籤,而是打印它們。

如何獲取表格格式的電子郵件?

謝謝。

回答

3

您需要將您的電子郵件指定爲HTML。試試這個:

$headerFields = array(
    "From: $mail_from", 
    "MIME-Version: 1.0", 
    "Content-Type: text/html;charset=iso-8859-1" 
); 
mail($mail_to, $mail_sub, $mail_mesg, implode("\r\n", $headerFields)) 
1

默認情況下,電子郵件是使用text/plain MIME類型發送的。

如果要格式化電子郵件,您應該使用帶有text/plaintext/html部分的多部分MIME電子郵件。

你可以找到http://www.tuxradar.com/practicalphp/15/5/3

爲例,用戶也可以發送電子郵件是text/html而不是多,但是這也容易與垃圾郵件過濾器高得分。