Изменение формы PHP для отправки стилизованного электронного письма (электронное письмо в формате HTML) - PullRequest
0 голосов
/ 03 декабря 2011

Когда я отправляю свою форму, я получаю электронное письмо в виде обычного текста и не совсем в том формате, в котором я хотел бы его видеть.Я хотел бы, чтобы он, по крайней мере, имел цвет тела и располагал электронную почту так, чтобы она была аккуратнее.

в форме 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?Я видел в других формах, они используют сообщение $.Могу ли я добавить 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 ]

4 голосов
/ 03 декабря 2011

Вы можете использовать следующие заголовки.Это позволит вам просто добавить нормальный 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 голос
/ 03 декабря 2011

Да, вам придется использовать

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


Возможно, было бы неплохо представить свою электронную почту как в 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...