我创建了一个使用此脚本的电子邮件表单:
<?php
foreach ($_POST as $field=>$value)
{
$formcontent .= "$field: $value\n";
}
$formcontent .= 'User-Agent: '.$_SERVER['HTTP_USER_AGENT'];
$recipient = "andrew.***y@***********.co.uk";
$subject = "Event feedback form";
$mailheader = "From: web.form@**********.co.uk\r\n";
$mailheader .= "Reply-To: $email\r\n";
$mailheader .= "MIME-Version: 1.0\r\n";
mail($recipient, $subject, $formcontent, $mailheader) or die("Failure!");
header("location:http://www.**********.co.uk");
?>
这使得邮件的格式非常易于逐行阅读,但客户希望它看起来更像它来自的形式!即使我可以将线条与水平规则分开并对齐响应,也可能是这样的 - 这是否可能?
由于 吉姆
答案 0 :(得分:6)
您可以通过在标题中添加正确的行来创建HTML电子邮件。然后你可以添加表格,段落标签,行,等等。请记住,电子邮件客户端无法呈现浏览器所能提供的所有内容,因此请熟悉html。
$mailHeader .= "Content-type: text/html; charset=iso-8859-1\r\n";
另外,请注意,您创建电子邮件的方式很容易受到电子邮件注入攻击。在此处阅读更多内容:http://www.phpsecure.info/v2/article/MailHeadersInject.en.php
答案 1 :(得分:1)
如果您不能或不想在电子邮件中使用HTML,您至少可以使用标签来对齐文本,使其看起来更好一点。
$formcontent .= "$field:\t$value\n";
这将使输出看起来像这样:
Name: sachleen
Email: me@sachleen.com
Address: 123 fake st
答案 2 :(得分:1)
你可以用html表格式化它。
$mailHeader .= "Content-type: text/html; charset=iso-8859-1\r\n";
$formcontent .="<table border='1'>";
foreach ($_POST as $field => $value) {
$formcontent .= "<tr>";
$formcontent .= "<td>$field:</td> <td>$value</td>";
$formcontent .= "</tr>";
}
$formcontent .= '<tr><td>User-Agent: </td><td>'.$_SERVER['HTTP_USER_AGENT'].'</td>';
$formcontent .= "</table>";