Comunidad de diseño web y desarrollo en internet online

NO ME ENVÍA CORREOS A TRAVÉS DE PHP

Citar            
MensajeEscrito el 27 Feb 2015 02:54 pm
Hola
Estoy haciendo una pagina web y me pidieron una sección de contacto donde se envié los comentarios a un correo determinado pero cuando publico la pagina no envía ningún correo ni tampoco cuando lo hago local mente.
les adjunto el código ojala y me puedan ayudar ya que soy nueva en php.

pagina de contacto codigo html:


<form action="contacto.php" method="post">
<label for="nombre">Nombre:</label>
<input id="nombre" type="text" name="nombre" placeholder="Nombre y Apellido" required />
<label for="email">Email:</label>
<input id="email" type="email" name="email" placeholder="[email protected]" required />
<label for="mensaje">Mensaje:</label>
<textarea id="mensaje" name="mensaje" placeholder="Mensaje" required></textarea>
<input id="submit" type="submit" name="submit" value="Enviar" />
</form>



pagina enviar.php Codigo php:

<?php

function check_email_address($email)
{
// Primero, checamos que solo haya un símbolo @, y que los largos sean correctos
if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email))
{
// correo inválido por número incorrecto de caracteres en una parte, o número incorrecto de símbolos @
return false;
}
// se divide en partes para hacerlo más sencillo
$email_array = explode("@", $email);
$local_array = explode(".", $email_array[0]);
for ($i = 0; $i < sizeof($local_array); $i++)
{
if (!ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$", $local_array[$i]))
{
return false;
}
}
// se revisa si el dominio es una IP. Si no, debe ser un nombre de dominio válido
if (!ereg("^\[?[0-9\.]+\]?$", $email_array[1]))
{
$domain_array = explode(".", $email_array[1]);
if (sizeof($domain_array) < 2)
{
return false; // No son suficientes partes o secciones para se un dominio
}
for ($i = 0; $i < sizeof($domain_array); $i++)
{
if (!ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$", $domain_array[$i]))
{
return false;
}
}
}
return true;
}


/**
* @author luis roberto gonzalez tavera
* @copyright 2010
*/
$validaemail=$_POST[correo];
if (check_email_address($validaemail))
{

/*****************



*****************/



if(isset($_POST["submit"]) && !empty($_POST["correo"]))

{


// primero hay que incluir la clase phpmailer para poder instanciar
//un objeto de la misma
require "includes/class.phpmailer.php";

//instanciamos un objeto de la clase phpmailer al que llamamos
//por ejemplo mail
$mail = new phpmailer();

//Definimos las propiedades y llamamos a los métodos
//correspondientes del objeto mail

//Con PluginDir le indicamos a la clase phpmailer donde se
//encuentra la clase smtp que como he comentado al principio de
//este ejemplo va a estar en el subdirectorio includes
$mail->PluginDir = "includes/";

//recibimos variables
$nombre=$_POST[nombre];
//$direccion=$_POST[direccion];
//$telefono=$_POST[telefono];
$email=$_POST[email];
// $mailc=$_POST[maile];
$mensaje=$_POST[mensaje];



//Con la propiedad Mailer le indicamos que vamos a usar un
//servidor smtp
$mail->Mailer = "smtp";

//Asignamos a Host el nombre de nuestro servidor smtp
$mail->Host = "mail.1csb.mx";

//Le indicamos que el servidor smtp requiere autenticación
$mail->SMTPAuth = true;

//Le decimos cual es nuestro nombre de usuario y password
$mail->Username = "[email protected]";
$mail->Password = "callcenter2010";


//Indicamos cual es nuestra dirección de correo y el nombre que
//queremos que vea el usuario que lee nuestro correo
$mail->From = "[email protected]";
$mail->FromName = "Prendal";

//el valor por defecto 10 de Timeout es un poco escaso dado que voy a usar
//una cuenta gratuita, por tanto lo pongo a 30
$mail->Timeout=30;

//Indicamos cual es la dirección de destino del correo
$mail->AddAddress("[email protected]");

$mail->AddAddress("$mailc");




//Asignamos asunto y cuerpo del mensaje
//El cuerpo del mensaje lo ponemos en formato html, haciendo
//que se vea en negrita
$mail->Subject = "Prendal";
$mail->Body = "<body><center>
<h1 style=\"font-family:Verdana,sans-serif; color:#ff6600; \">
Mensaje de contacto salpro</h1></center> <br>Correo : $correo <br>Nombre : $nombre <br>Telefono : $telefono <br>Direccion : $direccion <br>Comentario : $comentario";

//Definimos AltBody por si el destinatario del correo no admite email con formato html
$mail->AltBody = "Prendal";

//se envia el mensaje, si no ha habido problemas
//la variable $exito tendra el valor true
$exito = $mail->Send();

//Si el mensaje no ha podido ser enviado se realizaran 4 intentos mas como mucho
//para intentar enviar el mensaje, cada intento se hara 5 segundos despues
//del anterior, para ello se usa la funcion sleep
$intentos=1;
while ((!$exito) && ($intentos < 5)) {
sleep(5);
//echo $mail->ErrorInfo;
$exito = $mail->Send();
$intentos=$intentos+1;

}


if(!$exito)
{
echo "Problemas enviando correo electrónico a ".$valor;
echo "<br>".$mail->ErrorInfo;
}
else
{
header("location:mashala.php?nombre=$nombre&correo =$correo&enviado=1");
}

}

else
{


}


}
else
{

header("location:mashala.php?nombre=$nombre&correo =novalido&enviado=2");
}
?> :(

Por jovana.delgado84

0 de clabLevel



 

chrome
Citar            
MensajeEscrito el 02 Mar 2015 05:06 pm
Antes de que alguien salga con PHPmailer.. que de hecho si deberías utilizarlo mi pregunta para ti seria.

¿tu servidor local es un servidor de correo? ¿sabes que se requiere para tener un servidor de correo?

habiendo dicho esto, checa la clase PHPmailer, te quitara de problemas pues te permite conectar a un servidor de email de verdad.

Por elporfirio

Claber

652 de clabLevel

1 tutorial

Genero:Masculino  

FullStack Web Developer

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.