我的网站上有一份(直到昨天)工作表格。表单会询问一些问题,并根据答案发送自定义的电子邮件。一切都运转正常,但它突然停止工作。这是错误状态:
邮件未发送。邮件程序错误:邮件正文空白
这几个月我没有改变任何事情。也许是服务器升级? 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 = 'presupuesto@myurl.es'; // 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 = "presupuesto@myurl.es";
$mail->FromName = 'my web';
//mail
$contenido = $duracion."\n".$idiomas."\n".$provincias."\n".$zonas."\n".$Nombre."\n".$Empresa."\n".$Telefono."\n".$Email;
mail("info@myurl.es","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 :(得分:0)
显而易见的结论是,您从http://www.myurl.es/presupuesto/2.htm
检索的内容是空的,或者有问题。这就是您应该始终检查返回值的原因。
您还会在某些消息上伪造“发件人”地址,这几乎可以保证发送失败。
为什么要调用mail()
以及使用PHPMailer?
我还可以看到你使用旧版本的PHPMailer,所以我建议你更新。