html e-mail () başlığı sorunu

3 Cevap php

Ben php bir web sitesi için bir hata raporlama özelliği yazmaya çalışıyorum. E-posta html olarak gösterecektir ki ben doğru başlıklarını alınamıyor.

Here is the code:

if( isset($_POST['submit']) )
{
    $browser = $_SERVER['HTTP_USER_AGENT'];
    $page = $_POST['page'];
    $email = $_POST['email'];
    $error = $_POST['error'];

    $message  =  "<html><body> \n";   
    $message .=  "Email: $email \n";
    $message .=  "Page: $page \n";
    $message .=  "OS/ Browser: $browser \n";
    $message .=  "Error: $error \n";
    $message .=  "</body></html> \n";

    $headers  = 'MIME-Version: 1.0' . '\r\n';
    $headers .= 'Content-type: text/html; charset="iso-8859-1"' . '\r\n';
    $headers .= 'From:  <code@website.com>' . '\r\n';
    $headers .= 'Reply-To: $email ' . '\r\n';
    $headers .= 'X-Priority: 1' . '\r\n';

    $subject  = "[ERROR REPORT] Page: " . $page;

    mail("myEmail@gmail.com", $subject, $message, $headers );

    $mesg = "Thank you for your report!";

}

?>

3 Cevap

Temelde another question için cevap ne tekrarlayarak, ben haddeleme-your-kendi çoğu durumlarda tüm değilim, ama bu mail geldiğinde ben yürekten kendine daha kolay yapma ve {[gibi bir şey kullanmanızı tavsiye ediyorum (1)]} veya PHPMailer (bu sırayla, benim para için).

Yan ikramiye (ve vb, cevap-belirtmek varsayarak) gibi, siz de spam olarak etiketlenmiş olmanın çok daha az şansı var.

EDIT: Belki kullanmış olduğunuz sadece bir örnek, ama mesajın hiçbir gerçek HTML var. Neden sadece düz metin kullanmayın? Ve evet, ben de düz metin için öneririz sınıflarından birini kullanmak istiyorum.

Şahsen ben Armut Posta (http://pear.php.net/package/Mail) ile Armut Mail_Mime hayranıyım [({(1)]}).

(HTML desteklemeyen istemciler için bir düz metin gövdesi ile) bir HTML e-posta gönderme, bu kadar basittir:

include_once('Mail.php');
include_once('Mail/Mime.php');

$htmlBody = '<html><body><b>Hello World</b></body></html>';
$plainBody = 'Your client doesn\'t support HTML';
$em = Mail::factory('sendmail');
$headers = array('From'=>'me@domain.com', 'To'=>'joe@schmoe.com', 'Subject'=>'Cool Email');
$mime = new Mail_Mime();
$mime->setTxtBody($plainBody);
$mime->setHtmlBody($htmlBody);
$message = $mime->get();
$headers = $mime->headers($headers);
$mail = $em->send('joe@schmoe.com', $headers, $message);

Ben fark bir sorun uygun yerlerde çift tırnak yerine tek tırnak kullanmak zorunda olmasıdır.

Kullanın: "\r\n"

Yerine: '\r\n'