2014-09-02 6 views
0

Я пытаюсь создать форму php. Когда я получаю представленную форму по электронной почте, я должен получить визуально красивый внешний вид.Как создать форму электронной почты для электронной почты php?

Если поместить следующий код, я получаю это! [Электронный орган] [1]

$mailBody=" <html> 
       <body> 
        <table border=\"1\" style=\"width:100%\"> 
         Name: $name_title $sender\n 
         Email: $senderEmail\n\n 
         $message 
        </table>   
       </body> 
      </html>"; 

Как я могу получить хороший SCC таблицу или DIV как в HTML документ, когда я получаю мою форму PHP?

+0

Вам не нужно добавлять или теги в теле сообщения просто написать обычный HTML код с инлайн CSS. –

+0

вы можете просто добавить inline css – black

+1

Имейте в виду, что не каждый увидит макет HTML. Люди могут решить использовать простой текст для всей почты. – RST

ответ

1
<?php 

$to = "[email protected]@exmple.com,[email protected]"; 
$subject = 'Hello World'; 

// To send HTML mail, the Content-type header must be set 
$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
// More headers 
$headers .= 'From: <[email protected]>' . "\r\n"; 

$msg = '<html>'; 
$msg .= '<head> 
    <h2 style="font-family:verdana;text-align:center;background-color:red">Hello World</h2> 
    </head> 
    <table border="3" cellspacing="2"> 
    <tr style="font-family:verdana;background-color:#6d6d6d"> 
     <th>col1</th> 
     <th>col2</th> 
     <th>Col3</th> 
     <th>Col4</th> 
    </tr>'; 
//do something here fetch or send static body 

$msg .= "<tr>"; 
$msg .="<td>" . fetch from db/or static body. "</td>"; 
$msg .= "<td>" .fetch/ static. "</td>"; 
$msg .= "<td>" .fetch/static . "</td>"; 
$msg .= "</tr>"; 

$msg .= '</table>';  
$msg .= '</html>'; 

mail($to, $subject, $msg, $headers); 
?> 
+0

Пожалуйста, по крайней мере, добавьте заголовки в функцию mail(). И все эти '$ msg. =' Выглядят действительно уродливо ... но будут функционировать. –

+0

спасибо за это, но он говорит о синтаксической ошибке. неожиданной Т-переменной. не могли бы вы проверить мой отредактированный ответ[email protected] –

+0

Я нашел. Я пропустил несколько точек с запятой; Любой, как мой результат http://tinypic.com/r/6nqqo3/8 –

-2

Вам не нужно использовать <html> или <body> при оформлении вывода формы электронной почты.

Все, что вам нужно, это начать с элемента таблицы и использовать некоторые встроенные стили. Этот код ниже просто даст простую таблицу с ярлыками «Имя» и «Электронная почта», выделенными полужирным шрифтом, с небольшим дополнением к каждой ячейке.

$mailBody = "<table style='width:100%' cellpadding='5'> 
       <tr> 
        <td style='font-weight:bold;'>Name:</td><td>$name_title $sender</td> 
       </tr> 
       <tr> 
        <td style='font-weight:bold;'>Email:</td><td>$senderEmail</td> 
       <tr> 
        <td colspan=2>$message</td> 
       </tr> 
      </table>"; 

Вы также должны убедиться, что правильные настройки MIME установлены для заголовков по почте, или еще не HTML форматирования будет отображаться, но только на выход.

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

Что случилось с этим? – Lee

+0

Много, и много? –

+0

Извините, я не понимаю, что в этом плохого. Он обращается к тому, что спросил ОП. Ничто не слишком сложно, и будет работать так, как он хочет. Поэтому, если вы думаете, что в моем ответе есть что-то жизненно неправильное, не могли бы вы рассказать мне, пожалуйста? – Lee

1

Пожалуйста, попробуйте это

<?php 

    if($_POST["submit"]) { 
    $recipient="[email protected]"; 
    $subject="Arugambay Bookings : New reservations request"; 
    $sender=$_POST["sendername"]; 
    $senderEmail=$_POST["senderEmail"]; 
    $message=$_POST["message"]; 
    $name_title=$_POST["name_title"]; 

    $mailBody = "<table style='width:100%' cellpadding='5'>"; 
    $mailBody .= "<tr>"; 
    $mailBody .= "<th>Item</th>"; 
    $mailBody .= "<th>Description</th>"; 
    $mailBody .= "</tr>"; 
    $mailBody .= "<tr>"; 
    $mailBody .= "<td>Name</td>"; 
    $mailBody .= "<td>$name_title $sender</td>"; 
    $mailBody .= "</tr>"; 
    $mailBody .= "<tr>"; 
    $mailBody .= "<td>Email</td>"; 
    $mailBody .= "<td>$senderEmail</td>"; 
    $mailBody .= "</tr>"; 
    $mailBody .= "<tr>"; 
    $mailBody .= "<td>Special req</td>"; 
    $mailBody .= "<td>$message</td>"; 
    $mailBody .= "</tr>"; 
    $mailBody .= "</table>"; 

    $headers = 'MIME-Version: 1.0' . "\r\n"; 
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
    $mail_sent = mail($recipient, $subject, $mailBody, "From: $sender <$senderEmail>"); 
    } 

    if ($mail_sent) { 
?> 


    <p>Mail sent</p> 
<?php } ? 

>

+0

Я получаю ** Ошибка синтаксиса: ошибка синтаксиса, неожиданный T_VARIABLE в ** –

+0

На какой строке вы получаете ошибку? –

+0

Я нашел причину. Это из-за прямо над. он не закрыт. любой, как положить $ headers? На данный момент это переменная. Не печатайте нигде –

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