I am sending dynamically creating html table in email body but in the email I receive the html code instead of displaying a table. Please help me. Here is my code.
<?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 = '[email protected]';
$headers = "From Ahmad \r\n";
//$headers .= "Reply-To: ". strip_tags($_POST['req-email']) . "\r\n";
//$headers .= "CC: [email protected]\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';
}
?>
First you are missing the tag in your HTML code but that should not be an issue.
Secondly your header is incorrect, you have that:
$headers = "From Ahmad \r\n";
//$headers .= "Reply-To: ". strip_tags($_POST['req-email']) . "\r\n";
//$headers .= "CC: [email protected]\r\n";
$headers .= 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-Type: text/html; charset=ISO-8859-1' . "\r\n";
$subject = 'Email report';
instead of:
//$headers .= "Reply-To: ". strip_tags($_POST['req-email']) . "\r\n";
//$headers .= "CC: [email protected]\r\n";
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-Type: text/html; charset=ISO-8859-1' . "\r\n";
$headers .= "From: Ahmad <[email protected]>\r\n";
$subject = 'Email report';
Basically I think you header should start by "Mime-Version".
Check this code: http://us.php.net/manual/en/function.mail.php#example-2877
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With