2012-06-21 128 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。除去在此之后,一切工作