格式化电子邮件表单响应

Jim*_*ly2 0 php

我创建了一个使用此脚本的电子邮件表单:

<?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");
?>
Run Code Online (Sandbox Code Playgroud)

这使得邮件以易于阅读的方式逐行格式化,但客户希望它看起来更像它来自的形式!即使我可以用水平规则分隔线条并对齐响应,这也就是什么 - 这甚至可能吗?

谢谢吉姆

Sco*_*ers 6

您可以通过在标题中添加正确的行来创建HTML电子邮件.然后你可以添加表格,段落标签,行,等等.请记住,电子邮件客户端无法呈现浏览器所能提供的所有功能,因此请轻松使用html.

$mailHeader .= "Content-type: text/html; charset=iso-8859-1\r\n";
Run Code Online (Sandbox Code Playgroud)

此外,请注意,您创建电子邮件的方式很容易受到电子邮件注入攻击.在这里阅读更多内容:http://www.phpsecure.info/v2/article/MailHeadersInject.en.php

  • 关于电子邮件中HTML的进一步说明 - 尝试坚持使用旧式HTML 3.2.这是一次可以使用表格进行布局.您可能希望尽可能避免使用CSS,并在需要的地方使用内联. (2认同)