PHP电子邮件格式化内容

时间:2015-08-06 05:12:51

标签: php html forms email

我正在为我的网站创建一个电子邮件表单,允许用户创建一封电子邮件,并且似乎是从他们希望的任何电子邮件地址发送的。即davidcameron@downingstreet.com。

表单工作正常,直到我做了一个小改动。我之前允许用户提交电子邮件的内容,但是在格式化内容时遇到了困难(即使区域变粗,使用表等)。

(现在的表格代码)

<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>

所以我认为在我的发送邮件中自己提交内容会更容易。实际发送电子邮件的代码。这显示如下:

 <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元素,因为此错误在以前没有发生过。

任何人都可以建议我如何解决此问题/如果您可以建议一种更简单的方式来格式化我想要的电子邮件内容?

非常感谢

2 个答案:

答案 0 :(得分:1)

将您的内容值设置为

$content = ''

由于您的$ content未定义,这就是您收到错误的原因。

希望这能解决您的问题。

答案 1 :(得分: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';
    }


?>
  

注意:HTML5中不支持<font>标记

编辑01

也包括这一行

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