更改php表单以提交样式化电子邮件(HTML电子邮件)

时间:2011-12-03 08:40:26

标签: php html css email

当我提交表单时,我会收到纯文本的电子邮件,而不是我希望的格式。我希望它至少有身体的颜色,并安排电子邮件,使其整洁。

在contact.php表单上的

...这就是我目前所拥有的:

     $msg  = "You have been contacted by $name with regards to Accommodation. 
They passed verification and their message is as follows." . PHP_EOL . PHP_EOL;
     $msg .= "$comments" . PHP_EOL . PHP_EOL;
     $msg .= "You can contact $name via email, $email or via phone $phone." . 
PHP_EOL . PHP_EOL;
     $msg .= "We want to stay from the $dayin to the $dayout" . PHP_EOL . 
PHP_EOL;

为什么这个表单使用$ msg?我已经看过其他形式,他们使用$ message。 我可以在上面的表单中添加CSS样式吗? 我也看到了:

        $headers = "From: $email" . PHP_EOL;
    $headers .= "Reply-To: $email" . PHP_EOL;
    $headers .= "MIME-Version: 1.0" . PHP_EOL;
    $headers .= "Content-type: text/plain; charset=utf-8" . PHP_EOL;
    $headers .= "Content-Transfer-Encoding: quoted-printable" . PHP_EOL;

我需要将“简单”更改为“HTML”吗? 任何建议或例子都会很棒!


编辑:

好的,现在我的标题是:

    $headers = "From: $email" . PHP_EOL;
    $headers .= "Reply-To: $email" . PHP_EOL;
    $headers .= "MIME-Version: 1.0"  . "\r\n" . PHP_EOL;
    $headers .= "Content-type: text/html;charset=iso-8859-1" . "\r\n" . 
 PHP_EOL;
    $headers .= "Content-Transfer-Encoding: quoted-printable" . PHP_EOL;

每个标题中是否需要PHP_EOL?

我的$ msg看起来像:

$msg  = '<style type="text/css">
<!--
.style {
font-family: Arial;
font-size: 12px;
color: #4D241E;
}
body {
background-image: url();
background-color: #F1EAE4;
 }
.style1 {font-size: 14px}
-->
</style>
<p>&nbsp;</p>
<table width="420" border="0" align="center" cellpadding="0" cellspacing="5">
<tr>
<td><table width="100%"  border="0" cellpadding="8" cellspacing="0" bgcolor="#E7D3AF" 
class="style">
  <tr>
    <td colspan="2" valign="top"><div align="center"><strong><span 
class="style1">Submission / Enquiry from your website</span><br>

&nbsp;........................................................................
</strong><br>
&nbsp;</div></td>
    </tr>
  <tr>
    <td width="32%" valign="top"><div align="left"><strong>Date Submitted</strong>
 </div></td>
    <td width="68%" valign="top">'. date("F j, Y, g:i a") .'</td>
  </tr>
  <tr>
    <td valign="top"><div align="left"><strong>Name</strong></div></td>
    <td valign="top">'.$_POST['name'].'</td>
  </tr>
  <tr>
    <td valign="top"><div align="left"><strong>Email</strong></div></td>
    <td valign="top">'.$_POST['email'].'</td>
  </tr>
  <tr>
    <td valign="top"><div align="left"><strong>Phone</strong></div></td>
    <td valign="top">'.$_POST['phone'].'</td>
  </tr>
  <tr>
    <td valign="top"><div align="left"><strong>Day in</strong></div></td>
    <td valign="top">'.$_POST['dayin'].'</td>
  </tr>
  <tr>
    <td valign="top"><div align="left"><strong>Day out</strong></div></td>
    <td valign="top">'.$_POST['dayout'].'</td>
  </tr>
  <tr>
    <td valign="top"><div align="left"><strong>Comments</strong></div></td>
    <td valign="top">'.$_POST['comments'].'</td>
  </tr>
</table></td>
</tr>
 </table>
';

编辑: 我的新HTML电子邮件设计:

<table width="600" border="0" cellpadding="0" cellspacing="0">
<!--DWLayoutTable-->
<tr>
<td width="12" height="14"></td>
<td width="140"></td>
<td width="432"></td>
<td width="16"></td>
</tr>
<tr>
<td height="71"></td>
<td colspan="2" align="center" valign="middle" bgcolor="#F5F5F5"><span style="font-
family:Arial; font-size:18px; color:#333333;"><strong>Submission from</strong>
</span><br />
<span style="font-family:Arial; font-size:16px; color:#f9930f;">
<em>Your website</em></span></td>
<td></td>
 </tr>
<tr>
<td height="16"></td>
<td></td>
<td></td>
<td></td>
 </tr>
<tr>
<td height="30"></td>
<td valign="middle"><span style="font-family:Arial; font-size:12px; color:#333333;">
<strong>Name:</strong></span></td>
<td valign="middle"><span style="font-family:Arial; font-size:12px; 
color:#333333;">'.$_POST['name'].'</span></td>
<td></td>
</tr>
<tr>
<td height="30"></td>
<td valign="middle"><span style="font-family:Arial; font-size:12px; color:#333333;">
<strong>Email:</strong></span></td>
<td valign="middle"><span style="font-family:Arial; font-size:12px; 
color:#333333;">'.$_POST['email'].'</span></td>
<td></td>
</tr>
<tr>
<td height="30"></td>
<td valign="middle"><span style="font-family:Arial; font-size:12px; color:#333333;">
<strong>Phone:</strong></span></td>
<td valign="middle"><span style="font-family:Arial; font-size:12px; 
color:#333333;">'.$_POST['phone'].'</span></td>
<td></td>
</tr>
 <tr>
<td height="30"></td>
<td valign="middle"><span style="font-family:Arial; font-size:12px; color:#333333;">
<strong>Day in:</strong></span></td>
<td valign="middle"><span style="font-family:Arial; font-size:12px; 
color:#333333;">'.$_POST['dayin'].'</span></td>
<td></td>
</tr>
<tr>
<td height="30"></td>
<td valign="middle"><span style="font-family:Arial; font-size:12px; color:#333333;">
<strong>Day out:</strong></span></td>
<td valign="middle"><span style="font-family:Arial; font-size:12px;
color:#333333;">'.$_POST['dayout'].'</span></td>
<td></td>
 </tr>
<tr>
<td height="30"></td>
<td valign="middle"><span style="font-family:Arial; font-size:12px; color:#333333;">
<strong>Comments:</strong></span></td>
<td>&nbsp;</td>
<td></td>
</tr>
<tr>
<td height="190"></td>
<td colspan="2" valign="top"><span style="font-family:Arial; font-size:12px; 
color:#333333;">'.$_POST['comments'].'</span></td>
<td></td>
</tr>
 <tr>
<td height="20"></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td></td>
</tr>
</table>

现在,当我在我的php中添加此表单并提交表单时...我收到的提交内容与上面的表格布局不同。

2 个答案:

答案 0 :(得分:4)

您可以使用以下标题。这些将允许您在邮件中放置普通的HTML。

$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n";

// More headers
$headers .= 'From: <example@example.com>' . "\r\n";
$headers .= 'Cc: example two@example.com' . "\r\n";

答案 1 :(得分:1)

是的,你将不得不使用

Content-type:text/html;charset=iso-8859-1\r\n


提供HTML和文本格式的电子邮件可能是一个好主意,因为并非所有电子邮件应用程序都支持HTML,而且许多其他电子邮件应用程序都支持HTML。

为此,请使用此标头。边界的东西是电子邮件中HTML和文本版本的区别,下面的行生成一个适合此目的的唯一代码

$boundary = md5(date('r', time())); 
$headers .= "\r\nContent-Type: multipart/alternative; boundary=$boundary."\"";


在发送此代码的电子邮件的文本版本之前,请注意乞讨时的“ - ”。您在整个电子邮件中使用相同的边界。

--<?php echo $boundary; ?> 


在HTML版本再次发布相同代码之前

这里有一个很好的模板 http://www.webcheatsheet.com/PHP/send_email_text_html_attachment.php