PHP Mailer Class问题:消息体空

时间:2012-07-16 14:43:02

标签: php

当我尝试使用PHPMailer类发送电子邮件时,我收到此错误: 邮件程序错误:邮件正文为空:

<?php

    include("class.phpmailer.php");

    $mail = new PHPMailer();
    $mail->IsSMTP();

    $mail->SMTPAuth   = true;

    $mail->SMTPSecure = "ssl";
    $mail->Host       = "rsb20.rhostbh.com";
    $mail->Port       = 465;
    $mail->Username   = "jobserreker+furrtexlab.com";
    $mail->Password   = "12345678a";

    $mail->From       = "jobserreker@furrtexlab.com";
    $mail->FromName   = "Job Seeker";
    $mail->Subject    = $_GET['subject'];
    $mail->MsgHTML($_GET['msg']);

    $mail->AddAddress($_GET['to'],"name to");
    $mail->IsHTML(false);

    if(!$mail->Send())
    {
      echo "Mailer Error: " . $mail->ErrorInfo;

    }else{

        echo "Message sent!";
    }
?>

3 个答案:

答案 0 :(得分:5)

正如Gerald Versluis所说,由于你将IsHTML()设置为false,你必须使用 - &gt; Body属性来设置邮件的实际主体。

$mail->Body = $_GET['msg'];

您还应该使用POST而不是GET来提交导致操作执行的内容。

答案 1 :(得分:0)

此帖已在此处提及。 Phpmailer sending attachments, but not the body

他们发现他们无法发送身体和附件。

答案 2 :(得分:0)

我有这两行代码,但没有任何contents.html文件,我必须创建一个以避免错误。

//Read an HTML message body from an external file, convert referenced imagesto embedded,
//convert HTML into a basic plain-text alternative body
$mail->msgHTML(file_get_contents('contents.html'), dirname(__FILE__));

//Replace the plain text body with one created manually
$mail->AltBody = 'This is a plain-text message body';`