Problemas para recibir correo

  • Autor Autor ulises2010
  • Fecha de inicio Fecha de inicio
U

ulises2010

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Hola a todos.

Me he bajado una plantilla y no logro que me lleguen los mails que debe enviar, pero por más que reviso el código no encuentro el error. ¿Me podeis echar una mano?

El código en el index es:

Insertar CODE, HTML o PHP:
<form id="main-contact-form" name="contact-form" method="post" action="sendemail.php">

En el sendmail.php esto es lo que hay

Insertar CODE, HTML o PHP:
<?php
$name       = @trim(stripslashes($_POST['name'])); 
$from       = @trim(stripslashes($_POST['email'])); 
$subject    = @trim(stripslashes($_POST['subject'])); 
$message    = @trim(stripslashes($_POST['message'])); 
$to   		= 'ulises2010@gmail.com';//replace with your email

$headers   = array();
$headers[] = "MIME-Version: 1.0";
$headers[] = "Content-type: text/plain; charset=iso-8859-1";
$headers[] = "From: {$name} <{$from}>";
$headers[] = "Reply-To: <{$from}>";
$headers[] = "Subject: {$subject}";
$headers[] = "X-Mailer: PHP/".phpversion();

mail($to, $subject, $message, $headers);

die;


y no se si tendrá que ver, pero exite también una carpeta js que contine un archivo main.js donde está este código referido también al formulario:

Insertar CODE, HTML o PHP:
// Contact form
	var form = $('#main-contact-form');
	form.submit(function(event){
		event.preventDefault();
		var form_status = $('<div class="form_status"></div>');
		$.ajax({
			url: $(this).attr('action'),
			beforeSend: function(){
				form.prepend( form_status.html('<p><i class="fa fa-spinner fa-spin"></i> Email is sending...</p>').fadeIn() );
			}
		}).done(function(data){
			form_status.html('<p class="text-success">Thank you for contact us. As early as possible  we will contact you</p>').delay(3000).fadeOut();
		});
	});

¿Sabeis que puede fallar?

Gracias
 
segun veo estas tratando de enviar el correo sin autenticarte ante el server, estas seguro que tu server permite enviar correo sin autenticarse?
 
Gracias epsilon.

No entiendo lo de autenticar el server. Otras veces he usado otras plantillas y no necesitaba autenticar nada, el mail lo enviaba directamente. Por ejemplo este send_mail.php me funcionó en su plantilla (aunque intento copiarlo a esta y no logro que funcione)

Insertar CODE, HTML o PHP:
<?php
	$to = "ulises2010@gmail.com"; /*Your Email*/
	$subject = "Información desde LP de masterconfuturo.com"; /*Issue*/
	$date = date ("l, F jS, Y"); 
	$time = date ("h:i A"); 
	
		
	$Email= $_REQUEST['Email'];
	$firstName = $_REQUEST['Firstname'];
	$lastName = $_REQUEST['Lastname'];
	$telefono = $_REQUEST['telefono'];

	$msg="
	Nombre: $firstName $lastName
	Email: $Email
	Telefono: $telefono
	Máster o curso: $_REQUEST[courses]
	
	Mensaje de peticion de información enviado desde la Landing Page de masterconfuturo.com  $date, hour: $time.\n
	
	$_REQUEST[Message]";

	if ($Email=="") {
		echo "<div class='alert alert-error'>
  				<a class='close' data-dismiss='alert'>×</a>
  				<strong>Error</strong> Por favor, proporcionanos tu email.
			</div>
		
		";
	}	
	elseif ($firstName=="" or $lastName=="" or $telefono=="") {
		echo "<div class='alert alert-error'>
  				<a class='close' data-dismiss='alert'>×</a>
  				<strong>Error</strong> Por favor, rellena correctamente todos los campos.
			</div>";
	}	
	else{
		mail($to, $subject, $msg, "From: $_REQUEST[Email]");
		echo "<div class='alert alert-success'>
  				<a class='close' data-dismiss='alert'>×</a>
  				<strong>Gracias por tu interés</strong>
			</div>
		
		
		";	
	}
	
?>
 
En cada servidor hay instalado un servicio encargado de enviar el correo, y para que llegue con exito necesitas autenticarte por ejemplo con smtp, te recomiendo usar PHPMailer que te ayuda a configurar todo lo que necesitas.
 
Muchas gracias.

Ahora que lo comentais si que pienso que puede ser problema del servidor que no envie los correos, porque con el segundo fichero en otro servidor si lo envia pero en este no.

Supongo que entonces tendré que hablar con mi proveedor, porque no se que es lo que tengo que pedirle, porque como digo, sin hacer nada, el segundo fichero si funciona en otro servidor, así que no creo que sea cuestión de poner nada en los ficheros ni de configurar nada yo, sino que deben hacerlo los administradores del servidor ¿no? ¿qué es lo que les tengo que pedir?

Gracias

- - - Actualizado - - -

Hola, pues parece que puedo confirmar que es un problema del servidor, por que exactamente la misma página en otro servidor si envia el correo y en otro no.... lo que no se es que les tengo que pedir al servidor que cambie.... ¿me podeís ayudar?
 
Muchas gracias.

Ahora que lo comentais si que pienso que puede ser problema del servidor que no envie los correos, porque con el segundo fichero en otro servidor si lo envia pero en este no.

Supongo que entonces tendré que hablar con mi proveedor, porque no se que es lo que tengo que pedirle, porque como digo, sin hacer nada, el segundo fichero si funciona en otro servidor, así que no creo que sea cuestión de poner nada en los ficheros ni de configurar nada yo, sino que deben hacerlo los administradores del servidor ¿no? ¿qué es lo que les tengo que pedir?

Gracias

- - - Actualizado - - -

Hola, pues parece que puedo confirmar que es un problema del servidor, por que exactamente la misma página en otro servidor si envia el correo y en otro no.... lo que no se es que les tengo que pedir al servidor que cambie.... ¿me podeís ayudar?

En el archivo PHP copia esto y comenta lo que tienes en el main.js referente al correo.

Insertar CODE, HTML o PHP:
<?php
$name       = @trim(stripslashes($_POST['name'])); 
$from       = @trim(stripslashes($_POST['email'])); 
$subject1    = @trim(stripslashes($_POST['subject'])); 
$message    = @trim(stripslashes($_POST['message'])); 
$to   		= 'ejemplo@correo.com';//replace with your email

$headers  = array();
$headers  = implode("\r\n", $headers);
$headers  = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";
$headers .= "From: {$name} <{$from}>\r\n";
$headers .= "Reply-To: <{$from}>\r\n";
$headers .= "Subject: {$subject1}\r\n";
$headers .= "X-Mailer: PHP/".phpversion()."\r\n";

mail($to, $subject, $message, $headers);

die;
 
Lo ideal seria que te autentifiques para enviar correos, asi tambien evitas que los mismos sean detectados como spam.

Te recomiendo que le des un ojo a PHPMailer

Insertar CODE, HTML o PHP:
date = date ("l, F jS, Y"); 
$time = date ("h:i A"); 
$Email= $_REQUEST['Email'];
$firstName = $_REQUEST['Firstname'];
$lastName = $_REQUEST['Lastname'];
$telefono = $_REQUEST['telefono'];
$msg="
Nombre: $firstName $lastName
Email: $Email
Telefono: $telefono
Máster o curso: $_REQUEST[courses]
Mensaje de peticion de información enviado desde la Landing Page de masterconfuturo.com  $date, hour: $time.\n

$_REQUEST[Message]";
$mail = new PHPMailer;
$mail->isSMTP();
$mail->Host = 'smtp.tusitio.com';  				// El smtp de tu sitio
$mail->SMTPAuth = true;
$mail->Username = 'usuario@tusitio.com';                 	// Tu correo
$mail->Password = 'tucontrasseña';                  		// Contraseña
$mail->SMTPSecure = 'tls';                           		// En el caso de que tu servidor use SSL colocas ¿ssl'
$mail->Port = 587;                                   		// Puerto

$mail->From = 'usuario@tusitio.com';
$mail->FromName = 'Mailer';
$mail->addAddress('ulises2010@gmail.com');     // Recipiente

$mail->isHTML(true);                                  
$mail->Subject = 'Información desde LP de masterconfuturo.com'';
$mail->Body    = $msg;
$mail->AltBody = '$msg'; // body alternativo para clients sin soporte html

if(!$mail->send()) {
    echo 'EL mensaje no ha sido enviado.';
    echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
    echo 'Mensaje eviado';
}
 
Atrás
Arriba