
Falla en formulario con PHPMailer en IONOS
Publicado por Gerardo (2 intervenciones) el 30/03/2024 21:53:44
Estimados[u]
Este es mi primer mensaje en el foro, mi nombre es Gerardo.
Voy a tratar de ser lo mas claro posible con el problema que tengo:
Tengo una web que en sus formularios utiliza phpmailer, Desde hace unos dias el servidor donde tengo una web (ionos.es), ha modificado algunas cuestiones de seguridad y los formularios dejaron de funcionar.
Luego de muchas pruebas y consultas con el soporte tecnico (todas negativa) probe en otro servidor (de otra empresa) y ahi funciona perfecto... pero en IONOS NO.
El formulario se encuentra en: https://www.mcspalma.com/txt/comuni.php
Sucede que cuando le doy al boton de "enviar" genera el mensaje de error:
"Hubo un error y no hemos podido entregar tu mensaje, por favor vuelve a intentarlo"
Luego de varias pruebas me di cuenta que SI en ese formulario yo coloco en el campo "EMAIL" una direccion del MISMO DOMINIO... Ej. [email protected] el mensaje llega perfecto
El script que utilizo para enviar el formulario es el siguiente:
Y en el archivo Config.php tengo:
Los "gentiles de la empresa de Hosting" me pasaron este script que funciona... pero cuando intento integrarla al formulario, tambien falla y es probable que sea por mis escasos conocimientos.
Por las dudas se los dejo aqui:
Espero no haberme extendido demaciado... Desde ya MUCHAS GRACIAS por sus ideas o aportes
Gerardo
Este es mi primer mensaje en el foro, mi nombre es Gerardo.
Voy a tratar de ser lo mas claro posible con el problema que tengo:
Tengo una web que en sus formularios utiliza phpmailer, Desde hace unos dias el servidor donde tengo una web (ionos.es), ha modificado algunas cuestiones de seguridad y los formularios dejaron de funcionar.
Luego de muchas pruebas y consultas con el soporte tecnico (todas negativa) probe en otro servidor (de otra empresa) y ahi funciona perfecto... pero en IONOS NO.
El formulario se encuentra en: https://www.mcspalma.com/txt/comuni.php
Sucede que cuando le doy al boton de "enviar" genera el mensaje de error:
"Hubo un error y no hemos podido entregar tu mensaje, por favor vuelve a intentarlo"
Luego de varias pruebas me di cuenta que SI en ese formulario yo coloco en el campo "EMAIL" una direccion del MISMO DOMINIO... Ej. [email protected] el mensaje llega perfecto
El script que utilizo para enviar el formulario es el siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?php
session_start();
$_SESSION["token"] = md5(uniqid(mt_rand(), true));
require "config.php";
ini_set('display_errors',1); error_reporting(E_ALL);
if(!empty($_POST["csrf"]) && !empty($_POST["csrf"]) == $_SESSION["token"]){
$userIP = $_SERVER["REMOTE_ADDR"];
$recaptchaResponse = $_POST['g-recaptcha-response'];
$secretKey = $yoursecretkey;
$request = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret={$secretKey}&response={$recaptchaResponse}&remoteip={$userIP}");
if(!strstr($request, "true")){
echo '<script>alert("Hay un problema! por favor completa correctamente el captcha...");</script>';
}
else{
if(isset($_POST['nombre']) && isset($_POST['servicio']) && isset($_POST['correo']) && isset($_POST['mensaje']))
{
$message=
'<strong>Nombre:</strong> '.$_POST['nombre'].'<br /> <br />
<strong>Pregunta por:</strong> '.$_POST['servicio'].'<br /> <br />
<strong>Correo:</strong> '.$_POST['correo'].'<br /> <br />
<strong>Mensaje:</strong> '.$_POST['mensaje'].' <br /> <br /> <hr>
<p><strong>Datos de envio</strong>:</p>
<strong>Enviado desde:</strong> '.$_SERVER['HTTP_HOST'].' <br>
<strong>IP:</strong> '.$userIP.'
';
require "mailer/class.phpmailer.php";
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->SMTPSecure = "tls";
$mail->Host = $host;
$mail->Port = 587;
$mail->Encoding = '7bit';
$mail->Username = $senderEmail;
$mail->Password = $senderPassword;
$mail->SetFrom($_POST['correo'], $_POST['nombre']);
$mail->AddReplyTo($_POST['correo'], $_POST['nombre']);
$mail->Subject = "Formulario de contacto";
$mail->MsgHTML($message);
$mail->AddAddress("$receiver", $receiverName);
$result = $mail->Send();
$alerta = $result ? '<script>alert("Hemos recibido tu mensaje, nos pondremos en contacto con usted a la brevedad.");</script>' : '<script>alert("Hubo un error y no hemos podido entregar tu mensaje, vuelve a intentarlo.");</script>';
session_destroy();
unset($mail);
}
}
}
?>
Y en el archivo Config.php tengo:
1
2
3
4
5
6
7
8
9
$host = "smtp.ionos.es";
$senderEmail = "algo@mcspalma.com";
$senderPassword = "miPasword";
// INFORMACION DEL QUE RECIBE EL MENSAJE
$receiverName = "Algo";
$receiver = "algo@mcspalma.com";
$yoursecretkey = "6Ldr6KwlAAAAAMV3igcNJjLidPTrhSqhxxxxxxxxx";
$yourpublickey = "6Ldr6KwlAAAAADzcmyexRG3dAyj9Eu9jxxxxxxxxx";
Los "gentiles de la empresa de Hosting" me pasaron este script que funciona... pero cuando intento integrarla al formulario, tambien falla y es probable que sea por mis escasos conocimientos.
Por las dudas se los dejo aqui:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
?php require "mailer/class.phpmailer.php";
$mail = new PHPMailer();
$body = "Test de PHPMailer";
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->SMTPSecure = "tls";
$mail->Host = "smtp.ionos.es";
$mail->Port = 587;
$mail->Username = "algo@mcspalma.com";
$mail->Password = "miPasword";
$mail->From = "algo@mcspalma.com";
$mail->FromName = "Soporte IONOS";
$mail->Subject = "Mensaje de prueba";
$mail->MsgHTML($body);
$mail->AddReplyTo("algo@mcspalma.com","Soporte IONOS");
$mail->AddAddress("algo@mcspalma.com");
$mail->IsHTML(true);
if(!$mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "El mensaje se ha enviado correctamente";
}
?>
Espero no haberme extendido demaciado... Desde ya MUCHAS GRACIAS por sus ideas o aportes
Gerardo
Valora esta pregunta


0