2015-10-19 47 views
0

这里我提交的表单数据发送到电子邮件,做工精细, 的正常工作的代码,但我希望收到此提交了关于我的电子邮件使用HTML格式的数据, 我该怎么办呢? 例如Sending Nice HTML Email with PHP如何在发送HTML格式提交的表单数据?

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

// CHANGE THE TWO LINES BELOW 
$email_to = "[email protected]";  
$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._%-][email protected][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 --> 

回答

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();