在PHP邮件中显示的HTML

时间:2013-06-24 14:28:01

标签: php html email

我正在尝试发送一封php邮件,但似乎我的foreach中有错误,因为邮件显示的是html .. 这是我的代码:

 <form method="post">
        <fieldset>
          <legend>Contact Form</legend>
          <label for="fullname">Votre Nom :
            <input id="fullname" name="fullname" type="text" value="nelson" />
          </label>
          <label for="emailaddress" class="margin">Votre e-mail:
            <input id="email" name="email" type="text" value="" />
          </label>
          <label for="message">Message:<br />
            <textarea id="message" name="message" cols="40" rows="8"></textarea>
          </label>
          <p>
             <input id="submit-button" class="button gray stripe" type="submit" name="submit" value="Envoyer le message" />
          &nbsp;</p>
        </fieldset>
      </form>

      <?php
      foreach ($_POST as $value) {
    $value = strip_tags($value);
    $value = htmlspecialchars($value);
}

      $name = $_POST["fullname"];
      $email = "email:" .$_POST["email"];
      $message = "Nom: <br/>" .$name. "email:<br/> " .$email. "message: " .$_POST["message"];
      $to="email@hotmail.com";
      $suject="site internet";
      if (isset($_POST['submit'])) {
      mail($to, $suject, $message);
      echo"mail had been sent";
      }
      ?>

任何人都可以帮助我

3 个答案:

答案 0 :(得分:1)

你的foreach是没用的,就这样做。比循环更快

$name = strip_tags(htmlspecialchars($_POST["fullname"]));
$email = "email:" .strip_tags(htmlspecialchars($_POST["email"]));
$message = "Nom: <br/>" .$name. "email:<br/> " .$email. "message: " .strip_tags(htmlspecialchars($_POST["message";)); 

答案 1 :(得分:1)

您需要在电子邮件中设置Content-type标头:

$name = $_POST["fullname"];
$email = "email:" .$_POST["email"];
$message = "Nom: <br/>" .$name. "email:<br/> " .$email. "message: " .$_POST["message"];
$to="email@hotmail.com";
$suject="site internet";
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
if (isset($_POST['submit'])) {
mail($to, $suject, $message, $headers);
echo"mail had been sent";

您的邮件正文也需要包含在<html>代码中。

答案 2 :(得分:0)

要发送包含HTML的电子邮件,您必须设置标题,以便电子邮件客户端知道该电子邮件包含HTML。您还必须将电子邮件正文设为HTML文档。

$header  = "MIME-Version: 1.0\r\n";
$header .= "Content-type: text/html; charset: utf8\r\n";
mail($to, $suject, $message, $header);

然后在消息本身中:

<html>
    <head></head>
    <body>
        Content here
    </body>
</html>