Neden html etiketleri PHP benim dize kadar gösteriyor?

4 Cevap php

Ben değişken $ bünyesinde bulunan bir iletiyi geri gönderen bir mail fonksiyonu kullanıyorum. Ben bazı kalın kelime ve sonu etiketleri bir dizi ile kendime bir mesaj göndermek istiyorum.

İşte benim kod (Yorumlu metin sözdizimi) olduğunu:

$body = <<<CTS
<h1><b>Order for $name on datevariable</b></h1><br /><br />

<b><u>Administrative Details</u></b><br />
<b>Employee ID:</b> $id<br />
<b>Cost Center:</b> $cost_center<br />
<b>Approved By:</b> $approved_by<br />
<b>Delivery Bldg:</b> $delivery_bldg<br />
<b>Delivery Contact Email:</b> $delivery_contact<br />
<b>Ext:</b> $del_contact_ext<br />
CTS;

Ben e-posta aldığınızda Nedense, bu gibi görünüyor:

<h1><b>Order for James Important on datevariable</b></h1><br /><br />
<b><u>Administrative Details</u></b><br />
<b>Employee ID:</b> 213123<br />
<b>Cost Center:</b> 132123<br />
<b>Approved By:</b> Chris Seckla<br />
<b>Delivery Bldg:</b> 6<br />
<b>Delivery Contact Email:</b> test@email.com<br />
<b>Ext:</b> 56<br />

Bu değişken değerleri doldurur ama nedense html etiketleri sayar. Birisi nasıl bu düzeltmek için bana söyleyebilir misiniz?

Ayrıca, mola etiketleri görmezden geliyor ve ben boşluğa bırakmak satırı yalnızca sonları koyarak. Bu konuda herhangi bir fikir?

4 Cevap

Bu bir e-posta ise, metin yerine / ovanın / html metin mim türünü ayarlamanız gerekir. Aksi takdirde e-posta okuyucusu düz metin olarak mesaj yorumlamak ve tüm html etiketlerini görmezden olacaktır.

Örneğin, bu gibi mail işlevini çağırıyor Diyelim ki:

mail( $to, $subject, $message, $headers )

In $headers, (tabii belirli durumda arındırılmış,) bu satırlar boyunca bir şey gerekir:

$headers = "From: webmaster@example.com\r\n";
$headers .= "Reply-To: webmaster@example.com\r\n";
$headers .= "Content-Type: text/html";

Eğer düz metin ve html e-posta (yani non-html okuyucular tüm bu etiketleri olmadan e-posta temiz bir versiyonunu görebilirsiniz) hem de göndermek istiyorsanız, ben daha ayrıntılı için this öğretici bir göz alarak öneririm çok parçalı e-postaların açıklama.

Sen e-posta için php gönderme html biçimini kullanarak görüntülemek için zaman ek bir başlığı ayarlamak zorunda:

Content-Type: text / html; charset = ne olursa olsun

Eğer HTML devletler başlık göndermek emin olun ...

Örnek:

mail('email@domain.com', 'Subject',
'<html><body><b>Hello</b></body></html>',
"To: The Receiver <recipient@domain.com>\n" .
"From: The Sender <email@domain.com>\n" .
"MIME-Version: 1.0\n" .
"Content-type: text/html; charset=iso-8859-1");

PHP ile mail göndermek istiyorsanız bunun yerine düz posta işlevi ARMUT Mail_Mime paketi ile size tavsiye ederim