3

当我尝试使用 PHPMailer 类发送电子邮件时,我收到此错误:Mailer Error: Message body empty:

<?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!";
    }
?>
4

3 回答 3

5

正如 Gerald Versluis 所说,由于您将 IsHTML() 设置为 false,因此您必须使用 ->Body 属性来设置邮件的实际正文。

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

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

于 2012-07-16T15:15:56.773 回答
0

这篇文章过去曾在这里提到过。Phpmailer 发送附件,但不发送正文

他们发现无法发送正文和附件。

于 2013-01-16T18:08:28.110 回答
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';`
于 2016-06-01T16:27:03.707 回答