2013-05-04 77 views
-2

以下代码发送的邮件包含所有HTML标签。我怎样才能摆脱那种尝试了几种方式,但仍然邮件输出与html标签混杂在一起。同时还需要发送,如果元素的数组的任何更好的方法帮助通过mail();无法通过邮件发送HTML邮件()

我的代码:

<?php 
    include('Mail.php'); 
    include('mail\mime.php'); 

    $errors=array(); 
    if(empty ($_POST)===false) 
    { 
     //$product = $_POST['product']; 
     //$quantity = $_POST['quantity'] ; 
     $email="[email protected]"; 
     $item1 = $_POST['product']['1']; 
     $item2 = $_POST['product']['2']; 
     $item3 = $_POST['product']['3']; 
     $item4 = $_POST['product']['4']; 
     $item5 = $_POST['product']['5']; 
     $quan1 = $_POST['quantity']['1']; 
     $quan2 = $_POST['quantity']['2']; 
     $quan3 = $_POST['quantity']['3']; 
     $quan4 = $_POST['quantity']['4']; 
     $quan5 = $_POST['quantity']['5']; 
     $message = "<html><head><title></title> 
      </head> <body> <table> 
       <tr><td>Shop id=</td> 
       </tr><tr><td>Product Name</td> 
        <td>Quantity</td></tr> 
       <tr><td>".$item1."</td> 
        <td>".$quan1."</td></tr> 
       <tr><td>".$item2."</td> 
        <td>".$quan2."</td></tr> 
       <tr><td>".$item3."</td> 
        <td>".$quan3."</td></tr> 
       <tr><td>".$item4."</td> 
        <td>".$quan4."</td><td>".$item5."</td><td>".$quan5."</td></tr> 
      </table></body></html>"; 
     $header = 'From: "Quick order" <[email protected]>'.PHP_EOL. 
      'Reply-to: <[email protected]>'.PHP_EOL. 
      'MIME-Version: 1.0'.PHP_EOL. 
      'Content-Type: text/plain; charset=utf-8'.PHP_EOL. 
      'Content-Transfer-Encoding: 8bit'.PHP_EOL. 
      'X-Mailer: PHP/'.PHP_VERSION.PHP_EOL; 

    if(ctype_alpha($quan1)===true||ctype_alpha($quan2)===true||ctype_alpha($quan3)==true||ctype_alpha($quan4)===true||ctype_alpha($quan5)===true) 
    { 
     $errors[]=' Quantity cannot be alphabet /n 
      Cannot send request'; 
    } 

    if(isset($_POST['send'])===true) 
    {  
     if (empty($errors)===false) 
     { 
      echo '<script language="javascript">alert("NOT SENT! Qunatity cannot be Alphabet")</script>'; 
     } 
     else 
     { 
      mail('[email protected]','Quick order',$message,$header); 

      echo '<script language="javascript">alert("Your order sent!")</script>'; 
      echo '<script language="javascript">window.location = "index.php"</script>'; 
     } 
    } 
    else 
    { 
     echo '<script language="javascript">alert("ORDER NOT SENT! Please Try Again.")</script>'; 
     echo '<script language="javascript">window.location = "index.php"</script>'; 
    } 
} 
?> 

使用它不灵单引号也试过。

+0

欢迎StackOverflow上。大写字母通常无法帮助您获得更好的答案。格式良好的问题有助于获得更好的答案。 ;-) – TheHippo 2013-05-04 15:05:33

+0

哈哈,我刚刚注意到他的头衔是在帽子里。但是,我不得不承认这让我注意到这个问题更好一些。 – 2013-05-04 15:06:38

回答

2

试试这个:

$header = 'From: "Quick order" <[email protected]>'.PHP_EOL. 
      'Reply-to: <[email protected]>'.PHP_EOL. 
      'MIME-Version: 1.0'.PHP_EOL. 
      'Content-Type: text/html; charset=utf-8'.PHP_EOL. 
      'Content-Transfer-Encoding: 8bit'.PHP_EOL. 
      'X-Mailer: PHP/'.PHP_VERSION.PHP_EOL; 
+0

使用双引号也不起作用。 – 2013-05-04 15:37:48

+0

@RajaMOhammed本身不是双引号或单引号,而是将双引号和单引号混合在一起,您需要选择一种并坚持。 – pilsetnieks 2013-05-04 15:48:26

+0

@pilsetnieks我已经注意到了,现在编辑。仍然邮件显示html标签 – 2013-05-04 16:15:09