我尝试了很多标题更改无济于事。
可能是电子邮件服务器吗?或者我错过了一些关键的东西?
我希望看到的不仅仅是在生成的电子邮件中呈现为文本的代码。
谢谢!
<?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);
?>
答案 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”?