如何以html格式发送提交的表单数据?

时间:2015-10-19 05:48:29

标签: php forms

这里我有正确的工作代码将提交的表单数据发送到电子邮件,工作正常, 但是我希望在我的电子邮件中收到带有html格式的提交数据, 我怎样才能做到这一点? 例如Sending Nice HTML Email with PHP

<?php
if(isset($_POST['email'])) {

// CHANGE THE TWO LINES BELOW
$email_to = "email@mydomain.com";     
$email_subject = "Subject";
     function died($error) {
    // your error code can go here
    echo " but there were error(s) found with the form  you     submitted. ";
    echo "These errors appear below.<br /><br />";
    echo $error."<br /><br />";
    echo "Please go back and fix these errors.<br /><br />";
    die();     }

  // validation expected data exists
  if(!isset($_POST['first_name']) ||
    !isset($_POST['email']) ||
    !isset($_POST['company_name']) ||
    !isset($_POST['subject']) ||
    !isset($_POST['message'])) {
    died(' but there appears to be a problem with the form you  submitted.');      
}
$first_name = $_POST['first_name']; // required   
$email_from = $_POST['email']; // required
$company_name = $_POST['company_name']; // not required
$subject = $_POST['subject']; // not required
$message = $_POST['message']; // required     
$error_message = "";
$email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
if(!preg_match($email_exp,$email_from)) {
$error_message .= appear to be valid.<br />';
}
$string_exp = "/^[A-Za-z .'-]+$/";
if(!preg_match($string_exp,$first_name)) {
$error_message .= 'The Name you entered does not appear to be valid.<br />';
}
if(strlen($message) < 2) {
$error_message .= 'The Message you entered do not appear to be valid.<br />';
}
if(strlen($error_message) > 0) {
died($error_message);
 }
 $email_message = "Form details below.\n\n";

function clean_string($string) {
  $bad = array("content-type","bcc:","to:","cc:","href");
  return str_replace($bad,"",$string);
}
             $email_message .= "Name: ".clean_string($first_name)."/n>";  
        $email_message .= "Email: ".clean_string($email_from)."/n>";  
  $email_message .= "Company Name: ".clean_string ($company_name)."/n>";  
         $email_message .= "Subject: ".clean_string($subject)."/n>";  
         $email_message .= "Message: ".clean_string($message)."/n>";  

    // create email headers
      $headers = 'From: '.$email_from."\r\n".
     'Reply-To: '.$email_from."\r\n" .
   'X-Mailer: PHP/' . phpversion();
      @mail($email_to, $email_subject, $email_message, $headers); 
   // Get IP Address
      $ip = $_SERVER['REMOTE_ADDR'];
               ?>
        <!-- place your own success html below -->

1 个答案:

答案 0 :(得分:2)

最佳解决方案:使用PHPMailer并查看各种示例。如果您仍想坚持使用代码,则需要修改headers并添加内容类型:

$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";

$headers .= 'From: '.$email_from."\r\n";
$headers .= 'Reply-To: '.$email_from."\r\n";
$headers .= 'X-Mailer: PHP/' . phpversion();