PHP / HTML代码在电子邮件中呈现为文本:任何洞察力?

时间:2013-06-08 19:47:34

标签: php html email

我尝试了很多标题更改无济于事。

可能是电子邮件服务器吗?或者我错过了一些关键的东西?

我希望看到的不仅仅是在生成的电子邮件中呈现为文本的代码。

谢谢!

<?php session_start(); ?>

<?php
$body = '';
$body .= '<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Shopping Cart</title>
</head>
<body>
<h1>Here is a Copy of Your Order</h1>'; 
    $body .= '<table>
    <tr>
    <th>Product</th>
    <th>Cost</th>
    <th>Units</th>
    <th>Subtotal</th>
    </tr>';
    $total = 0;

    foreach($_SESSION['cart'] as $item) {

    $body .= "<tr>
        <td>{$item['item']}</td>
        <td>\${$item['unitprice']}</td>
        <td>{$item['quantity']}</td>
        <td>$".($item['unitprice'] * $item['quantity'])."</td>
        </tr>";
        $total += ($item['unitprice'] * $item['quantity']);
    }
    $body .= '</table>';
    $body .= "<p>Grand total: \$$total</p>";
    $body .='</body></html>';
}
?> 

<?php
echo $body;
$to      =  'xxxx@gmail.com';
$subject =  'Fill This Order';
$headers =  'From: xxxx@gmail.com' . PHP_EOL;
$headers .= 'MIME-Version: 1.0' . PHP_EOL;
$headers .= 'Content-type: text/html; charset=iso-8859-1' . PHP_EOL;
mail($to, $subject, $message, $body, $headers);
?>

2 个答案:

答案 0 :(得分:1)

这是一个关于如何发送带有html代码的邮件的教程:Sending Nice HTML Email with PHP

解决它,他们得到了什么。

你可以很容易地看到,发送的标题是:

$to = 'bob@example.com';

$subject = 'Website Change Reqest';

$headers = "From: " . strip_tags($_POST['req-email']) . "\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";
你可以看到他们的差异主要是:\r\n在每一行。 这可能是你的问题,因为没有它可能是这样的:

$headers .= 'MIME-Version: 1.0' . PHP_EOL . 'Content-type: text/html; charset=iso-8859-1' . PHP_EOL;

并在标题中......这可能是:'MIME-Version: 1.0Content-type: text/html; charset=iso-8859-1 而不是工作..

我认为您应该查看我添加的链接并通过它修改您的代码。

修改

我想我找到了!您发送了mail($to, $subject, $message, $body, $headers);

,而PHP邮件功能使用:

mail(to,subject,message,headers,parameters)

你可以在这里看到如何使用邮件功能:The PHP mail() Function

我认为heppend的事情是你发送的$message没有存在而且标题没有按照它们的要求发送。

答案 1 :(得分:0)

您是否尝试过将PHP_EOL换成“\ r \ n”?