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");
}
?>