Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP POST方法,不发送电子邮件_Php_Html - Fatal编程技术网

PHP POST方法,不发送电子邮件

PHP POST方法,不发送电子邮件,php,html,Php,Html,我需要一些帮助。我有一个网站的联系方式,但它不发送电子邮件,但是我编程的消息告诉它的工作,弹出正确 这是HTML <!doctype html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no, maximum-scale=1.0, minimum-scale=1.0">

我需要一些帮助。我有一个网站的联系方式,但它不发送电子邮件,但是我编程的消息告诉它的工作,弹出正确

这是HTML

<!doctype html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no, maximum-scale=1.0, minimum-scale=1.0">
<title>Untitled Document</title>
<link href="CSS/Principal.css" rel="stylesheet" type="text/css">
<link href="fonts.css" rel="stylesheet" type="text/css">
</head>

<body>
<header>
</header>
<section class="formulario">
    <form action="contacto.php" method="post">
      <p>
        <label for="nombre">Nombre:</label>
        <input id="nombre" type="text" name="nombre" placeholder="Nombre, Apellido y/o escuela" required="" />
        <label for="email">Email:<br>
        </label>
        <input id="email" type="email" name="email" placeholder="ejemplo@nightjunkies" required="" />
        <label for="mensaje">Mensaje:</label>
        <textarea id="mensaje" name="mensaje" placeholder="Mensaje" required>    </textarea>
        <input id="submit" type="submit" name="submit" value="Enviar" />
      </p>
    </form>

  </section>

</body>
<footer>
<p class="footer">Powered By Xanmaya&copy;
</footer>
</html>

无标题文件

名义:
电子邮件:
门萨耶:

由Xanmaya©提供动力;

这里是使用的PHP

<?php
$nombre = $_POST['nombre'];
$email = $_POST['email'];
$mensaje = $_POST['mensaje'];
$para = 'villasantdesign@gmail.com';
$titulo = 'ASUNTO DEL MENSAJE';
$header = 'From: ' . $email;
$msjCorreo = "Nombre: $nombre\n E-Mail: $email\n Mensaje:\n $mensaje";

if ($_POST['submit']) {
if (mail($para, $titulo, $msjCorreo, $header)) {
echo "<script language='javascript'>
alert('Mensaje enviado, muchas gracias.');
window.location.href = 'http://nightjunkies.com.mx';
</script>";
} else {
echo 'Falló el envio';
}
}
?>

谢谢你的帮助

最后,我用PHPMailer修复了它

<?php
require 'phpmailer/PHPMailerAutoload.php';
if(isset($_POST["submit"] ))
{
    $nombrede = "Administrador";
    $de = 'example@domain.com';
    $nombre = $_POST["nombre"];
    $email = $_POST["email"];
    $mensaje = $_POST["mensaje"];

    $mail = new PHPMailer;
    $mail->isSMTP();
    $mail->Host = 'smtp1.example.net';
    $mail->SMTPAuth = true;
    $mail->Username = 'example@mydomain.com';
    $mail->Password = 'password';
    $mail->Port = 80;

    $mail->From = $email;
    $mail->FromName = $nombre;
    $mail->addAddress($de, $nombrede);

    $mail->Subject = "Contacto Night Junkies";
    $mail->Body = $mensaje;

    if($mail->Send())
    {
        echo "<script language='javascript'>
alert('Mensaje enviado, muchas gracias.');
window.location.href = 'http://nightjunkies.com.mx';
</script>";
    } else {
        echo 'Hubo un problema';
        echo 'Mailer Error: ' . $mail->ErrorInfo;


}
}
?>


这可能不起作用的原因很多。如何配置PHP来处理
mail()
?这在服务器上有效吗?你也可能提高垃圾邮件标志或只是被阻止。发送可靠电子邮件的更好方法是设置一个SMTP帐户并从该经过身份验证的帐户发送邮件。可能有助于加快您的速度。

它不起作用,因为您试图从收件人的电子邮件发送电子邮件。你可以这样做

替换$header='From:'$电子邮件

其中$header='From:'$段落


看看这是否对您有帮助。

这可能是您在localhostlocalserver中运行的。联机尝试并添加以下行:

$headers .= "Cc: VALID@EMAIL.COM\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
此外,您应该键入有效的电子邮件作为发件人,如您的代码中所示:

$header = 'From: ' . $email;
更新内容2:

<?php
$email_reciever='reciever@emailvalid.com'; // user's email that fills the form

$to = $email_reciever;
$subject = 'ASUNTO DEL MENSAJE';
$headers = "From: NightJunkies <sender@validemail.com>\r\n";
$headers .= "Cc: sender@validemail.com\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$message = '<html><body>';
$message = 'Hello, friend!';
$message .= "</body></html>";
mail($to, $subject, $message, $headers);
echo "<script>alert('Mensaje enviado, muchas gracias!');</script>";
echo "<meta http-equiv='refresh' content='0; url=http://nightjunkies.com.mx'>";
?>

您正在使用用户发布的电子邮件地址作为您的
发件人:
地址。您的ISP几乎肯定会阻止它,因为它在他们的服务器上不存在。您可以使用服务器端重定向,而不是使用JavaScript。JavaScript没有问题。工作正常。没问题,但也没必要。请在更新的2中再次检查我的答案,请不要先使用其他东西。只需使用一页中的代码进行测试。如果你有错误发现或报告,请让我知道我想我会寻找另一种方法。我不知道这是否是服务器问题。