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'];

また、アクションを実行させる何かを送信するには、GET の代わりに POST を使用する必要があります。

于 2012-07-16T15:15:56.773 に答える
0

この投稿は、過去にここで言及されています。Phpmailerは添付ファイルを送信しますが、本文は送信しません

彼らは、本文と添付ファイルを送信できないことがわかりました。

于 2013-01-16T18:08:28.110 に答える
0

この 2 行のコードはありましたが、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 に答える