2015-08-07 3 views
0

У меня была (до вчерашнего дня) рабочая форма на моем веб-сайте. Форма задает некоторые вопросы и отправляет настраиваемое электронное письмо в зависимости от ответов. Все работало нормально, но внезапно перестало работать. Вот статус ошибки:Ошибка почтовой программы PHP: пустое поле сообщения

Сообщение не было sent.Mailer ошибка: тело сообщения пустым

Я никогда ничего не изменилось в эти месяцы. Возможно, обновление сервера? Обновление версии PHP? Обновление Wordpress? Найти приложенный код PHP, может быть, вы нашли что-то с каким-то «новым стандартом» или версией PHP ...

require_once("phpmailer/class.phpmailer.php"); 

// Recuperación de las variables del formulario 

$duracion = $_POST['duracion']; 
$idiomas = $_POST['idiomas']; 
$provincias = $_POST['provincias']; 
$zonas = $_POST['zonas']; 
$Nombre = $_POST['Nombre']; 
$Empresa = $_POST['Empresa']; 
$Telefono = $_POST['Telefono']; 
$Email = $_POST['Email']; 

$mail = new PHPMailer(); 
$mail->IsSMTP(); // telling the class to use SMTP 
$mail->Host  = "localhost"; // SMTP server 
$mail->SMTPAuth = true; // Enable SMTP authentication 
$mail->Username = '[email protected]'; // SMTP username 
$mail->Password = 'freelancer2'; // SMTP password 
$mail->SMTPSecure = 'tls'; // Enable encryption, 'ssl' also accepted 
$mail->isHTML(true); // Set email format to HTML 
$mail->From  = "[email protected]"; 
$mail->FromName = 'my web'; 

//mail 

$contenido = $duracion."\n".$idiomas."\n".$provincias."\n".$zonas."\n".$Nombre."\n".$Empresa."\n".$Telefono."\n".$Email; 

mail("[email protected]","Solicitud de Presupuesto",$contenido,"From:$Email"); 

// resultado en funcion de la puntuación 

if ($duracion == 1 and $idiomas == 1 and $provincias ==1 and $zonas == 0) { 

    $mensaje = file_get_contents("http://www.myurl.es/presupuesto/2.htm"); 

$mail->AddAddress($Email); 
    $mail->Subject = "Presupuesto del video"; 
    $mail->Body  = $mensaje; 

    if(!$mail->Send()) { 
     echo 'Message was not sent.'; 
     echo 'Mailer error: ' . $mail->ErrorInfo; 
     die(); 
    } 

    Header("Location: http://www.myurl.es/gracias"); 


} elseif ($duracion == 1 and $idiomas == 1 and $provincias ==2 and $zonas == 0) { 

    $mensaje = file_get_contents(" 




...and so on! 

ответ

0

Очевидный вывод заключается в том, что содержание вы извлекаете из http://www.myurl.es/presupuesto/2.htm пусто или имеет проблема. Вот почему вы всегда должны проверять возвращаемые значения.

Вы также подделываете адрес From на некоторых сообщениях, что почти гарантирует отказ доставки.

Почему вы звоните mail(), а также с помощью PHPMailer?

Я также вижу, что вы используете старую версию PHPMailer, поэтому я рекомендую обновлять.

+0

Hi Synchro, спасибо за ваши комментарии! URL-адреса, которые вызываются для заполнения тела сообщения, в порядке, работают и без проблем. У формы также есть ckecker для обеспечения того, чтобы все входы были заполнены (из, почта и т. Д.). Самое странное, что это работало отлично до вторника и внезапно прекратило работу ...: - ((( –

+0

ОК, поэтому попробуйте с некоторым статическим контентом. – Synchro

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