2012-08-16 17 views
7

php kullanarak ve bu kod ile e-postayı düz metin olarak aldım, bir şey mi özledim? Örneğin, bağlantılar içerebilecek formatlanmış e-posta göndermem gerekiyor.PHP posta html biçimi çalışmıyor

$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>"; 

cevap

10

Bu örneğe bakın, bu posta göndermek için yeterlidir:

<?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

Lütfen bunu cevap olarak işaretleyin veya 'eğer doğruysa' onaylayın. – GLES

18

Sen yeniden kurmuş olduğunuz başlıkları:

$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"; 

Sen olduğunu son satırında bir nokta, kaçırdığınızı aşırı yazma önceki iki:

$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

... İyi yakalama ... – j08691

+0

@andrewsi teşekkürler Ben de kayıp ile benzer bir sorun yaşıyordum. – Muk

2

Belirli bir posta sunucusuyla aynı sorunu buldum, bu durumda çözüm, üstbilgiler için satırın sonu olarak "\ r \ n" yerine "\ n" ayarlamaktı.