2014-09-02 18 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

您無需在郵件正文中添加或標籤只寫與內聯CSS標準的HTML代碼。 – 2014-09-02 07:31:19

+0

你可以添加內聯css – black 2014-09-02 07:32:23

+1

請記住,不是每個人都會看到HTML佈局。人們可以決定爲所有郵件使用純文本。 – RST 2014-09-02 07:33:34

回答

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。='看起來真的很醜陋,但會起作用。 – 2014-09-02 07:54:42

+0

謝謝你,但它說的語法錯誤。意想不到的T變量。你能查看我編輯的答案嗎?@black – 2014-09-02 07:58:31

+0

我找到了。我錯過了一些分號;任何如何我的結果是http://tinypic.com/r/6nqqo3/8 – 2014-09-02 08:05:46

-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 2014-09-02 07:46:30

+0

很多,很多? – 2014-09-02 07:56:51

+0

對不起,我不明白這有什麼問題。這是解決OP所要求的。沒有太複雜的東西,會按照他或她想要的方式工作。所以,如果你認爲我的回答有些嚴重錯誤,請你介意讓我知道嗎? – Lee 2014-09-02 07:58:25

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在** – 2014-09-02 08:19:18

+0

您在哪一行出錯? – 2014-09-02 09:10:07

+0

我找到了原因。這是因爲在之上的。它沒有關閉。任何如何把$頭放在哪裏?現在只是一個變量。不打印任何地方 – 2014-09-02 09:28:32