Когда я пытаюсь отправить электронное письмо с использованием класса PHPMailer, я получаю эту ошибку: Ошибка Mailer: 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!"; } ?>
Как сказал Джеральд Верслуис, поскольку вы устанавливаете значение IsHTML () на false, вам нужно будет использовать свойство -> Body для установки фактического тела почты.
$mail->Body = $_GET['msg'];
Вы также должны использовать POST вместо GET для отправки того, что вызывает действие.
Этот пост был упомянут в прошлом здесь. Phpmailer отправляет вложения, но не тело
Они обнаружили, что они не могут отправить тело и вложения.
У меня были эти две строки кода, но у меня не было никакого файла 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';`