PHPMAILER,IsHTML已设置为true

时间:2015-01-07 19:02:33

标签: php html phpmailer

isHTML已设置为True。但它在我收到的电子邮件中不起作用。我只是从教程中获取示例html。

  <?php
    require("phpmailertest/class.phpmailer.php");
    $x=$_SESSION['items'];
        $mail = new PHPMailer();
        $mail->IsSMTP(); // set mailer to use SMTP
        // $mail->SMTPDebug  = 2; 
        $mail->From = "benedictpayot@gmail.com";
        $mail->FromName = "BravoTech Solutions";
        $mail->Host = "smtp.gmail.com"; // specif smtp server
        $mail->SMTPSecure= "ssl"; // Used instead of TLS when only POP mail is selected
        $mail->Port = 465; // Used instead of 587 when only POP mail is selected
        $mail->SMTPAuth = true;
        $mail->Username = "benedictpayot@gmail.com"; // SMTP username
        $mail->Password = "Ichthys030313!"; // SMTP password
        $mail->AddAddress($_SESSION['email_address']);
        $mail->IsHTML(true); 

        $mail->Subject  = "Mail Test";

        $mail->Body = '<html><body>';
        $mail->Body = '<table style="border-color: #eee;"';
        $mail->Body = '<tr>
                            <td>JALOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
                            <td>OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
                        <tr>
                            <td>BENEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEDICT
                            <td>PAYOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOT
                    </table>';

        $mail->WordWrap = 50;

        if(!$mail->Send()) {

        echo 'Message was not sent.';
            session_destroy();
        echo 'Mailer error: ' . $mail->ErrorInfo;

        } else {

        echo 'Message has been sent.';

        }
    ?>

2 个答案:

答案 0 :(得分:1)

您可以手动将Body(和AltBody)设置为您喜欢的任何值。 msgHTML()是一个便利函数,用于设置它们的moth,并可选择将html应用于文本转换以生成纯文本版本。它还设置isHTML,重写图像URL和各种其他内容 - 但您不必使用它。

在您的代码中,您说:

$mail->Body = '<html><body>';
$mail->Body = '<table style="border-color: #eee;"';
$mail->Body = '<tr>...

应该是:

$mail->Body = '<html><body>';
$mail->Body .= '<table style="border-color: #eee;"';
$mail->Body .= '<tr>...

否则你只是每次都覆盖Body的内容。

您应该将代码基于the gmail example bundled with PHPMailer - 看起来您正在使用其他地方的旧代码。

答案 1 :(得分:0)

我不确定(如果我错了,请纠正我),但我总是像这样设置身体:

$mail->MsgHTML($body);