2015-08-06 3 views
0

Я создаю форму электронной почты для своего сайта, которая позволит пользователю создать электронное письмо и, как представляется, отправляться с любого адреса электронной почты, который они хотят. т. е. [email protected]PHP форматированный текст электронной почты

Форма работает нормально, пока я не сделал одно небольшое изменение. Я ранее разрешал пользователю отправлять содержимое электронной почты, но затруднялось форматирование содержимого (т. Е. Создание областей жирным шрифтом, с использованием таблицы и т. Д.).

(форма Теперь код)

<html> 
<body> 
<form method="GET" action="send.php"> 

<p>To: <input type="text" name="to" /></p> 
<p>From-Name: <input type="text" name="name" /></p> 
<p>From-Email: <input type="text" name="from" /></p> 
<p>Subject: <input type="text" name="subject" /></p> 


<input type="submit" value="Send E-Mail" ></p> 
</form> 
</body> 
</html> 

Так что я подумал, что было бы легче представить содержание себя в моем «send.php» код, который на самом деле отправляет сообщение электронной почты. Это отображается ниже:

<html> 
    <body> 
    <?php 
    $to =$_REQUEST['to']; 
    $subject = $_REQUEST['subject']; 
    $name =$_REQUEST['name']; 
    $from = $_REQUEST['from']; 
    $content = ?><font face="arial"><b>Your question has been received/b> 

    Your booking has been confirmed with the supplier. 
    Please visit the <a href="questionstory.co.uk"> Question Portal</a> for more information. 

    <table> 
    <tr> 
    <td>Question subject</td> 
    <td> Room</td> 
    </tr> 
    <tr> 
    <td>Traveller</td> 
    <td>Maria Smith</td> 
    </tr> 
    <td>Requester</td> 
    <td>Tony Smith</td> 
    </tr> 
    </table> 

    <br/> 


    </font> 

    <? 
    $header="From: $from"."<$sender_email>\r\n"; 
    mail($to,$subject,$content,$header); 
    echo 'sent successfully'; 

    ?> 
    </body> 
    </html> 

Однако, когда я нажимаю кнопку «Отправить», мой сервер обнаруживает ошибку. Я могу только предположить, что это из-за моего HTML-элемента, поскольку эта ошибка не происходила ранее без него.

Может кто-нибудь посоветует, как я могу исправить это/если вы можете предложить мне более простой способ форматировать содержимое электронной почты, которое я хотел бы?

Большое спасибо

+1

Какая ошибка? – SNAG

ответ

1

Установите значение контента

$content = ''

Поскольку ваш $ содержание не определено, поэтому вы получаете сообщение об ошибке.

Надеюсь, это исправит вашу проблему.

1

Попробуйте

<?php 
    $to = $_REQUEST['to']; 
    $subject = $_REQUEST['subject']; 
    $name = $_REQUEST['name']; 
    $from = $_REQUEST['from']; 
    $content = 
     '<span style="font-family: arial"><b>Your question has been received</b> 
      <br> 
      Your booking has been confirmed with the supplier. 
      Please visit the <a href="questionstory.co.uk"> Question Portal</a> for more information. 

      <table> 
       <tr> 
        <td>Question subject</td> 
        <td> Room</td> 
       </tr> 
       <tr> 
        <td>Traveller</td> 
        <td>Maria Smith</td> 
       </tr> 
       <td>Requester</td> 
       <td>Tony Smith</td> 
       </tr> 
      </table> 

      <br/> 
      </span>'; 

    $header = "From:".$from; 
    $result = mail($to,$subject,$content,$header); 
    if(isset($result)) 
    { 
     echo 'sent successfully'; 
    } 
    else 
    { 
     echo 'Failed'; 
    } 


?> 

Примечание: <font> тег не поддерживается в HTML5

EDIT 01

Включить эти строки тоже

$header .= 'MIME-Version: 1.0'; 
$header .= 'Content-Type: text/html; charset="ISO-8859-1'; 
+0

Во-первых, большое спасибо за ваш ответ. Однако я реализовал этот код, когда получил электронное письмо, он показал все теги html. Любые мысли о том, как избежать этого и для его реализации требуемого форматирования? Большое спасибо – user289040

+0

Я добавил строки, предложенные чуть ниже $ from, запустил код и нашел ту же проблему. – user289040

+0

должен располагаться ниже '$ header =" From: ". $ From;' и whats ошибка ?? –

Смежные вопросы