Envíar Email con PHP

Una de los problemas mas comunes en el desarrollo de un sistema web es el envío de correos, esto se puede hacer con la función mail() que permite enviar email de forma sencilla. La función mail() viene por defecto instalada en PHP y no necesita ninguna instalación adicional.

Sintaxis para enviar Email

La función mail() de PHP tiene la sintaxis:

php
  1. mail($email, $subject, $mensaje, $headers);

Donde se tiene:

  • $email: Dirección de correo del destinatario.
  • $subject: Subject de correo a enviar.
  • $mensaje: es el cuerpo del mensaje.
  • $headers: encabezados de correo.

Ahora bien acerca del parámetro $header, este es una cadena de texto opcional donde se pueden incluir las direcciones adicionales del email (To, CC, BCC, Reply-To), esta cadena tiene la siguiente forma:

code
  1. From: remitente@dominio.com\r\n
  2. To: destino@dominio.com\r\n
  3. CC: copia@dominio.com\r\n
  4. BCC: copiaoculta@dominio.com\r\n
  5. Reply-To: repondera@dominio.com\r\n

Entonces con las definiciones básicas ahora veamos un ejemplo de envío de correo.

Creando el Formulario

Primero tenemos que tener un formulario de HTML con los campos típicos para un formulario de contacto. El formulario para nuestro ejemplo tendrá los campos: nombres, empresa, email, telefono y comentarios.

HTML4
  1. <h2>Enviar Email con PHP</h2>
  2. <form action="" method="post">
  3.     Nombres <input name="nombre" id="nombre" type="text" /><br />
  4.     Empresa <input name="empresa" id="empresa" type="text" /><br />
  5.     Email <input name="email" id="email" type="text" /><br />
  6.     Teléfono <input name="telefono" id="telefono" type="text" /><br />
  7.     Mensaje <textarea name="mensaje" cols="30" rows="6"></textarea><br />
  8.     <button name="btsend" id="btsend" type="submit">Enviar</button>
  9. </form>

Envíando Email con PHP

El siguiente paso es crear un script PHP que reciba los datos del formulario, creamos la cadena de texto que deseamos enviar y finalmente hacemos el envío de email con la función mail().

php
  1. $aviso = "";
  2. if ($_POST['email'] != "") {
  3.     // email de destino
  4.     $email = "tuemail@tudominio.com";
  5.    
  6.     // asunto del email
  7.     $subject = "Contacto";
  8.    
  9.     // Cuerpo del mensaje
  10.     $mensaje = "---------------------------------- \n";
  11.     $mensaje.= "            Contacto               \n";
  12.     $mensaje.= "---------------------------------- \n";
  13.     $mensaje.= "NOMBRE:   ".$_POST['nombre']."\n";
  14.     $mensaje.= "EMPRESA:  ".$_POST['empresa']."\n";
  15.     $mensaje.= "EMAIL:    ".$_POST['email']."\n";
  16.     $mensaje.= "TELEFONO: ".$_POST['telefono']."\n";
  17.     $mensaje.= "FECHA:    ".date("d/m/Y")."\n";
  18.     $mensaje.= "HORA:     ".date("h:i:s a")."\n";
  19.     $mensaje.= "IP:       ".$_SERVER['REMOTE_ADDR']."\n\n";
  20.     $mensaje.= "---------------------------------- \n\n";
  21.     $mensaje.= $_POST['mensaje']."\n\n";
  22.     $mensaje.= "---------------------------------- \n";
  23.     $mensaje.= "Enviado desde http://blog.unijimpe.net \n";
  24.    
  25.     // headers del email
  26.     $headers = "From: ".$_POST['email']."\r\n";
  27.    
  28.     // Enviamos el mensaje
  29.     if (mail($email, $subject, $mensaje, $headers)) {
  30.         $aviso = "Su mensaje fue enviado.";
  31.     } else {
  32.         $aviso = "Error de envío.";
  33.     }
  34. }

Como se puede ver hemos creado los cuatro parámetros como variables: email de destino, asunto, cuerpo del mensaje y el header donde hemos colocado solo el remitente del mensaje. Podemos personalizar aún mas este formulario agregando mas campos de acuerdo a nuestras necesidades.

Hay que notar que estamos asumiendo que el usuario esta llenando todos los datos del formulario. Para mejorar este script haría falta hacer una validación de datos con Javascript antes de hacer el envío y también una validación de datos con PHP.

Comentarios Total 185 comentarios


lala
Publicado: 06/06/2006 5:53 am

llega a la bandeja de entrada?

unijimpe
Publicado: 06/06/2006 6:31 pm

Desde luego que llega a la bandeja de entrada, es un correo normal, en algunos casos no llega cuando no se coloca la direccion del remitente o el subject.
Saludos.

alejandro
Publicado: 25/07/2006 3:01 pm

Que util esta informacion, Gracias.

Frizk
Publicado: 27/07/2006 4:17 pm

sabes Como puedo cambiar el nombre del remitente que me aparezca un nombre en lugar del puro correo

gracias

unijimpe
Publicado: 27/07/2006 4:43 pm

Para cambiar el nombre del remitente tendrias que cambiar el From a la forma:
From: Mi Nombre <remitente@dominio.com>\r\n
Luego en el PHP la linea 3 seria de la forma:
$head = “From: “.$_POST['nombres'].”<”.$_POST['email'].”>\r\n”;

Carlos Jerez
Publicado: 31/07/2006 10:12 pm

hola, oye estoy haciendo al formulario pero no me llega al correo que le pongo como destinatario???

david
Publicado: 21/09/2006 12:41 am

Gracias por rl código
Me funciona bien, pero no me sale mensaje de que lo ah enviado.

¿sabes cómo hacer para que le llegue notificación al que envía en mensaje?

unijimpe
Publicado: 21/09/2006 2:54 am

Veo que si funciona por que me llego el correo, tienes que cambiar en To: la dirección de a quien deseas que llegue el correo.
Si deseas que llege la notificación de correo enviado en lugar de escribir “Mensaje Enviado” puedes enviar otro correo (con el mismo codigo).

NATALIA
Publicado: 02/12/2006 7:11 pm

hola, en el telefono me llega: undefinid, creo que no me reconoce los numeros… cual seria el codigo para que reconozca y me devuelva los caracteres numericos… gracias

unijimpe
Publicado: 02/12/2006 7:45 pm

Seguramente es por no haz puesto bien el nombre del campo, si en tu formulario es telefono en tu php también tiene que estar igualito telefono para que funcione bien.


[...] Para una explicación detallada de este ultimo PHP pueden leer http://blog.unijimpe.net/enviar-e-mail-con-php/, Para concluir con este ejemplo les dejo los archivos fuente para que lo descarguen y puedan revisarlo. [...]

Alvaro
Publicado: 28/03/2007 12:14 pm

hola no se mucho de programacion mi duda es: donde coloco el archivo mail.php y el archivo flash,

Anthony
Publicado: 28/03/2007 8:32 pm

Esto tiene que estar nesecariamente colgado en un servidor que use php para que funcione?… o puedo usarlo si esta en mi compu?

unijimpe
Publicado: 29/03/2007 1:01 am

Puedes utilizarlo en tu computadora siempre y cuando tu computadora tenga instalado PHP. Si no tu solución es un hosting.

Oscarcito
Publicado: 30/03/2007 11:08 am

Hola , solo estoy probando el envio de mensajes…

Anthony
Publicado: 30/03/2007 5:19 pm

donde pongo mi direccion email??

unijimpe
Publicado: 31/03/2007 11:01 am

Anthony, para que te llegue a tu cuenta de correo, tu dirección debes colocarla en la variable $dest, es decir debes modificar la línea:

$dest = “unijimpe@gmail.com”;

dario
Publicado: 29/04/2007 9:09 pm

no me quiere funcionar el formulario

max
Publicado: 24/05/2007 12:52 am

el codigo no funciona con un servidor tipo xampp en mi computador…
me arroja este error.

Warning: mail() [function.mail]: Failed to connect to mailserver at “localhost” port 25, verify your “SMTP” and “smtp_port” setting in php.ini or use ini_set() in C:\Archivos de programa\xampp\htdocs\pruebas\mail.php on line 23

alfredo
Publicado: 08/06/2007 2:58 am

el script funciona a la perfeccion pero se tarda exactamente 90 segundos en ser enviado es esto normal me doy cuenta que se queda trabado al momento de enviar los datos al contactos.php agradeceria mucho si alguien me pudiera orientar.

Hectorweb
Publicado: 11/06/2007 10:01 pm

Hola, tengo un poblema, yo estoy enviando una plantilla html por email utilizando la clase phpmailer, pero me llega a los correos de hotmail y yahoo, etc, como no deseados, que tengo que hacer para que aparezca en la bandeja de principal?

unijimpe
Publicado: 15/06/2007 11:12 am

En algunas ocasiones los correos se consideran como spam y no llegan a las cuentas de correo, esto es por muchos motivos, entre los cuales tenemos:

- El subject esta vacío
- El remitente esta vacío
- Email del remitente no existe
- Mensaje tiene palabras consideradas como spam.
- Muchos links en el mensaje.

neilmas
Publicado: 26/06/2007 7:26 am

pero funciona para hotmail?

Paco
Publicado: 27/06/2007 10:03 pm

copie el codigo del script del php en la pagina, la subi y no me muestra nada, me sale el codigo del scritp, ese es todo el codigo del php

Lalala
Publicado: 28/06/2007 11:14 pm

como haces para enviarlo a mas de un remitente?

unijimpe
Publicado: 29/06/2007 9:03 am

Para enviarlo a varios remitentes simplemente debes incluir las direcciones de email separadas por una coma, esto en la variable $dest del ejemplo.

david
Publicado: 04/07/2007 12:07 pm

NO hay una manera en html???

unijimpe
Publicado: 05/07/2007 6:46 am

No, html es solo para dar formato a los textos mas no para hacer interacción con servidores. Para hacer el envío necesitas un servidor SMTP y un lenguaje de servidor (ASP, PHP, ASP.NET, etc).

rusbel
Publicado: 10/07/2007 10:02 pm

nose si alguenque tenga el codigo si me lo puede pasar para rebisarlo quisiera toda la fuente

max_satriani
Publicado: 30/07/2007 8:07 pm

me ha funcionado muy bien el envio de correos…
solo tengo una duda.

cuando llega a la casilla esta en se ve bastante ordenado.

pero los baje con “outlook” y el formato cambio , en otras palabras se ve bastante desordenado.
En pantallalas letras se ven enormes y en la impresion es todo un lio.

existe una forma de dar formato al php para solucionar esto

Ann
Publicado: 03/08/2007 8:33 pm

Pues a mi no me funciona el formulario quisiera sabes en q me puedo estar equivocando todo lo he revisado y a mi parecer esta bien :(

^-^
Publicado: 03/08/2007 8:35 pm

Quisiera los archivos del ejemplo para ver la colocacion del codigo!!! por fas!

Bellatrix
Publicado: 06/08/2007 1:37 am

Hola, a mí me sale este error también y no consigo resolverlo. ¿Qué puedo hacer? Gracias

Warning: mail() [function.mail]: Failed to connect to mailserver at “localhost” port 25, verify your “SMTP” and “smtp_port” setting in php.ini or use ini_set()

unijimpe
Publicado: 06/08/2007 7:10 am

Si tu pagina esta en un hosting bueno ya tienes un servidor SMTP incluido, por ejemplo si tu sitio se llama: misitio.com la dirección de tu servidor SMTP sería: mail.misitio.com.

Ahora si lo estas probando de manera local, en Windows debes instalar un servidor SMTP. Yo he utilizado el Imail Server en la versión trial que me basto para hacer mis pruebas. Otra posibilidad en WinXP es instalar el servidor SMTP que viene con Internet Information Server.

Bazul
Publicado: 06/08/2007 7:53 pm

estoy nueva en PHP
y mi pregunta es el formulario y el codigo de envio deben estar en dos paginas diferentes una html y otra php, o todo puede estar en una sola pagina php

carlos
Publicado: 08/08/2007 3:56 pm

No me funciona, al darle a enviar, se abre contactenos.php con el código escrito :S

alexis
Publicado: 14/08/2007 10:57 pm

la verdad que muy bueno el ejemplo, necesitaba solcionar el tema del remitente al enviar el formulario y despues de tocar un poco de codigo me funciono perfecto, gracias…

karla
Publicado: 16/08/2007 1:08 am

Hola!! yo estoy probando el envio de correos con wamp y el servidor de correos Qk SMTP Server 3 pero nada :(…lguien me podria decir que tengo que hacer para poder enviar los correos?? si tengo que configurar algo o que se yo..estoy haciendo mi pasantia y es importante..les agradezco una pronta respuesta..Gracias..

Maximus Decimus Veridius
Publicado: 16/08/2007 10:10 pm

Hola,.. estoy desarrollando mi sitio y tenia un problema con los parametros de mail(), te agradezco inconmesurablemente dos cosas:

1.- tu paciencia de contestar las dudas de nosotros y
2.- el ejemplo es muy simple,.. sin tanto rollo, es perfectamente entendible…

Gracias

kiper
Publicado: 25/08/2007 9:29 pm

Quisiera q me apoyen para realizar un envio de correo, pero la idea es selecionar una AREA especifica desde un combo. y por ejemplo selecciono administracion debe llegar el al correo. administracion@dominio.com. y asi para 10 AREAS. ayudenme por favor.

AGRADEZCO SU APOYO

unijimpe
Publicado: 26/08/2007 1:56 am

Bueno kiper, lo que tienes que hacer es que el campo donde seleccionas a donde deseas comunicarte, poner como valor las direcciones de correo, por ejemplo:

<select name="area">
<option value="alcalde@miweb.com">Alcaldia</option>
<option value="gerencia@miweb.com">Gerencia</option>
<option value="rentas@miweb.com">Rentas</option>
</select>

Luego en el php que hará el envío de correo debes simplemente obtener el email seleccionado en el pulldown, por ejemplo:

$email = $_POST['area'];

Asi de sencillo, espero te sirva.

NOTA:
Kiper, eliminé tu ultimo mensaje pues el código que enviaste era muy largo y no se había guardado correctamente.

kiper
Publicado: 26/08/2007 9:31 pm

GRACIAS AMIGO, TU CODIGO ME SIRVIO CHEVERE..
NUEVAMENTE TE AGRADEZCO.

Paco
Publicado: 27/08/2007 8:00 pm

Claro, transparente y meridiano; tenía alguna duda con las “cabeceras”. Gracias por la explicación.

alberto
Publicado: 29/08/2007 4:07 am

no me funciona nada, se muy poco de esto me tratare de explicar:
haver en la barra de etiquetas en el formulario dice accion : contactenos.php, que es como un vinculo no? el contactenos.php es como se deve llamar al script o ke x ke al hacer eso me pone todo el codigo en la web me aparece tal y como escrivi el script!!!! y la direccion donde quiero que me llege es arriva o abajo x ya le puse una y otra y sta = gracias

Irel
Publicado: 02/09/2007 12:53 am

y para reenviar el mail automaticamente como se podria hacer?
gracias por responder.

Irel
Publicado: 02/09/2007 12:58 am

es para que el usuario al enviar un mail compruebe que su mail fue recibido con exito enviandole uno de respuesta automaticamente, esa es la finalidad.
gracias por responder.

wwww.irel.cl

david
Publicado: 06/09/2007 9:16 pm

Hola, como hago para incluir etiquetas HTML en el cuerpo del mensaje?

de antemano muchas gracias

jeason
Publicado: 13/09/2007 4:22 am

Hola,yo estoy haciendo un trabajo y use un servidor de correos(pq me dijieron que es nesesario para usar el procedimiento mail) probe el codigo pero no me lo envia a mi correo sino a mi servidor que estoy usando como puedo solucionarlo?? gracias por responder

unijimpe
Publicado: 13/09/2007 9:09 am

David, para incluir html, lo recomendable es utilizar PHPMailer, el cual formateará rápidamente html e incluso puedes enviar con archivos adjuntos.

Jeason, fíjate que en el header estés incluyendo la propiedad To y que apunte a la dirección a donde deseas enviar el email.

Lautaro
Publicado: 13/09/2007 10:49 pm

hola, tengo un sitio, e hice un formulario parecido aeste… la cuestion es que no se exsactamente en que paste del codigo php que tengo debo agregar

$_POST['E-mail']

para que me tome eso (que es un campo en mi formulario) como quien envia el mail, para poder usar un autoresponder en mi web…

dasde ya muchas gracias… si quieres el codigo php completo me mandas un mail y ya =P

saludos!

Lautaro
Publicado: 14/09/2007 12:04 am

ya lo pude solucionar =P igual gracias por tener este espacio de ayuda tan bueno y completo =D

Ubide
Publicado: 18/09/2007 1:40 pm

Hola, en el formulario tengo un campo que es ¿Perteneces a alguna asociación? y tienes para marcar con botón de opción si o no. ¿Como hago para recoger ese dato en el email?
Gracias

truonks
Publicado: 26/09/2007 1:06 am

no me funciono pa nada al guien me puede decir por que ?

gabriela
Publicado: 26/09/2007 11:33 pm

como le hago para generar un autoresponder

Monica Velez
Publicado: 27/09/2007 3:23 am

Hola Unijimpe !!!!
imaginate q estoy utilizando los codigos q aparecen en esta pagina para el envio de mail con php, pero como te parece q no me funciona. Ya organice unas lineas en el php.ini y en el httpd.config, pero no me funciona y tampoco me saca algun error. Que será ?? ayudame please.

Yanxi
Publicado: 03/10/2007 3:52 am

Hola eh probado este ejemplo pero me sale error cambie la direccion al que se debe de enviar pero nada

Yanxi
Publicado: 03/10/2007 4:06 am

hace tiempo que no trabajho con el php tengo que instalr el Apache o no???

javi
Publicado: 04/10/2007 1:38 pm

Ya es el 3º o 4º manual que leo y siempre tengo el ismo problema. Cambio todo pero, al darle a “enviar”, me abre el archivo .php

camilo
Publicado: 06/10/2007 1:02 am

hola

el form me funciona perfecto y llega la informacion a todos los servidores de correo como gmail, yahoo etc.. pero al HOTMAIL no!!!! ni x correo no deseado ni x bandeja de entrada q podra ser..?¿?¿?

mariano
Publicado: 16/10/2007 6:10 pm

hola que tal?
El código me funciona bien. Pero como hago para darle formato al mensaje (fuente, color, imagenes)

daniel
Publicado: 24/10/2007 4:27 am

gracias totales

alejandro
Publicado: 30/10/2007 10:09 pm

Javi, tu problema esta en que en el servidor que estas probando no soporta php… por eso no sabe que hacer con el archivo y en su lugar te lo muestra.

—-
Ya es el 3º o 4º manual que leo y siempre tengo el ismo problema. Cambio todo pero, al darle a “enviar”, me abre el archivo .php

Shirley
Publicado: 09/11/2007 12:36 pm

Quien sabe porque sale este error

Warning: mail() [function.mail]: SMTP server response: 550 5.7.1 Unable to relay for unijimpe@gmail.com in C:\wamp\www\Nueva carpeta\contactenos.php on line 24

esto me pasa al momento de darle click y no pasa nada

lili
Publicado: 24/11/2007 11:06 am

hola use el codigo que dejaste en la pagina, pero me manda este error
Warning: mail() [function.mail]: Failed to connect to mailserver at “localhost” port 25, verify your “SMTP” and “smtp_port” setting in php.ini or use ini_set() in C:\xampp\htdocs\artiPiel\dos.php on line 23

cómo puedo corregirlo?
gracias

alfo
Publicado: 03/12/2007 9:19 pm

hola, en mi caso solo me funciona si envio correos que pertenecen al dominio de la pagina, pero si utilizo alguno comercial ya sea yahoo.com, hotmail.com por mencionar alguno no lo permite, me pueden orientar para saber como resolver dilema?
Gracias

Damian
Publicado: 04/12/2007 11:03 am

Hola, algo estoy haciendo mal y no puedo detectar que es, ya revise el .fla, el .swf y el .php
La verdad es que no se que hacer veo que a otros les funciona, pero reitero no puedo hacerlo andar. Puedo enviarte los archivos? seguro que con un vistazo sacas el problema. Gracias!

Damian
Publicado: 04/12/2007 12:29 pm

Gracias! un compañero me ayudo a solucionarlo. funciona muy bien. Muchas Gracias

alfonso
Publicado: 17/12/2007 6:27 am

hola, me instalo el xampp, resuelvo el problema de rely del mercury para enviar mails, pero la función mail() no me funciona, intento enviar uno a mi gmail…tampoco va a no deseado como el spam. no llega. el php es este: <?
mail(“alfonsofonso@gmail.com”, “Esto es el asunto”,”Aquí el mensaje”,
“From: Rinconastur
Reply-To: alfonsofonso@gmail.com
Cc: alfonsofonso@gmail.com,alfonsofonso@gmail.com
Bcc:alfonsofonso@gmail.com,alfonsofonso@gmail.com” . phpversion());
echo(“hola mundo”);
?>
alguna idea?

Anaís
Publicado: 29/12/2007 9:44 pm

Hola, quiero tener un formulario igual al tuyo en mi página, pero no entiendo bien: ¿tengo que tener un servidor? Yo tengo una página cuyo dominio es .blogspot.com… qué tengo que hacer para agregar un formulario de contaacto? Me sucede que copio los dódigos html que tú gentilmente ofreciste pero al hacer click en “Enviar” no pasa nada…. Ayúdame!

Marcelo
Publicado: 18/01/2008 2:07 pm

Hola!! estoy probando pero no me funciona. al primer codigo lo nombro formulario.html y al segundo contactenos.php. Cuando subo los dos archivos y lleno el formulario me sale el archivo php escrito pero no me envia el mail.
Bueno si alguien me entiende y me puede ayudar le voy a agradecer.
Marcelo..

freddy
Publicado: 18/01/2008 8:36 pm

el script esta perfecto no hay nada de que quejarse muchas gracias amigo por tu molestia. y a los amigos que no saben muy bien de esto, al script que envia el correo solo ponganle la etiqueta de php () que es al comienzo y al final igual cuando le ponen la etiqueta en una pagina de html(…)eso es todo eso fue lo q le falta bueno gracias por todo y espero darme una vuelta por aca.chaufas.

Marcelo
Publicado: 20/01/2008 7:30 am

El formulario funciona perfecto pero tengo algunas dudas. Cuando presiono el boton enviar me lleva a una pagina en blanco, como hago para que redireccione al sitio.
La fecha del correo enviado en el formulario aparece en formato ingles, como hago para cambiarla?
Bueno gracias a todos por sacar mis dudas.

freddy
Publicado: 20/01/2008 5:14 pm

mira marcelo solo pon este codigo en la etiqueta head le pones el codigo html en la pagina en blanco q es contactanos.php no le cambias de extension solo q esa pagina le aumentas el codigo html y ya. si te das cuenta en el codigo esta el numero 10 esto es los segundos que se demora tu pagina en blanco en redireccionar a la nueva puedes ponerle 1 para q sea mas rapida. si tienes alguna duda puedes contactarme admin@skynetperu.com seria un gusto ayudarte en cualquier asunto y bueno y a cualquiera de los de este blog. nos vidrios y sobre la fecha por lo regular las fechas te vienen en ingles ya q el codigo html solo funciona en ingles al menos que les pongas codigo de javascript.

juan
Publicado: 21/01/2008 11:38 am

Hola, el código me funciona estupendamente y me llegan los mails, salvo si escribo una direccón de correo en el campo e-mail o escribo un texto en el mismo campo con espacios en blanco. ¿A que se puede deber? Gracias

unijimpe
Publicado: 21/01/2008 9:08 pm

Juan, esto es por que no se aceptan email con espacios en blanco, los emails validos no contienen espacios en blanco y deben tener dominios validos para poder enviarse.

Rubensho Avila
Publicado: 22/01/2008 11:32 am

Hola ke tal mira es ke lo ke pasa es ke necesito ayuda, ya revise todos los archivos el .swf, .fla y .php pero no me funciona ya revise el mail y no me funciona por fa ayuda!, mira mi correo es frudaho@hotmail.com, es super urgente por fa, estaria muy agradecido si me ayudaras…gracias

Marcelo
Publicado: 22/01/2008 2:24 pm

Perdon Fredy pero no entiendo que codigo tengo que poner para hacer un redireccionamiento una vez que envio la consulta desde mi formulario. Te agradeceria si pudieras explicarlo de nuevo.

freddy
Publicado: 23/01/2008 6:12 pm

esto es a lo que me refiero marcelo http://www.skynetperu.com/ola/envio.html ingresa a esa direccion veras el formulario y despues de dar clic en el boton enviar aparecera la dichosa pagina de contactenos.php que se redireccionara a una pagina o a tu pagina de inicio solo tu cambias la direccion. la redireccion esta en 10 segundos osea despues que la pagina de formulario se vaya a la pagina en blanco, la pagina en blanco se demorara 10 segundos en redireccionar a la pagina q desees.(solo cuando este redireccionando le apretas escape para parar la redireccion y puedas copiarte el codigo) y luego como veras estara en ese codigo mi pagina y los segundos que se demora. ok y despues de haberte copìado el codigo lo colocas en la pagina de cantactenos.php en la parte de arriba. y eso es todo ya tienes tu pagina q se va a donde tu quieras.

unijimpe
Publicado: 23/01/2008 10:07 pm

Si deseas redireccionar a otra página una vez enviado el email, puedes agregar un header para redireccionar a otra página eso se hacer inmediatamente después de utilizar la función mail.

if (mail($dest, "Comentarios", $msg, $head)) {
//$aviso = "Su mensaje fue enviado.";
header("Location: urldestino.htm")
} else {
$aviso = "Error de envío.";
}

Marcelo
Publicado: 24/01/2008 6:33 am

Muchísimas gracias freddy y unijimpe en verdad me sirvió de mucho su ayuda en todo. Esta muy bueno que esten en estos lugares ayudando a la gente que lo necesita.
Saludos desde Argentina.

freddy
Publicado: 24/01/2008 6:45 pm

de nada marcelo y cuenta conmigo para lo que quieras. me gusto la idea de ayudar a otros y tambien me incluyo.

fatine
Publicado: 19/02/2008 6:43 am

hola
estoy intentando enviar email con php y no me funciona alguien me puede decir paso a paso que es lo que debo hacer,a caso necesito instalar servidor de correos si es asi enviadmelo si se puede
muchas gracias

fatine
Publicado: 19/02/2008 6:44 am

es urgente

fatine
Publicado: 19/02/2008 8:40 am

ahora no me da error al envia email
pero no lo recibo en mi bandeja de entrada otmail


[...] ver en detalle como se envía correo con PHP, pueden leer Envíar E-mail con PHP. Pueden ver el ejemplo funcionando en mailas3 y finalmente pueden descargar los archivos fuente que [...]

rómulo
Publicado: 20/03/2008 6:51 pm

No sé que ocurrió(Mi hijo,12,También ocupa el compu)desde hoy no puedo salir con los mail, vez que oprimo enviar me aparece una advertencia que dice no estoy autorizado a ver esa página¿cual si solo he oprimido enviar?, e incluso me ocurre al querer guardar el borrador.

rómulo
Publicado: 20/03/2008 6:56 pm

Ah!..Ojalá la respuesta sea en términos normales y no computacionales complicados, ya que no domino el tema, gracias.

Alan
Publicado: 24/03/2008 5:08 am

Hola,soy principiante en esto del php,copie tu script html y php, solo modifique el php, pero al momento en que hago click en enviar
me manda al archivo php, solo se ve en blanco y no pasa nada, quisiera saber cual es mi error aqui te mando el script php modificado
Mushas Graziaz

if (isset($_POST['action'])) {
$dest = “allcoolman@hotmail.com”;
$head = “From: “.$_POST['email'].”\r\n”;
$head.= “To: allcoolman@hotmail.com\r\n”;
$msg = “——————————- \n”;
$msg.= ” Comentarios \n”;
$msg.= “——————————- \n”;
$msg.= “NOMBRE: “.$_POST['nombres'].”\n”;
$msg.= “EMPRESA: “.$_POST['empresa'].”\n”;
$msg.= “EMAIL: “.$_POST['email'].”\n”;
$msg.= “TELEFONO: “.$_POST['telefono'].”\n”;
$msg.= $_POST['comentarios'].”\n\n”;
$msg.= “HORA: “.date(“h:i:s a “).”\n”;
$msg.= “FECHA: “.date(“D, d M Y”).”\n”;

if (mail($dest, “comentarios”, $msg, $head)) {
$aviso = “Su mensaje fue enviado.”;
} else {
$aviso = “Error de envío.”;
}
}

Alan
Publicado: 25/03/2008 8:51 pm

Hola,
disculpen alguien sabe d un host gratuito que me soporte php? ya que solo lo nesesito para una tarea les agradeceria mucho la informacion

edward
Publicado: 02/04/2008 5:01 pm

hola quisiera tener la parte del codigo para que se redireccione despues de enviar a la pagina anterior en pocas palabras para que regrese.

Romel
Publicado: 10/04/2008 3:37 pm

Hola gracias por el aporte pero cada ves ke lo subo a mi hosting aparece esto al momento de enviar
Parse error: syntax error, unexpected T_VARIABLE in /home/virtual/sitio176262/www/pruebas/contactenos.php on line 10
me podrian decir como lo corrijo por favor … gracias

andres
Publicado: 13/04/2008 7:28 pm

hola hice todo el ejemplo , pero no me hace nada el codigo.. no me llega al mail.. revise el codigo y no me muestra ningun error cual puede ser el problema.. haaa el formulario lo pruebo en un hostin.. sera q no lo envia a hotmail.. quien me puede ayudar please??!!!!!!!
xauuu

swab
Publicado: 25/04/2008 10:32 am

Hola, sabes que he tratado de enviar un mail desde mi servidor, me dice mensaje enviado, pero voy a ver mi bandeja de entrada, no me llega nada, sin embargo, al enviar un mail con el ejemplo desde acá, si me llega el mensaje a la bandeja de entrada. En realidad he tratado de hacerlo, pero no me funciona.
Cómo máquina, dejo “localhost”.
Lo demás, está de igual manera como muestras en el ejemplo, si alguien le ha pasado y me puede dar una manito, se lo agradecería mucho!.

swab
Publicado: 25/04/2008 4:41 pm

Amig@s; el problema que tengo con el envío de mail’s, es parece el problema de varios.
No me llega nada cuando le doy enviar, sin embargo cuando lo envío desde acá, desde el demo, si funcionan…
Alguien amable que me pueda dar una idea, lo estoy probando en un server web BSD,

Pd: Quizás es un estúpido error, pero me tiene intrigado.
Saludos!.
Y muchas gracias por el tutorial, breve y excelente explicación.
Muchas gracias!

danilo baduy
Publicado: 06/05/2008 7:09 pm

quisiera saber mas detalladamente como hacen los fomrmularios en flash por favor!
gracias muchas gracias

danilo baduy
Publicado: 06/05/2008 10:24 pm

muchas gracias me sirvio muy bien todo esto!!

Marcela
Publicado: 06/05/2008 11:33 pm

ola debo incluir envio de correo en mi sitio web y no tengo idea como utilizar este codigo y si debo conseguir un hosting o puedo descargar algun programa que me sirva como servidor de correos

Marcela
Publicado: 06/05/2008 11:34 pm

gracias a quien me pueda colaborar

betsavic
Publicado: 13/05/2008 1:55 pm

hola yo soy nueva en esto de los formularios estube leyendo los post sobre el formulario y puse el codigo en una hoja php y configure el formulario pero no se porque pero me gustaria saber porque cuando le doy send agre una hoja con el codigo osea no manda el email que ocurrira este es el codigo que tengo podra alguien ayudarme?
if (isset($_POST['action'])) {

$dest = “betsavic@hotmail.com”;

$head = “From: “.$_POST['email'].”\r\n”;

$head.= “To: betsavic@hotmail.com\r\n”;

// Ahora creamos el cuerpo del mensaje

$msg = “——————————- \n”;

$msg.= “ Comments \n”;

$msg.= “——————————- \n”;

$msg.= “Name: ”.$_POST['name'].”\n”;

$msg.= “Company Name : ”.$_POST['company name'].”\n”;

$msg.= “Address: “.$_POST['address'].”\n”;

$msg.= “State: “.$_POST['state'].”\n”;

$msg.= “Zip: “.$_POST['zip'].”\n”;

$msg.= “Email: ”.$_POST['email'].”\n”;

$msg.= “How find: “.$_POST['how find'].”\n”;

$msg.= “Contact: ”.$_POST['contact'].”\n”;

$msg.= “Comments: “.$_POST['comments'].”\n”;

$msg.= “Hours: ”.date(“h:i:s a “).”\n”;

$msg.= “Date: ”.date(“D, d M Y”).”\n”;

$msg.= “IP: ”.$REMOTE_ADDR.”\n”;

$msg.= “——————————- \n\n”;

$msg.= $_POST['comments'].”\n\n”;

$msg.= “——————————- \n”;

$msg.= ” Messaje from Web Page\n”;

// Finalmente enviamos el mensaje

if (mail($dest, “comments”, $msg, $head)) {

$aviso = “Messaje Send.”;

} else {

$aviso = “Not Send.”;}}

Marcela
Publicado: 14/05/2008 5:09 pm

estoy utilizando un argosoft mail server como de servidor de correo y me aparece el siguiente error al enviar Warning: mail() [function.mail]: Failed to connect to mailserver at “localhost” port 25, verify your “SMTP” and “smtp_port” setting in php.ini or use ini_set() in ……
alguien me puede ayudar que es lo que pasa

Sergio
Publicado: 15/05/2008 9:22 am

El código funciona correctamente pero antes hay que tener bien configurado los siguientes parámetros en el fichero php.ini

[mail function]
; For Win32 only.
SMTP = “tu servidor SMTP”
smtp_port = 25

; For Win32 only.
sendmail_from = “TU CTA. DE CORREO”

Saludos a todos.

Marcela
Publicado: 15/05/2008 10:10 pm

intento probar este codigo en un hosting rypway se llama. por favor alguien sabe que hosting tiene servidor smtp y que sea gratis para poder hacer las pruebas y si a este codigo le falta algo porque no encuentro ningun error al probarlo en rypway
de antemano agradezco al que me pueda colaborar

Jose
Publicado: 19/05/2008 4:36 am

Holas, mi problema es que los mensajes no me llegan al correo. estoy probandolo en local y ya instale un servidor smtp el cual me dice al momento de enviar los datos que mi ip no esta autorizada para enviar el mensaje a mi correo gmail. que podria hacer para solucionar esto?

adirane
Publicado: 20/05/2008 10:36 am

Hola, a mi el error que me da es el siguiente:
Warning: Failed to Connect in c:\apache\htdocs\insertarincidencia.php on line 45
Error de envío.

A qué puede ser debido? tengo el siguiente código
#
$dest = “unijimpe@gmail.com”;
$head = “From: unijimpe@gmail.com\r\n”;
$head.= “To: unijimpe@gmail.com\r\n”;
$msg = “Mensaje de prueba \n”;
// Finalmente enviamos el mensaje
#
if (mail($dest, “Comentarios”, $msg, $head)) {
#
$aviso = “Su mensaje fue enviado.”;
#
} else {
#
$aviso = “Error de envío.”;
#
}

dan
Publicado: 21/05/2008 8:40 pm

se que es tonta mi pregunta, pero la voy a hacer… tengo mi codigo de html con el formulario y en el boton de enviar cuando doy click abre el codigo php en una pagina en el navegador y se supone debe de decir, el correo se a enviado o error el correo no se ha enviado, que es lo que pasa y porque? cuando doy clik me aparece el codigo php, se supone que
ya tengo el procesador html para apache y php, se entiende ?
cualquier informacion me ayudaria mucho gracias

unijimpe
Publicado: 21/05/2008 9:06 pm

adirane, según parece no tienes un servidor SMTP, si lo pruebas en un hosting funcionara correctamente pues la mayoría de ellos ya tienen un servidor SMTP configurado.

dan, en tu caso si te muestra el código PHP es que el PHP no esta instalado correctamente, puedes leer: Instalar Apache y PHP en WinXP para hacer una instalación para propósitos de desarrollo.

Willy
Publicado: 04/06/2008 10:51 am

Hola: Donde puedo cambiar, en la fuction mail el nombre para que en el Outlook en la parte “de” aparezca el nombre de la empresa y no el nombre del servidor. Gracias

MANUEL
Publicado: 11/06/2008 1:12 pm

hola sabes que el correo me lo envia correctamente pero los datos instroducidos en el formulario no me llegan , que puede ser???

Juan Torres
Publicado: 17/06/2008 6:43 pm

Estoy armando una pagina y estoy colocando un formulario ya tengo instalado WampServer y cuando hago la prueba con el formulario me da este error.
“Warning: mail() [function.mail]: Failed to connect to mailserver at “localhost” port 25, verify your “SMTP” and “smtp_port” setting in php.ini or use ini_set() in C:\wamp\www\script_de _formulario\formulario.php on line 239
&estatus=ok&”

Gregorio Giacinti
Publicado: 25/06/2008 9:43 pm

¿En qué programa debo hacer la programación del PHP? ¿O qué programa se utiliza? Tengo el diseño de mi formulario en Flash 8 y copié el código que proporcionan aquí para conectarlo con el PHP. Perdón, soy nuevo en esto. Gracias!

Daniel
Publicado: 27/06/2008 9:38 am

Reitero la pregunta de Willi:
Como hago para que en un correo (como sucede en gmail) me diga “enviado por” y me figure el nombre de mi sitio y no el de mi servidor.

unijimpe
Publicado: 30/06/2008 11:23 pm

Para que el correo diga “enviado por” es necesario enviar el parámetro From de la siguiente forma en la línea 3 del código mostrado:

$head = "From: Mi Nombre <name@email.com>\r\n";

Thedangerx
Publicado: 04/07/2008 9:19 pm

oe men unijimpe , io kiero uno k osea solo pongo mi msn ai en el script , y al momento k suba ellos pongan su name , y su comentario ,etc con adjunto y k me llege directamente ami msn , sin tener k ellos pongan mi msn , no se si abra ese code k pueda hacer eso

Juan Luis Cano
Publicado: 19/08/2008 6:22 am

Muy buenas; para empezar quería felicitarte por tu sitio y decirte que me ha ayudado mucho últimamente con mis dudas sobre programación. Tan solo quiero apuntar que la función mail() me da muchos problemas y en ocasiones los mensajes tardan horas en llegar (sin ser problema de filtros de SPAM), y he leído por ahí que a mucha gente le pasa lo mismo. ¿Debería probar PHPMailer?

freddy
Publicado: 29/10/2008 12:53 am

pues no juan luis q raro a mi me funciono de maravilla phpmailer funciona para enviar datos adjuntos creo jejeje pero q raro en verdad la verdad. no veo hace tiempo este post me dedique ayudar un tiempo voy a ver el script otra ves ya q lo voy a usar otra ves porque es el mejor q tengo y simple. bueno te cuento despues q lo haya visto.chaufas

Enviar email con AS3 y PHP » unijimpe
Publicado: 04/11/2008 10:30 pm

[...] ver en detalle como se envía correo con PHP, pueden leer Envíar E-mail con PHP. Pueden ver el ejemplo funcionando en mailas3 y finalmente pueden descargar los archivos fuente que [...]

fabian
Publicado: 24/11/2008 10:30 pm

muy bueno lo que exponen todos…mi pregunta es la siguiente. Tengo un formulario que al registrarme debe enviar un correo de activacion, el codigo esta en php con la funcion mail(),el programa me dice que lo envia , pero no llega el correo…..le he dado vuelta por todos lados, ya descargue varios servidores de SMPT pero no me funcionan, tambien cuadre lo del php.ini con lo que dicen los demas, pero no me funciona…
que seraaaa
espero que me colaboren
porfavor
cualquier sugerencia
estorbomelancolico@hotmail.com

Daniel
Publicado: 01/12/2008 6:17 pm

Hola, programe un formulari en flash con su respectivo Php, cuando lo mando jala todo lo que esta en el formulario, supuestamente lo manda pero cuando abro la direccion de correo solo aparecen los campos:

Nombre
correo
direccion

Vacios, ya cheque el codigo muchas veces y no hallo el error, podrian ayudarme por favor

Utilizar Akismet con PHP » unijimpe
Publicado: 08/12/2008 2:07 pm

[...] procedemos a hacer el envío de correo (Para leer acerca del envío de correo con PHP pueden leer Envíar E-mail con PHP o Introducción a PHPMailer) con lo cual nuestro código sería de la forma: [...]

Pedro
Publicado: 10/12/2008 8:37 pm

Te felicito por tus consejos…muy buenos.
Tengo la siguiente consulta, habitualmente envio los formularios a una base de datos. Como lo puedo hacer para que además se envíe por mail. Gracias.

gaston
Publicado: 11/12/2008 10:55 am

hola soy nuevo con esto de php, quiero hacer simplemente un formulario de contacto, pero no me anda!!!
copie los archivos de este tutorial pero no me anda, me sale el siguiente mensaje

Parse error: syntax error, unexpected T_IF in /home/a9819380/public_html/contactenos.php on line 12

David
Publicado: 17/12/2008 7:26 pm

Hola, soy neófito en PHP, estoy haciendo un formulario con comentarios, pero me pasa esto con las “eñes” y tildes

¿qué tengo que cambiar? en el FORM ACTION o en el PHP??

Un rom獺ntico escondite en la playa es tu nido de amor favorito, especialmente si est獺 bien provisto de almohadas y mantas para acurrucarte y abundancia de comida para ir mordisqueando. Una de las actividades preferidas de un C獺ncer es nadar, por lo que hacer el amor cerca o dentro del agua calma tu esp穩ritu. Sin duda, ya debes haber descubierto las delicias de una ducha o un ba簽o compartido con tu pareja. Una sauna o un ba簽o turco probablemente sean demasiado calurosos para tu sensible piel, pero un buen ba簽o con sal como hac穩an anta簽o es ideal.

Aun as穩, los C獺ncer son felices qued獺ndose en casa, delante del fuego o yendo a la cama (de agua, por supuesto) temprano. Tu hogar est獺 donde est獺 tu coraz籀n.

Asi me llega al correo… ¿?

Willi
Publicado: 24/12/2008 3:09 pm

Saludos. bueno., tengo una “posible respuesta al por que a unos no nos funka del todo”.,

El codigo esta bien.,
Si estas en un hosting de paga., pues obvio que funciona.
Pero si estas en un local., debes de montar un servidor smtp, configurar el php.ini y despues,. probablemente funcione. Si no que alguien me corriga.,
Saludos

Gaby
Publicado: 10/02/2009 3:50 pm

Hola,te felicito por este blog, esta buenisimo.

ahora tengo un problema que entiendo. Yo usaba otro codigo y repentinamente dejaron de llegarme las consultas y x eso quiero probar otros métodos. Yo uso el hosting zizhost.com que es gratuito y no se si ese el el problema (si cambiaron alguna configuracion del php)la cosa es que en el cod anterior me aparece “enviado satisfactoriamente” y no me llega nada. Y con este codigo que nos compartes tu, me da una pagina en blanco que no dice nada y tampoco me llegan al mail.
Este es el cod del formulario que uso:

Nombre:

E-mail:

Teléfono:

Ciudad:

Mensaje:

CleaRSubmit

Y este es el codigo de aqui que modifique para los campos de mi formulario (no se si habré metido la pata aquí)
<?php

$nombre = $_POST['nombre'];
$email = $_POST['email'];
$ciudad = $_POST['ciudad'];
$telefono = $_POST['telefono'];
$mensaje = $_POST['mensaje'];

$mail = ‘gaby76@gmail.com’;
$asunto = ‘Mensaje de consulta’;
$momento = date(’d/m/y H:i a’);
$contenido = ”.$nombre.’, con mail ‘.$email.’ , de la ciudad de ‘.$ciudad.’ , telefono ‘.$telefono.’ , ha enviado el ‘.$momento.’ el siguiente mensaje:

‘.$mensaje.”;

//avisamos
echo ‘’;
if(mail($mail,$asunto,$contenido))
{
$aviso = ‘Tu mensaje ha sido enviado. Gracias’;
echo $aviso;
}
else
{
$aviso = ‘Tu mensaje no ha podido ser enviado. Inténtalo más tarde. Gracias’;
echo $aviso;
}

?>

Me estoy rompiendo la cabeza con esto! Gracias!

Gaby
Publicado: 10/02/2009 4:00 pm

Perdon, ese es el viejo, este es el de aqui que modifiqué:
?php
if (isset($_POST['action'])) {

$dest = “gaby76@gmail.com”;

$head = “From: “.$_POST['email'].”\r\n”;

$head.= “To: gaby76@gmail.com\r\n”;

$msg = “——————————- \n”;

$msg.= ” Comentarios \n”;

$msg.= “——————————- \n”;

$msg.= “NOMBRE: “.$_POST['nombre'].”\n”;

$msg.= “EMAIL: “.$_POST['mail'].”\n”;

$msg.= “TELEFONO: “.$_POST['telefono'].”\n”;

$msg.= “CIUDAD: “.$_POST['ciudad'].”\n”;

$msg.= “HORA: “.date(“h:i:s a “).”\n”;

$msg.= “FECHA: “.date(“D, d M Y”).”\n”;

$msg.= “IP: “.$REMOTE_ADDR.”\n”;

$msg.= “——————————- \n\n”;

$msg.= $_POST['mensaje'].”\n\n”;

$msg.= “——————————- \n”;

$msg.= ” Mensaje creado por circedisenioweb.com.ar \n”;

if (mail($dest, “mensaje”, $msg, $head)) {

$aviso = “Su mensaje fue enviado.”;

} else {

$aviso = “Error de envío.”;

}

}
?>

Oscar Rodríguez
Publicado: 14/02/2009 9:36 am

A partir de un formulario hago llegar emails a varios destinatarios. El formulario funciona perfectamente en mi computadora (Uso Apache 2.2.11, PHP 5.2.8) Pero cuando lo subo a la red me envía el siguiente mensaje de error:
* Language string failed to load:
¿Qué me falta por hacer? Agradezco de antemano sus atenciones y por supuesto su ayuda.

Victor Bracamontes
Publicado: 19/02/2009 3:05 pm

una duda que tengo… se puede usar esta funcion de php mail para enviar a varios destinatarios, mas de 100, que se encuentran en una base de datos? haciendo el query de mysql y obteniendo el mail, se puede hacer en un ciclo do { } while??

es que lo estoy intentando pero no me sale no envia los mails n ose porque se autobloquea y no me llega nada ya queagrege mi correo a la lista y no funciona.

Un saludo gracias.

jose eliecer
Publicado: 14/03/2009 7:36 pm

¿ese codigo tambien envia correo a hotmail?

miguel
Publicado: 27/03/2009 10:58 pm

HOLA KIM YA SE QUE TODABIA NO TE HEABLADO PORQUE NO ENCOTRABA EL CORREO Y COMO DOMAS TE ABLE PARA ESO BUENO BAI KARINA

juilan
Publicado: 03/04/2009 2:13 pm

me sale el siguiente error:

Warning: mail() [function.mail]: SMTP server response: 550 5.7.1 Unable to relay for juancasa87@hotmail.com in C:\xampp\htdocs\contactenos.php on line 30

y este es el codigo ya modificado, ayudame por fa.

Documento sin título

juan carlos
Publicado: 16/04/2009 12:51 pm

hermano, muy buena explicacion, pero no entiendo por que no funciona el formulario que hice, podrias enviarme un archivo fla? asi podria entender mejor la falla que tengo… ah y una pregunta mas por todas partes que busco ayuda solo hablan de flash mx…acaso el mx y el cs3 es basicamente lo mismo o no tienen nada que ver?… espero el archivo que al habrirlo y enviar el correo llegue a mi bandeja… porfavor es urgente…

juan carlos
Publicado: 16/04/2009 12:56 pm

soy yo de nuevo lei todos los comentario que estan en la pagina y vi varios formulario este es el que yo uso en php:

From( “correo@correo.com” );
//correo al que se enviará. Se puede poner en ambos lugares el mismo correo
$m->To( “juanevil6@hotmail.com” );
//el subject del email, será el email que haya escrito el usuario, salvo que lo cambiemos, pon lo que quieras
$m->Subject( “$email” );
//variables que hayamos declarado en la pelicula de flash
$m->Body( “Nombre del autor:
$nom
Su email:
$email
Su empresa:
$empresa
Motivo del contacto:
$contacto
Mensaje:
$mensaje” );
//Si queremos que el correo se envíe a más cuentas de correo, quitar las barras de comentario y especificar los correos
//$m->Cc( “alguien@algun_server.au”);
//$m->Bcc( “alguien_mas@otro_server.es”);
$m->Priority(1) ;
$m->Attach( “formulario.csv”, “application/vnd.ms-excel”, “attachment” );
$m->Send();
?>

freddy77
Publicado: 30/04/2009 7:45 pm

Hola pueden ayudarme

Que SMTP Server recomiendan y como se puede configurar paso a paso porque no se mucho como hacerlo. llevo casi un mes y no sonsigo como hacerlo, alguien puede ayudarme porfavor.

Minipunk
Publicado: 17/05/2009 6:55 am

Todo perfecto y modificable, sólo una pega, no me redirige a otra web de gracias por enviar o similar, donde lo modifico ¿En el PHP o en el HTML?
Gracias, muy buen artículo.

malfred
Publicado: 29/05/2009 6:18 pm

Hola amigo, mi duda es la siguiente, e implementado la libreria del phpmailer en mi aplicacion web php, y envia correo de maravilla.
El problema que tengo es que el cuerpo del email es una pagina .php que ejecuta consultas a la base de dato e imprime los resultados en esa pagina..

Al momento de recibir el correo solo aparece el html, pero no las impresiones que se generan con el echo..

que podria hacer.. espero su respuesta.. gracias

Adrian
Publicado: 01/07/2009 11:31 pm

por favor ayudenme.. soy malo para esto

cuando le doy enviar me … sale una ventana com si kisiera descargar un documento… las rutas de action estan bien los nombre de los archivos estan bienn

no tengo idea de lo ke pasa ayudaaa

jonathan jesus
Publicado: 17/08/2009 6:17 pm

porfa ayudemen q soy malo para esto y te pido ayuda a ti amor andrea

Emanuel
Publicado: 26/08/2009 5:58 pm

Hola a todos tengo este problema ultimamente, no me llegan los mensajes en mi mail, no creo que sea problema del php, si no del hoting… si hay alguien que me pueda ayudar..cual sera el problema?

centauro
Publicado: 27/08/2009 11:49 pm

muchas gracias por el codigo

me ha costado trabajo entender como jala pero pues ya lo he entendido :D

saludos

vanne
Publicado: 18/09/2009 3:22 pm

Hola!

sabes tu codigo me funcionaba mui bien .. de hecho .. durante unos meses si jalo y los correos me llegaron, pero el servicio en el q lo subo cambio a vpn .. no se si sea eso lo q hace q ya no lleguen los correos auq diga q si fue enviado satisfactoriamente o habra otra razon?

gracias !!!

Manolo
Publicado: 27/09/2009 8:21 pm

eyyyyyyy fabulosa tu ayuda gracias 100000 gracias estoy creando mi web de anime: http://www.animekai.tk y queria que la gente me mandar sus opiniones y comentario y con esto lo podre hacer veo ke tienes una gran oaciencia por todas las dudas si fueras amigo mio te invitara a unas cervezas por tu ayuda gracias

jose manuel
Publicado: 16/10/2009 10:57 am

Hola que tal buen me gustaria decirles que los mensajes no llegan a mi correo y ni siquiera me sale el mensaje de “Su mensaje fue enviado” sino sale en blanco, ojala me puedas ayudar porfa es algo urgente, gracias….

hector
Publicado: 07/11/2009 11:09 pm

queria saber si me puedes ayudar con una duda que se me ha hecho un lio… he intentado mil formas de enviar el mail, pero me aparece el siguiente error…

Warning: mail() [function.mail]: Failed to connect to mailserver at “localhost” port 25, verify your “SMTP” and “smtp_port” setting in php.ini or use ini_set() in C:\AppServ\www\proyecto\php\contacto.php on line 15

si es posible solucionarlo, sabes como?
te lo agredeceria mucho!.

te felicito por tu trabajo,me has ayudado mucho resolviendo dudas!

alberts
Publicado: 02/02/2010 1:08 pm

que es lo que hace:
if (isset($_POST['action'])) “action” en particular??

unijimpe
Publicado: 02/02/2010 2:11 pm

alberts, esa sentencia es para verificar que el formulario se haya enviado, en cuyo caso se procesa el envío de correo.

Para hacer esta verificación hemos creado un campo oculto en el formulario con el nombre action, entonces en el PHP verificamos que esta variable este definida el cual es indicador que se ha enviado el formulario.

Hector
Publicado: 10/02/2010 12:53 pm

Hola!

Estoy desarrollando un sitio y tengo que enviar mail por la funcion mail(), he utilizado el servidor que usted recomienda (QK SMTP server) y la verdad parece no ser util, por que el código no me muestra errores, incluso incluyo un echo para ver si la información es enviada con éxito y si lo hace bien, entonces creo que es problema del servidor SMTP, entonces quisiera de favor si me recomiendas otro servidor SMTP para hacer mis pruebas, tengo como sistema operativo Windows Vista, espero pueda contar con su ayuda y de antemano gracias por su atención y buena colaboración para los que necesitamos ayuda al codificar.

atte.
Hector

Daniela
Publicado: 15/02/2010 4:09 pm

Hola, sabes tengo un formulario similar a este que llenamos para enviarte comentarios
me funciona y todo bien
pero quiero saber si es posible que en el cuerpo del mail vaya el cuerpo de otra pagina

me explico un poco mas
tengo un programa que genera un informe este se encuentra en exporta.php el cual da 2 opciones enviar por mail y enviar por sms
el cuerpo de exporta.php es una tabla que se llena con informacion del equipo que la persona elija
entonces esta tabla es la que quiero enviar por mail a quien asi lo pida
esta tabla es todo el del archivo html que se me abre http://ip/mi_base/exporta.php

es posible que automaticamente con apretar enviar el cuerpo del mail sea esta tabla y nada mas?

te agradeceria monton tu ayuda

Fatima Solis de Urrutia
Publicado: 16/04/2010 12:50 pm

No puedo enviar mis correos, y cuando los envios mis amigos no pueden abrir el archivo, y no quisiera recibir correos que no se de quienes son, por favor ayuden, si hay alguna manera mejor y rapida y por supuesto confiable, gracias

comker
Publicado: 27/04/2010 3:28 pm

Hola unijimpe!

Lo encontré excelente y práctico de implementar, me funciona bien, de hecho le aplique una validación con JQuery (Plugin Validate).

Te agradecería y te pido humildemente que escribieras un artículo con una validación del lado del servidor con PHP si es posible para ésta función mail(), por que así quedaría muy completo junto al artículo del reCaptcha que ya existe.

Desde ya un saludo y muchas gracias!

Jean
Publicado: 16/06/2010 12:36 pm

Hola, me ha servido tu tutorial y muchas cosas más de tu blog, pero en este caso quisiera que el destinatario del formulario pudiera elejirse con un checkbox de mi form, solo que no sé que código debería aplicar, te agradezco de antemano por todo tu trabajo y te felicito, saludos :D

=imperable=
Publicado: 17/08/2010 1:50 pm

hola amigo nesecito ayuda

Leoh
Publicado: 26/08/2010 2:49 pm

El script funciona perfecto pero llega como correo no deseado si colocamos como destinatario una cuenta de hotmail.
Me podrian decir cual seria el problema para que lleguen bien al buzon de entrada.
Gracias!

posicionamiento en buscadores
Publicado: 11/09/2010 4:25 am

Hola,

tengo el problema de que al enviar el formulario me aparece luego una pagina en blanco. Estoy intentando integrarlo a un blog pero no me esta funcionando

Hernan
Publicado: 17/09/2010 10:43 pm

hola amigo la verdad el formulario no llega ami correo ayudenme por favor

Una ayuda con un formulario PHP - psicofxp.com
Publicado: 23/09/2010 2:24 pm

[...] $mensaje, $headers) Si buscan "mail php" vas a esncontrar varios tutoriales. Ej: http://blog.unijimpe.net/enviar-e-mail-con-php/ http://www.alaingarcia.net/weird/mail_php.htm [...]

Tony
Publicado: 29/10/2010 2:37 pm

Hola, estoy diseñando un formulario, y todo perfecto, pero necesito lo sieguiente:

El formulario solo va a llevar 2 Campos

NOMBRE y EMAIL

lo que necesito es que cuando el cliente metas sus datos en el formulario y le de ENVIAR. El formulario tome el correo del cliente que el coloco y le mande un correo a esa email, es decir que le autoresponda. Espero este claro mi duda

leonardo
Publicado: 16/11/2010 2:52 am

Hola mi pregunta es la sig como tendria que hacer para que en el campo con copia pueda enviar mas de dos correos a a la vez??
como seria esa programaacion? ya que la que tengo es asi
ese es el campo del cc

y esta es la programacion para que envie por cc $mail->Addcc ($cc = $_POST['cc']);
pero solo puedo poner una direcccion en cada campo
como deberia hacer para que sean varias a la ves???

que me respondan lo antes posible gracias por el foro

jose
Publicado: 27/12/2010 1:58 pm

Ante todo felicitarte por el codigo, muy limpio.
Mi pregunta es muy facil, al principio de cargar el formulario el formato de la letra es grande y cuando pulsas a enviar cambia a su tamaño de 12, como hago para siempre tenga ese tamaño de 12 ?? eso es lo que me descuadra la pagina.

Un saludo

Diego
Publicado: 25/01/2011 5:07 pm

Hola envío el formulario correctamente y en la variable mailheaders tengo lo siguiente:

$mailheaders = "From: britolaw \n";
mail($recipient, $asunto, $msg, $mailheaders);

en el encabezado del correo llega así:
De: britolaw (//www.britolaw.com@webhosting.satnet.net)

lo que quiero es que no salga “@webhosting.satnet.net”

eduar
Publicado: 29/05/2011 3:54 am

hola amigo, he leido los comentarios y he probado el codigo pero no me funciona,la verdad no se mucho de esto de programacion web pero de verdad necesito la ayuda.

el formulario lo colcas en una plantilla html y elcodigo php en una plantilla php o todo en la misma plantilla??
ya instale el smtp y lo configure pero nada aun…

Federico Cetani
Publicado: 01/06/2011 8:03 am

Muchas gracias, genio!

Soy diseñador y la verdad que de lo que es código, toco poco pero sacaste de un gran apuro.

Abrazo

Arturo
Publicado: 01/06/2011 2:48 pm

Como hago para que el usuario pueda escribir a quien enviar el mensaje? Todo se enviaria desde mi cuenta gmail

unijimpe
Publicado: 01/06/2011 10:18 pm

Para que el usuario pueda colocar el destinatario, lo primero es agregar un nuevo campo en el formulario, por ejemplo un campo llamado emailto.

Destinatario: <input name="emailto" id="emailto" type="text" />

Luego en el código PHP recoges el valor de ese campo y lo guardas en la variable

$email = $_POST['emailto'];

Arturo
Publicado: 03/06/2011 12:20 pm

Gracias gracias gracias!! era justo lo que queria

dexter_one
Publicado: 27/06/2011 1:28 am

Muchas gracias por este EXCELENTE articulo, se agradece tu trabajo.

Bytez!

mayu
Publicado: 30/06/2011 12:21 am

hola tengo una duda yo estoy trabajando con un servidor local q es wamp y me tira este error
mail() [function.mail]: SMTP server response: 550 The address is not valid. in C:\wamp\www\php-mail.php
me podrian explikr el xq ?? porfavor

fatima
Publicado: 14/07/2011 3:24 pm

Hola una pregunta necesito incluir el SMPT de mi provedor pero no se en donde colocarlo en tu codigo podrias ayudarme

RAUL
Publicado: 27/10/2011 11:55 am

Buenas Tardes, al pulsar el boton en mi web:

on(release){
getURL(“php-mail.php”, “_parent”);
}

no se me abre el formulario, me aparece el codigo php…PORQUE???
Gracias.

mauro sanchez
Publicado: 10/11/2011 6:13 pm

no me funciona para nada … te queria pregunta como hacer una pagina un foro como este….si se puede saber aunque creo que tu vives de esto ….jajajajajaa

jose
Publicado: 18/11/2011 9:28 am

quiero cambiarle el remitente a este codigo send.php

<?
/************************
* Variables que puedes cambiar
*************************/

$mailto = "emailto@send.com";
$cc = "";
$bcc = "";
$subject = "Formulario de contacto";
$vname = "Contacto web";
$email = $_POST['email'];

function validateEmail($email)
{
if(eregi('^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z]{2,4}(\.[a-zA-Z]{2,3})?(\.[a-zA-Z]{2,3})?$', $email))
return true;
else
return false;
}

if((strlen($_POST['name']) < 1 ) || (strlen($email) < 1 ) || (strlen($_POST['message']) < 1 ) || validateEmail($email) == FALSE){
$emailerror .= '';
if(strlen($_POST['name']) < 1 ){
$emailerror .= 'Enter name';
}
if(strlen($email) < 1 ){
$emailerror .= 'Enter email';
}
if(validateEmail($email) == FALSE) {
$emailerror .= 'Enter valid email';
}
if(strlen($_POST['message']) < 1 ){
$emailerror .= 'Enter message';
}
} else {
$emailerror .= "Your email has been sent successfully";
// NOW SEND THE ENQUIRY
$timestamp = date("F j, Y, g:ia");
$messageproper ="\n\n" .
"Name: " .
ucwords($_POST['name']) .
"\n" .
"Email: " .
ucwords($email) .
"\n" .
"Website: " .
ucwords($_POST['website']) .
"\n" .
"Company: " .
ucwords($_POST['company']) .
"\n" .
"Comments: " .
$_POST['message'] .
"\n" .
"\n\n" ;

$messageproper = trim(stripslashes($messageproper));
mail($mailto, $subject, $messageproper, "From: \"$vname\" \nReply-To: \"".ucwords($_POST['first_name'])."\" \nX-Mailer: PHP/" . phpversion() );
}
?>

deseo cambiar el remitente ya q sale el nombre del host y yo quiero ponerle mi: from: EMPRESA

Veronica
Publicado: 18/11/2011 10:13 am

tengo este erorr y no se como solucionarlo me prodria ayudar se lo agradeceria muchismo

Veronica
Publicado: 18/11/2011 10:14 am

( ! ) Warning: mail() [function.mail]: Failed to connect to mailserver at “localhost” port 25, verify your “SMTP” and “smtp_port” setting in php.ini or use ini_set() in C:\wamp\www\suite.galapagos\enviar.php on line 30
Call Stack
# Time Memory Function Location
1 0.0005 377568 {main}( ) ..\enviar.php:0
2 0.0006 378600 mail ( ) ..\enviar.php:30

unijimpe
Publicado: 18/11/2011 10:33 am

Jose, para colocar el nombre o email del remitente debes cambiar la propiedad From, en el ejemplo que mencionas:

"From: \"$vname\" \nReply-To: ...
Cambialo a:
"From: \"tumail@tuempresa.com\" \nReply-To: ...

Veronica en tu caso el mensaje sale por que no tienes instalado un servidor SMTP, este es un servidor que se encarga de hacer el envio de correos.

Valeria
Publicado: 02/12/2011 6:00 pm

Hola… como estan? implemente todo tu codigo pero no me llega el mail al correo destinatario… visualize con ECHO los datos a enviar y los toma correctamente, pero la funcion no toma los parametros indicados… ya que visualize con un ECHO la variable $vacio y sale “Error de envio”…

israel
Publicado: 14/12/2011 2:32 pm

Hola me sale el siguientiente error:
Warning: mail() [function.mail]: Failed to connect to mailserver at “localhost” port 25, verify your “SMTP” and “smtp_port” setting in php.ini or use ini_set() in C:\inetpub\vhosts\relojeriamorlet.com\httpdocs\php-mail.php on line 31

que hago!!!

jose luis
Publicado: 12/01/2012 2:00 pm

yo estoy usando un modem usb claro para conectarme a internet y ya instale el 1st Mail Server y dice que tengo una dirreccion ip dinamica y que contacte al proveedor.
como hacer la ip fija sin contactar al servidor y cual seria el nombre del servidor smtp en el php.ini actualmente lo tengo configurado asi:
[mail function]
; For Win32 only.
SMTP =EQUIPO
smtp_port=25

; For Win32 only.
sendmail_from =thuching@gmail.com
; For Unix only. You may supply arguments as well (default: “sendmail -t -i”).
;sendmail_path =

bookmarks | Pearltrees
Publicado: 09/04/2012 11:30 pm

[...] Envíar Email con PHP | unijimpe } [...]

Diego
Publicado: 26/06/2012 9:13 pm

Muy bueno el código, pasé horas buscando uno que fuese sencillo y funcionara y nada, hasta que encontre este, sencillamente perfecto, es fácil de entender y puedes modificarlo como quieras, incluso le puse un aspecto diferente con css y le agregue tambien para adjuntar imágenes.

Muchas Gracias… admito que tuve que hacer unos ligeros cambios para usarlo como lo queria… pero me ha funcionado perfectamente.

ovidio
Publicado: 26/07/2012 3:56 am

ante todo Hola

tengo una duda, me baje el codigo que pusiste en el php.

hay que tener 2 ficheros creados¿? si es asi como se deberian nombrar cada uno¿?

Saludos

Mariade
Publicado: 26/07/2012 11:45 am

Hola ujimpe ! enhorabuena me ha gustado mucho tu blog ! los artículos que he leido me parecen muy utiles e interesantes.

Quería consultarte una duda, al intentar enviar un email con phpmailer y xampp me da error “failed From addres” y no se que puede ser, el caso es que he probado el servicio mercury y sí que me envía los email y tb me funciona la funcion mail() de php, podrías echarme una mano ?

Muchas gracias ! Un cordial saludo !

ideasresponsables
Publicado: 08/08/2012 3:09 pm

Hola a todos, os escribo totalmente desesperado despues de mil intentos. Estoy haciendo una página web y estoy intentando hacer la relación entre el formulario de la pagina con el archivo .php que hace el envío. Hace por lo menos 2 años que intento hacer que me funcione un formulario, he descargado mil ejemplos de formularios html y php, he descargado mil plantillas de .php para que funcione, he cambiado los permisos a 777 y 755, he comprobado que el servidor (1and1) permite php…. pero aun asi nada.

Hace tiempo le hice la pagina a un amigo y tuve que dejar el formulario que tenia originariamente porque no sabía hacer que funcionara…. y aun no lo consigo!!!!

Se hacer el formulario con todos los campos,botones y todo,pero debo estar haciendo algo mal en el php o algo.
Por favor necesito ayuda urgente porque la verdad es que me gustaría saber que hago mal o que no se hacer o que me falta para poder aprender a hacer el dichoso formulario.

Por favor, si me pueden ayudar mi correo es ideasresponsablesgc@gmail.com

Muchas muchas gracias de antemano.
Raúl

———-ESTE ES EL FORMULARIO—————

Nombre completo

eMail

Teléfono

Mensaje

 

————–ESTE ES EL PHP———————-

<?php

$nombre = $POST['nombre'];

$email = $_POST['email'];

$telefono = $_POST['telefono'];

$mensaje = $_POST['mensaje'];

$header = 'From: ' . $email . "\r\n";

$header .= "X-Mailer: PHP/" . phpversion() . "\r\n";

$header .= "Mime-Version: 1.0 \r\n";

$header .= "Content-Type: text/plain";

$mensaje = "Mensaje enviado por " . $nombre . "\r\n";

$mensaje .= "Su eMail es " . $email . "\r\n";

$mensaje .= "Su telefono es " . $telefono . "\r\n";

$mensaje .= "Mensaje: " . $_POST['mensaje'] . "\r\n";

$mensaje .= "Enviado el " . date('d/m/Y', time());

$para = 'MI_CORREO';

$asunto = 'Mensaje desde Mi web';

mail($para, $asunto, utf8_decode($mensaje), $header);

echo 'Mensaje enviado con éxito

Muchas gracias, pronto me pondré en contacto contigo.’;

?>

——————————————————————————

Fernanda
Publicado: 17/09/2012 8:59 am

En primer lugar, mil gracias por compartir este codigo.
Tal como les ha sucedido a otros chicos, tal como esta aqui, al probarlo me arroja este error

Warning: mail() [function.mail]: Failed to connect to mailserver at “localhost” port 25, verify your “SMTP” and “smtp_port” setting in php.ini or use ini_set() in ………………………………

Mi consulta es la siguiente, si lo quiero probar desde mi maquina (localhost) debo tener un servidor SMTP configurado, siguiendo lo que comentas mas arriba. En este caso, solo basta con configurar ese programa y asegurarse de que en el php.ini diga SMTP= localhost?? O hay que configurar algo mas?

Y en el caso que se maneje a traves de un hosting, debo modificar en el .ini donde dice SMTP=mail.misitio.com o algo mas?

Gracias Unijimpe!

aljan
Publicado: 22/11/2012 5:11 am

A quien no le llegue el correo debe de configurar el Mercury en XAMPP ;P

Artemisa
Publicado: 16/01/2013 10:52 am

Hola amigo,estoy probando tu codigo pero no me funciona, al correrlo en primera instancia me envia un error php donde dice que la variable email no esta definida en la linea 4, osea en el $_POST['email'], y aun asi ingreso los datos del formulario y le doy enviar, y despues de un rato me envia el mensaje de que el mensaje fue enviado, pero reviso mi correo al que segun envie el correo y no llega nada… :/ que puedo hacer?

Gonzales
Publicado: 19/03/2014 12:37 pm

Hola disculpa he probado tu codigo y me dice que correo enviado correctamen pero al rebizar el correo no he llegado nada.
y mi pregunta es donde pongo este codigoy ademas tengo que configurar algo del php.ini ??
From: remitente@dominio.com\r\n
To: destino@dominio.com\r\n
CC: copia@dominio.com\r\n
BCC: copiaoculta@dominio.com\r\n
Reply-To: repondera@dominio.com\r\n

 

Comentar

En este blog los comentarios están moderados, serán mostrados cuando el administrador los apruebe. Por favor, evita comentarios ofensivos u obscenos por que no serán aprobados.
Si deseas publicar código fuente debes hacerlo entre las etiquedas <code> y </code>, además debes reemplazar los carácteres < por &lt; y > por &gt;.

(Requerido)

(Requerido, no será publicado)

(Requerido)

(Tags aceptados: <a> <em> <strong> <code> <ul> <li>)