Foros del Web » Programando para Internet » PHP »

Enviar correo con PHP

Estas en el tema de Enviar correo con PHP en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 27/02/2015, 08:40
 
Fecha de Ingreso: febrero-2015
Mensajes: 1
Antigüedad: 9 años, 1 mes
Puntos: 0
Pregunta Enviar correo con PHP

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");
}
?>
  #2 (permalink)  
Antiguo 27/02/2015, 12:13
Avatar de lauser
Moderator Unix/Linux
 
Fecha de Ingreso: julio-2013
Ubicación: Odessa (Ukrania)
Mensajes: 3.278
Antigüedad: 10 años, 9 meses
Puntos: 401
Respuesta: Enviar correo con PHP

El archivo php.... se denomina realmente enviar.php?. Espero que no, supongo que sera contacto.php.


Y lo de poner los datos del mail reales, no tiene desperdicio..... joder macho, que tienes el user/password...etc........ alucino.
__________________
Los usuarios que te responden, lo hacen altruistamente y sin ánimo de lucro con el único fin de ayudarte. Se paciente y agradecido.
-SOLOLINUX-
  #3 (permalink)  
Antiguo 27/02/2015, 14:17
Avatar de daniel_JuniorCs  
Fecha de Ingreso: febrero-2015
Mensajes: 1
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Enviar correo con PHP

Te recomiendo que revises el php.ini en esta sección:

[mail function]
; For Win32 only.
SMTP = smtp.gmail.com
smtp_port = 465

Si tus valores están distintos pues cámbialos y reinicia tu servidor Apache.
Espero haberte ayudado ;).

--------------------
Estos valores los uso porque estoy trabajando con un correo Gmail

Última edición por daniel_JuniorCs; 27/02/2015 a las 14:19 Razón: información importante

Etiquetas: correo, html, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:29.