Foros del Web » Programando para Internet » PHP »

Enviar mail en php desde localhost

Estas en el tema de Enviar mail en php desde localhost en el foro de PHP en Foros del Web. Hola buenas, a ver si me podéis echar un cablecito ;) Bueno, el tema es simple, lo que quiero es rellenar un formulario y enviarlo ...
  #1 (permalink)  
Antiguo 07/10/2011, 05:20
 
Fecha de Ingreso: abril-2011
Mensajes: 13
Antigüedad: 13 años
Puntos: 1
Enviar mail en php desde localhost

Hola buenas, a ver si me podéis echar un cablecito ;)

Bueno, el tema es simple, lo que quiero es rellenar un formulario y enviarlo por página web... Tengo el código ya implementado en una página web y me funciona perfe, pero lo hice hace mucho y no me acuerdo bien, lo he implementado en mi página de ahora y no me funciona, no me sale nada simplemente... no sé en qué puede fallar... y he pensado... ahora mismo estoy trabajando desde localhost, php está activado correctamente y trabajo desde mac. Y no sé si esto influye, le que sea desde localhost y tenga que configurar o hacer algo más... o simplemente cuando lo suba a un servidor de internet me funcione bien y tal...

De todas formas os pego el código a ver si véis algo que falle...
Código HTML:
<form action="enviarMail.php" method="post" id="formulario">
                        
                        <input type="hidden" name="post" value=" Enviar " />
                        <label for="author">Nombre:</label> <input type="text" id="author" name="author" class="required input_field" />
                        <div class="cleaner_h10"></div>
                        
                        <label for="email">E-Mail:</label> <input type="text" id="email" name="email" class="validate-email required input_field" />
                        <div class="cleaner_h10"></div>
                        
                        <label for="asunto">Asunto:</label> <input type="text" name="asunto" id="asunto" class="input_field" />
                        <div class="cleaner_h10"></div>
                        
                        <label for="text">Mensaje:</label> <textarea id="text" name="text" rows="6" cols="30" class="required"></textarea>
                        <div class="cleaner_h10"></div>
                        
                        <input name="c" type="hidden" value="1">
                        
                        <input style="font-weight: bold;" type="submit" class="submit_btn" name="enviar" id="enviar" value=" Enviar " onclick="enviarDatos(); return false;"/>
                        <input style="font-weight: bold;" type="reset" class="submit_btn" name="reset" id="reset" value=" Limpiar " />

                        
                        </form> 
Aquí muestro si el e-mail se ha enviado o no... en teoría aquí llega puesto que el 1 o 2 que recoge el get a la hora de enviarlo aparece en la URL... pero no me muestra ningún mensaje...

Código PHP:
<?
$m 
$_GET['m'];
switch(
$m)
{
  case 
1: echo "E-mail enviado correctamente";
  break;
 
  case 
: echo "Ha ocurrido un error. Por favor intentelo de nuevo más tarde.";
  break;
}
echo 
"pepe";
?>
Y aquí el archivo enviarMail.php...

Código PHP:
<?php
 
$mail_destinatario 
'[email protected]';
 
$asunto $_POST['asunto'];
$nombre $_POST['author'];
$email $_POST['email'];
$mensaje $_POST['text'];
$c $_POST['c'];
 
$headers .= "From: ".$email"rn";
 
if(
$c==1)
{
    if(
mail($mail_destinatario$asunto"Nombre: ".$nombre"\nE-Mail: ".stripcslashes ($email)."\n Mensaje : ".stripcslashes ($mensaje), $headers))
    {
        
header("Location: index.php?m=1#5");
 
    }
        else
        {
                
header("Location: index.php?m=2#5");
         }
}
?>
Un saludo y gracias de antemano!!!
  #2 (permalink)  
Antiguo 07/10/2011, 07:09
Avatar de Artificium  
Fecha de Ingreso: enero-2011
Mensajes: 492
Antigüedad: 13 años, 3 meses
Puntos: 81
Respuesta: Enviar mail en php desde localhost

Eso es complicado, necesitas instalar y configurar un servidor SMTP, la verdad no conozco uno bueno, ni siqueira conozco uno malo, yo nunca lo he intentado, siempre he probado eso en un hosting, bueno. Esa sería la forma, tendrías que intentar con un servidor SMTP. Suerte!
  #3 (permalink)  
Antiguo 07/10/2011, 07:51
Avatar de mcun  
Fecha de Ingreso: octubre-2010
Ubicación: tras la pantalla
Mensajes: 466
Antigüedad: 13 años, 6 meses
Puntos: 55
Respuesta: Enviar mail en php desde localhost

Debes instalar un servidor de correos pero igualmente aunque los tengas es probable que tus mals vallan a parar a la carpeta de SPAM lo recomendable es que las pruebas de correo los hagas desde un hosting ..
  #4 (permalink)  
Antiguo 07/10/2011, 10:43
 
Fecha de Ingreso: abril-2011
Mensajes: 13
Antigüedad: 13 años
Puntos: 1
Respuesta: Enviar mail en php desde localhost

Vale muchas gracias!!! si, algo leí de SMTP por eso pregunté, me lo habéis confirmado... entonces supongo que con subir mis archivos a un hosting ya me funcionará...

Pero ahora se me viene otra pregunta... ¿qué cualidad tiene que tener un hosting para que me funcione eso? simplemente con que acepte php o apache? o que tenga también SMTP y tal... simplemente para tenerlo en cuenta a la hora de contratar el hosting...

Un saludo y gracias!!
  #5 (permalink)  
Antiguo 07/10/2011, 13:47
 
Fecha de Ingreso: diciembre-2001
Ubicación: Mar del Plata
Mensajes: 203
Antigüedad: 22 años, 4 meses
Puntos: 0
Respuesta: Enviar mail en php desde localhost

Con que tu proveedor de hosting tenga tanto en linux como en windows soporte para php y la función mail habilitada y correctamente seteada tu código va a funcionar. Pero localmente es difícil de emular esta función.

Suerte!
__________________
:) Fernando Dichiera (:
[email protected]
  #6 (permalink)  
Antiguo 07/10/2011, 14:23
Avatar de skiper0125  
Fecha de Ingreso: octubre-2010
Ubicación: $this->Mexico('Toluca');
Mensajes: 1.127
Antigüedad: 13 años, 6 meses
Puntos: 511
Respuesta: Enviar mail en php desde localhost

Hola que tal.

Checa esto

Saludos
__________________
Recuerda que estamos aquí para orientarte, y no para hacer tu trabajo.
Si mi aporte fue de ayuda, recuerda que agradecer no cuesta nada +1

Skiper0125

Última edición por skiper0125; 07/10/2011 a las 14:23 Razón: Tarde mucho
  #7 (permalink)  
Antiguo 07/10/2011, 18:26
 
Fecha de Ingreso: mayo-2010
Mensajes: 128
Antigüedad: 13 años, 10 meses
Puntos: 13
Respuesta: Enviar mail en php desde localhost

También te puedes instalar minirelay. Para pruebas no esta mal:

http://minirelay.uptodown.com/
  #8 (permalink)  
Antiguo 08/10/2011, 04:05
Avatar de gogupe  
Fecha de Ingreso: octubre-2006
Ubicación: Mallorca
Mensajes: 897
Antigüedad: 17 años, 6 meses
Puntos: 32
Respuesta: Enviar mail en php desde localhost

Busca la clase phpmailer, es muy bueno, lo puedes configurar con una cuenta de email propia, y te servirá tanto para localhost como para tu proveedor.

Saludos.
  #9 (permalink)  
Antiguo 08/10/2011, 18:07
 
Fecha de Ingreso: abril-2011
Mensajes: 13
Antigüedad: 13 años
Puntos: 1
Respuesta: Enviar mail en php desde localhost

Es minera y ese es para windows y uso mac... así que no me sirve... y lo que tú me pasaste skiper ya lo ví justo antes de postrar esto, por eso pregunté si se podía o no, fue lo que me hizo dudar, ya que no entiendo el porqué no me dejaba si tengo configurado el php en mi mac... pero bueno...

Pero bueno me quedo con lo que me ha dicho fermdp, cuando lo suba a un futuro hosting me aseguraré de que tenga php y envio de mails... espero que los hosting baratos extranjero lo tengan xD

Porque ahora yo no voy a modificar el código e instalar nada para cuando, suba la página a un hosting tenga que modificarlo de nuevo... tsss

Un saludo y muchas gracias!!!
  #10 (permalink)  
Antiguo 08/10/2011, 18:59
Avatar de Artificium  
Fecha de Ingreso: enero-2011
Mensajes: 492
Antigüedad: 13 años, 3 meses
Puntos: 81
Respuesta: Enviar mail en php desde localhost

Bueno, cualquier hosting común y corriente (de pago) lo tiene.
  #11 (permalink)  
Antiguo 08/10/2011, 19:04
Avatar de blakmetall  
Fecha de Ingreso: diciembre-2010
Ubicación: Jalisco
Mensajes: 181
Antigüedad: 13 años, 4 meses
Puntos: 18
Respuesta: Enviar mail en php desde localhost

Hola amigo descargate la clase phpmailer.

una vez que la tengas, mira te dejo este ejemplo, con esa clase vas a poder enviar correos desde localhost, pero para enviarse ese correo es necesario una cuenta de gmail.
En el codigo introduces el correo y contraseña de esa cuenta.

Mira te dejo un ejemplo de como yo lo hice.

Código PHP:
include("phpmailer/class.phpmailer.php");
        
$mail = new PHPmailer();
        
$mail->IsSMTP(); // send via SMTP
        
$mail->SMTPAuth true// turn on SMTP authentication
        
$mail->Username "[email protected]"// SMTP username
        
$mail->Password base64_decode("contraseña_de_ese_correo"); // SMTP password
        
$webmaster_email "[email protected]"//Reply to this email ID
        
$name=""// Recipient's name
        
$mail->From $webmaster_email;
        
$mail->FromName $configMail["correo"];
        
        
//los que recibiran el correo
        
$mail->AddAddress("[email protected]"),$name);
        
$mail->AddAddress("[email protected]"),$name);
        
$mail->AddAddress("[email protected]"),$name);
        
        
//añadir archivos
        
$mail->AddAttachment("files/imagen.jpg"); // attachment
        
$mail->AddAttachment("files/archivo.doc"); // attachment
        
        //si vas a enviar codigo html
        
$mail->IsHTML(true); // send as HTML
        
        
$mail->Subject "asunto del mensaje";
        
$mail->Body "<p>Mensaje</p> <br />de muestra"//HTML Body
        
$mail->AltBody strip_tags("<p>Mensaje</p> <br />de muestra"); //Text Body
        
if($mail->Send()){
            
//mensaje enviado
        
}
        else{
            
//mensaje no enviado
        

__________________
To the end....
  #12 (permalink)  
Antiguo 09/10/2011, 05:17
 
Fecha de Ingreso: julio-2005
Mensajes: 310
Antigüedad: 18 años, 9 meses
Puntos: 36
Respuesta: Enviar mail en php desde localhost

Hola

Te recomiendo que NO uses la función mail() de PHP. En servidores compartidos suelen dar muchos problemas de cabeza. Gmail, por ejemplo, muchas veces ni siquiera los mete en la carpeta de SPAM sino que directamente los rechaza. Prueba con la clase PHPMailer que te han recomendado, si no recuerdo mal es la que usan en Wordpress.

Saludos.

Etiquetas: localhost, mail
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 10:14.