2012-08-16 42 views
7

Sử dụng php và với mã này, tôi nhận được email dưới dạng văn bản thuần túy, tôi có bỏ lỡ điều gì đó không? vì tôi cần gửi email được định dạng có thể chứa liên kết chẳng hạn.Định dạng html thư PHP không hoạt động

$to = "[email protected]"; 
$subject = "Password Recovery"; 

$body = ' 
<html> 
    <head> 
     <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
     <title>Birthday Reminders for August</title> 
    </head> 
    <body> 
     <p>Here are the birthdays upcoming in August!</p> 
     <table> 
      <tr> 
       <th>Person</th><th>Day</th><th>Month</th><th>Year</th> 
      </tr> 
      <tr> 
       <td>Joe</td><td>3rd</td><td>August</td><td>1970</td> 
      </tr> 
      <tr> 
       <td>Sally</td><td>17th</td><td>August</td><td>1973</td> 
      </tr> 
     </table> 
    </body> 
</html> 
'; 

$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
$headers = "From: [email protected]\r\n"."X-Mailer: php"; 
if (mail($to, $subject, $body, $headers)) 
echo "Password recovery instructions been sent to your email<br>"; 

Trả lời

10

Hãy xem ví dụ này, điều này là đủ để gửi thư bằng php:

<?php 
    //change this to your email. 
    $to = "[email protected]"; 
    $from = "[email protected]"; 
    $subject = "Hello! This is HTML email"; 

    //begin of HTML message 
    $message =" 
<html> 
    <body> 
    <p style=\"text-align:center;height:100px;background-color:#abc;border:1px solid #456;border-radius:3px;padding:10px;\"> 
     <b>I am receiving HTML email</b> 
     <br/><br/><br/><a style=\"text-decoration:none;color:#246;\" href=\"www.example.com\">example</a> 
    </p> 
    <br/><br/>Now you Can send HTML Email 
    </body> 
</html>"; 
    //end of message 
    $headers = "From: $from\r\n"; 
    $headers .= "Content-type: text/html\r\n"; 

    //options to send to cc+bcc 
    //$headers .= "Cc: [email][email protected][/email]"; 
    //$headers .= "Bcc: [email][email protected][/email]"; 

    // now lets send the email. 
    mail($to, $subject, $message, $headers); 

    echo "Message has been sent....!"; 
?> 
+3

Hãy đánh dấu nó là câu trả lời hoặc upvote 'nếu nó là chính xác'. – GLES

18

Bạn đã tái thiết lập tiêu đề của bạn:

$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
$headers = "From: [email protected]\r\n"."X-Mailer: php"; 

Bạn đang thiếu một dấu chấm trong đó dòng cuối cùng, đó là quá bằng văn bản cho trước hai:

$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
$headers .= "From: [email protected]\r\n"."X-Mailer: php"; 
+0

... Bắt tốt ... – j08691

+0

@andrewsi cảm ơn tôi cũng gặp vấn đề tương tự khi bị thiếu. – Muk

2

Tôi tìm thấy cùng một vấn đề với một máy chủ thư cụ thể, trong trường hợp của tôi, giải pháp là đặt "\ n" thay vì "\ r \ n" làm đầu dòng cho tiêu đề.

Các vấn đề liên quan