2012-06-21 63 views
16

我使用的PHPMailer發送電子郵件。的PHPMailer發送HTML代碼

我也用HTML =真正的內容類型

$mail = new PHPMailer(); 

$mail->IsSMTP();     // send via SMTP 
$mail->Host  = $Host; 
$mail->SMTPAuth = true;    // turn on SMTP authentication 
$mail->Username = $Username; 
$mail->Password = $Password; 

$mail->From  = $From; 
$mail->FromName = $FromName; 

    $mail->AddAddress($To , $ToName); 

$mail->WordWrap = 50;    // set word wrap 
    $mail->Priority = 1; 
$mail->IsHTML(true); 
$mail->Subject = $Subject; 
$mail->Body  = $Body; 

一旦電子郵件發送我看到實際的HTML代碼,而不是內容請查看以下

enter image description here

**不知道什麼是問題**

+0

你能告訴您使用的是補身體的代碼? –

+0

你在做'$ MAIL->車身($ your_html_html)'? –

+0

@MarcB是的,我正在使用$ mail-> Body = $ Body; – user580950

回答

49

調用實例Body道具後isHTML()方法erty(我的意思是$mail->Body)已設置解決了這個問題對我來說:

$mail->Subject = $Subject; 
$mail->Body = $Body; 
$mail->IsHTML(true);  // <=== call IsHTML() after $mail->Body has been set. 
+0

這是正確的,但您絕對不應該在'$ mail-> IsHTML(true)'後面調用'$ mail-> ClearCustomHeaders();'。 'ClearCustomHeader'擺脫了您的電子郵件HTML格式,而收件人將收到HTML源代碼。 –

-1

只是你需要通過真正作爲參數傳遞給IsHTML()函數。

2

,或者如果你有問題,仍可以使用此

$mail->Body = html_entity_decode($Body); 
4

//請原諒我初學英語

有msgHTML()方法,該方法,也叫IsHTML()。

槽糕......名字IsHTML是混亂...

/** 
* Create a message from an HTML string. 
* Automatically makes modifications for inline images and backgrounds 
* and creates a plain-text version by converting the HTML. 
* Overwrites any existing values in $this->Body and $this->AltBody 
* @access public 
* @param string $message HTML message string 
* @param string $basedir baseline directory for path 
* @param bool $advanced Whether to use the advanced HTML to text converter 
* @return string $message 
*/ 
public function msgHTML($message, $basedir = '', $advanced = false) 
-2

不喜歡使用GET方法,這種粘貼您的單獨的HTML文件中的HTML代碼。

$mail->IsHTML(true);         
    $mail->WordWrap = 70;         
    $mail->addAttachment= $_GET['addattachment']; $mail->AltBody 
    =$_GET['AltBody']; $mail->Subject = $_GET['subject']; $mail->Body = $_GET['body']; 
-2

所有你需要做的只是添加$ mail-> IsHTML(true);它工作正常的代碼..

0

在5.2.7版本我使用它來發送純文本: $mail->set('Body', $Body);

-2

什麼差點殺了我,是我定義$ MAIL-> AltBody。除去在此之後,一切工作