PHPmailer发送HTML代码

PHPmailer发送HTML代码,php,Php,我正在使用PHPmailer发送电子邮件 我还使用了HTML=True内容类型 $mail = new PHPMailer(); $mail->IsSMTP(); // send via SMTP $mail->Host = $Host; $mail->SMTPAuth = true; // turn on SMTP authentication $mail->Username = $Use

我正在使用PHPmailer发送电子邮件

我还使用了HTML=True内容类型

    $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代码,而不是内容,请检查下面

**不确定问题是什么**

在设置实例
Body
属性(我的意思是
$mail->Body
)后调用
isHTML()
方法为我解决了问题:

$mail->Subject = $Subject;
$mail->Body    = $Body;
$mail->IsHTML(true);       // <=== call IsHTML() after $mail->Body has been set.
$mail->Subject=$Subject;
$mail->Body=$Body;
$mail->IsHTML(正确);//尸体已经固定。

只需将true作为参数传递给IsHTML()函数。

或者,如果仍然存在问题,可以使用此函数

$mail->Body =  html_entity_decode($Body);
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)

这样做可以使用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'];

您只需添加$mail->IsHTML(true);对于代码,它工作正常。

在5.2.7版中,我使用此命令发送纯文本:

$mail->set('Body', $Body);

你能显示你用来填充正文的代码吗?你在做
$mail->body($your_html\u html)
?@MarcB是的,我在用$mail->body=$body;哦!正确的。。。Body是一个属性,而不是一个方法。在任何情况下,下面是关于如何发送html邮件的“官方”教程:@MarcB不确定您想说什么我应该在上面的代码中更改什么?这是正确的,但您永远不应该调用
$mail->ClearCustomHeaders()
$mail->IsHTML(true)
之后
ClearCustomHeader
摆脱您的电子邮件HTML格式,收件人将收到HTML源代码。我个人使用:$mail->msgHTML($email\u body);