2016-02-25 4 views
0

Привет всем Я пытаюсь отправить электронное письмо с моей учетной записи, но показывает ошибку «Message Body Missing». Может ли кто-нибудь помочь мне исправить это.Ошибка Mailer: Тело сообщения пустое Помогите мне исправить

<?php 
require 'PHPMailerAutoload.php'; 
$mail = new PHPMailer; 
$mail->isSMTP(); 
$mail->Host = 'smtp.gmail.com'; 
$mail->SMTPAuth = true; 
$mail->Username = '[email protected]';     // SMTP username 
$mail->Password = '123';    // SMTP password 
$mail->SMTPSecure = 'tls'; 
$mail->Port = 587; 
$mail->setFrom('[email protected]', 'Amit Agarwal');  
$mail->addReplyTo('[email protected]', 'First Last'); 
$mail->addAddress('[email protected]', 'Josh Adams'); 
$mail->addAddress('[email protected]');    // Name is optional 
$mail->addCC('[email protected]'); 
$mail->addBCC('[email protected]'); 
$mail->WordWrap = 50;  
$mail->isHTML(true); 
$mail->Subject = 'Here is the subject'; 
$mail->Body = 'Hey'; 
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; 

$mail->msgHTML(file_get_contents('contents.html'), dirname(__FILE__)); 

if(!$mail->send()) { 
echo 'Message could not be sent.'; 
echo 'Mailer Error: ' . $mail->ErrorInfo; 
exit; 
} 

echo 'Message has been sent'; 
+0

Это может вам помочь: [http://stackoverflow.com/questions/17687325/phpmailer-unable-to-load-msghtml](http://stackoverflow.com/questions/17687325/phpmailer-unable-to -load-msghtml) – szenbalu

ответ

-1
$mail->Body = file_get_contents('contents.html'); 

изменить тело.

+0

Это не делает то, что хочет автор - 'msgHTML()' делает больше, чем установку тела. – Synchro

0

Эта строка устанавливает как Body и AltBody, поэтому установка их заранее не имеет смысла:

$mail->msgHTML(file_get_contents('contents.html'), dirname(__FILE__)); 

Если вы в конечном итоге с Body быть пустым, то это означает, что эта линия не работает, как вы думаете. Самое очевидное, что он не читает ваш файл contents.html, поэтому вы должны проверить, что возвращаемое значение из вашего вызова file_get_contents содержит то, что вы ожидаете, - если это не так, вы просто устанавливаете тело сообщения false, которое будет выглядят пустыми, как вы видите. Попробуйте это:

var_dump(file_get_contents('contents.html')); 

Если это не показывает предполагаемое содержание, проверить, почему - неправильный путь или разрешения очевидные вещи, чтобы проверить.

Смежные вопросы