[英]How to send html table in email body in php?
我在 email 正文中動態發送創建 html 表,但在 email 中我收到 ZFC35FDC70D5FC69D256EZA 代碼而不是顯示 8FC69D2569883 表。 請幫我。 這是我的代碼。
<?php
$output = '<html><body><form>';
$output .= '<table border="1"><tr><th>Author</th><th>Node Title</th><th>Node Summary</th><th>Node Body</th><th>Edit this node</th><th>Report Abuse</th><th>Group</th></tr>';
while($row = mysql_fetch_array($sql)) {
$data = explode('"', $query['data']);
$output .= '<tr><td>';
if($row['created'] >= $strdate && $row['created'] < $enddate) {
$output .= '<a href="http://localhost/localstage/user/' . $row['uid'] . '">' . $query['name'] . '</a></td><td>';
$output .= '<a href="http://localhost/localstage/node/' . $row['nid'] . '">' . $row['title'] . '</a> (New)</td><td>';
}
else {
$output .= '<a href="http://localhost/localstage/user/' . $sql_query['uid'] . '">' . $query['name'] . '</a></td><td>';
$output .= '<a href="http://localhost/localstage/node/' . $row['nid'] . '">' . $row['title'] . '</a> (Updated)</td><td>';
}
//$output .= '</td><td>';
$output .= $row['teaser'] . '</td><td>';
if($row['field_provcomp_level_value'] == 0 || $row['field_provcomp_level_value'] == 1)<br /> {
$output .= $row['body'] . '</td><td>';
}
else {
$output .= '</td><td>';
}
$output .= '<a href="http://localhost/localstage/abuse/report/node/' . $row['nid'] . '">Abuse</a></td><td>';
$output .= '<a href="http://localhost/localstage/node/' . $row['nid'] . '/edit">Edit</a></td><td>';
$query = mysql_fetch_array(mysql_query("SELECT title from node Where type = 'groupnode' AND nid = '" . $row['nid'] . "'"));
$output .= $query['title'] . '</td></tr>';
}
$output .= '</table></form></body></html>';
print $output;
$to = 'hmdnawaz@gmail.com';
$headers = "From Ahmad \r\n";
//$headers .= "Reply-To: ". strip_tags($_POST['req-email']) . "\r\n";
//$headers .= "CC: susan@example.com\r\n";
$headers .= 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-Type: text/html; charset=ISO-8859-1' . "\r\n";
$subject = 'Email report';
mail($to, $subject, $output, $headers);
if(mail) {
echo 'Email sent';
}
else {
echo 'Error sending email';
}
?>
首先,您在 HTML 代碼中缺少標簽,但這應該不是問題。
其次,您的 header 不正確,您有:
$headers = "From Ahmad \r\n";
//$headers .= "Reply-To: ". strip_tags($_POST['req-email']) . "\r\n";
//$headers .= "CC: susan@example.com\r\n";
$headers .= 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-Type: text/html; charset=ISO-8859-1' . "\r\n";
$subject = 'Email report';
代替:
//$headers .= "Reply-To: ". strip_tags($_POST['req-email']) . "\r\n";
//$headers .= "CC: susan@example.com\r\n";
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-Type: text/html; charset=ISO-8859-1' . "\r\n";
$headers .= "From: Ahmad <email@email.com>\r\n";
$subject = 'Email report';
基本上我認為你 header 應該從“Mime-Version”開始。
檢查此代碼: http://us.php.net/manual/en/function.mail.php#example-2877
http://php.net/manual/en/function.mail.php
發送 HTML 電子郵件的官方示例:
<?php
// multiple recipients
$to = 'aidan@example.com' . ', '; // note the comma
$to .= 'wez@example.com';
// subject
$subject = 'Birthday Reminders for August';
// message
$message = '
<html>
<head>
<title>Birthday Reminders for August</title>
</head>
<body>
<p>Here are the birthdays upcoming in August!</p>
<table>
<tr>
<th>Person</th><th>Day</th><th>Month</th><th>Year</th>
</tr>
<tr>
<td>Joe</td><td>3rd</td><td>August</td><td>1970</td>
</tr>
<tr>
<td>Sally</td><td>17th</td><td>August</td><td>1973</td>
</tr>
</table>
</body>
</html>
';
// To send HTML mail, the Content-type header must be set
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
// Additional headers
$headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n";
$headers .= 'From: Birthday Reminder <birthday@example.com>' . "\r\n";
$headers .= 'Cc: birthdayarchive@example.com' . "\r\n";
$headers .= 'Bcc: birthdaycheck@example.com' . "\r\n";
// Mail it
mail($to, $subject, $message, $headers);
?>
最后一個問題可能是您創建的表樹在特定的 email 客戶端中存在一些渲染問題。 你能測試一下上面的代碼嗎?
首先,我建議使用 Pear Mail 擴展(它提供了 php 的基本構建),因為使用 mail() function imo 效果不佳,使用梨郵件 class,您還可以設置 mime 類型容易地。
請記住,許多郵件服務對 HTML 消息的支持有限(如果有的話),但是我不知道表格的支持級別。
我建議使用 Swiftmailer
它被 Symfony 項目使用,並且有很好的文檔和支持。
不建議自己編寫 email 功能,因為有很多怪癖和安全考慮。
這是設置 html 正文內容的文檔:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.