Мне нужна помощь. У меня есть контактный формуляр для веб-сайта, но он не отправляет электронное письмо, однако сообщение, которое я запрограммировал, чтобы сообщить о его работе, попал правильно.
Хеш 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©
</footer>
</html>
И здесь используется PHP
<?php
$nombre = $_POST['nombre'];
$email = $_POST['email'];
$mensaje = $_POST['mensaje'];
$para = '[email protected]';
$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 = '[email protected]';
$nombre = $_POST["nombre"];
$email = $_POST["email"];
$mensaje = $_POST["mensaje"];
$mail = new PHPMailer;
$mail->isSMTP();
$mail->Host = 'smtp1.example.net';
$mail->SMTPAuth = true;
$mail->Username = '[email protected]';
$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()
? Это работает с сервера? Вероятно, вы также поднимаете флаги SPAM или просто блокируетесь. Лучшим способом отправить надежную электронную почту является настройка учетной записи SMTP и отправка почты из этой аутентифицированной учетной записи. PHPMailer может помочь ускорить процесс для вас.
Он не работает, потому что вы пытаетесь отправить электронное письмо с электронной почты получателей. вы можете сделать это.
замените $ header = 'From:'. $ По электронной почте;
с $ header = 'From:'. $ Пункт;
и посмотреть, поможет ли это вам.
Возможно, вы запустите его на локальном или локальном сервере. попробуйте в Интернете и добавьте следующие строки:
$headers .= "Cc: [email protected]\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
Кроме того, вы должны ввести действительный адрес электронной почты как SENDER, как в вашем коде:
$header = 'From: ' . $email;
ОБНОВЛЕНО 2:
<?php
$email_reciever='[email protected]'; // user email that fills the form
$to = $email_reciever;
$subject = 'ASUNTO DEL MENSAJE';
$headers = "From: NightJunkies <[email protected]>\r\n";
$headers .= "Cc: [email protected]\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'>";
?>
если он недействителен отправителем электронной почты, сервер получателя его проигнорирует, даже не получит. не забудьте увидеть папку нежелательной или спам
Также проверьте здесь формат почты
From:
Ваш Интернет-провайдер почти наверняка блокирует это, потому что он не существует на их сервере.