Envíar E-mail con PHP

  • 23/05/2006
  • 4:30 pm
  • unijimpe

Una de los problemas mas comunes en el desarrollo de us sistema web es el envío de correos, esto se puede hacer con la función mail(), Este comando de PHP tiene la sintaxis:

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

Donde se tiene:

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

Ahora bien acerca del $header este puede tener la siguiente forma:

  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

Bueno en este texto es obvio las opciones que se tienen.
Entonces con las definiciones basicas ahora veamos un ejemplo de envío de correo. Primero tenemos que tener un formulario de HTML con los campos tipicos para un formulario de contacto.

  1. <form action="contactenos.php" method="post">
  2. Nombres: <input name="nombres" type="text"><br>
  3. Empresa: <input name="empresa" type="text"><br>
  4. E-mail: <input name="email" type="text"><br>
  5. Telefono: <input name="telefono" type="text"><br>
  6. Comentarios:
  7. <textarea name="comentarios" cols="30" rows="5">
  8. </textarea><br>
  9. <input name="action" type="hidden" value="send">
  10. <input name="enviar" type="submit" value="Enviar">
  11. </form>


Y a continuación el script PHP para enviar el correo.

  1. if (isset($_POST['action'])) {
  2.  $dest = "unijimpe@gmail.com";
  3.  $head = "From: ".$_POST['email']."\r\n";
  4.  $head.= "To: unijimpe@gmail.com\r\n";
  5.  // Ahora creamos el cuerpo del mensaje
  6.  $msg = "------------------------------- \n";
  7.  $msg.= "         Comentarios            \n";
  8.  $msg.= "------------------------------- \n";
  9.  $msg.= "NOMBRE:   ".$_POST['nombres']."\n";
  10.  $msg.= "EMPRESA:  ".$_POST['empresa']."\n";
  11.  $msg.= "EMAIL:    ".$_POST['email']."\n";
  12.  $msg.= "TELEFONO: ".$_POST['telefono']."\n";
  13.  $msg.= "ANEXO:    ".$_POST['anexo']."\n";
  14.  $msg.= "HORA:     ".date("h:i:s a ")."\n";
  15.  $msg.= "FECHA:    ".date("D, d M Y")."\n";
  16.  $msg.= "IP:       ".$REMOTE_ADDR."\n";
  17.  $msg.= "------------------------------- \n\n";
  18.  $msg.= $_POST['comentarios']."\n\n";
  19.  $msg.= "------------------------------- \n";
  20.  $msg.= " Mensaje creado por blog.unijimpe.net \n";
  21.  // Finalmente enviamos el mensaje
  22.  if (mail($dest, "Comentarios", $msg, $head)) {
  23.   $aviso = "Su mensaje fue enviado.";
  24.  } else {
  25.   $aviso = "Error de envío.";
  26.  }
  27. }

Posts Relacionados

Total de Comentarios: 136

Publicidad
lala
06/06/2006
5:53 am

llega a la bandeja de entrada?

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
25/07/2006
3:01 pm

Que util esta informacion, Gracias.

Frizk
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

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
31/07/2006
10:12 pm

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

david
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?

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
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

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.

06/12/2006
10:47 pm

[...] 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
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
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?

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.

30/03/2007
11:08 am

Hola , solo estoy probando el envio de mensajes…

Anthony
30/03/2007
5:19 pm

donde pongo mi direccion email??

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”;

29/04/2007
9:09 pm

no me quiere funcionar el formulario

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
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.

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?

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
26/06/2007
7:26 am

pero funciona para hotmail?

Paco
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
28/06/2007
11:14 pm

como haces para enviarlo a mas de un remitente?

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
04/07/2007
12:07 pm

NO hay una manera en html???

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).

10/07/2007
10:02 pm

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

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
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 :(

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

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

Bellatrix
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()

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.

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

08/08/2007
3:56 pm

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

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
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..

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
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

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.

26/08/2007
9:31 pm

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

27/08/2007
8:00 pm

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

alberto
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

02/09/2007
12:53 am

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

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
06/09/2007
9:16 pm

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

de antemano muchas gracias

jeason
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

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.

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!

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
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
26/09/2007
1:06 am

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

gabriela
26/09/2007
11:33 pm

como le hago para generar un autoresponder

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
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
03/10/2007
4:06 am

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

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
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
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)

24/10/2007
4:27 am

gracias totales

alejandro
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
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
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
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

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!

04/12/2007
12:29 pm

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

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
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
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..

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
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.

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
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

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
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
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.

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.

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
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.

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
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
19/02/2008
6:44 am

es urgente

fatine
19/02/2008
8:40 am

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

09/03/2008
4:22 am

[...] 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
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
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
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
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
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.

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
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
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
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!

06/05/2008
7:09 pm

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

06/05/2008
10:24 pm

muchas gracias me sirvio muy bien todo esto!!

Marcela
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
06/05/2008
11:34 pm

gracias a quien me pueda colaborar

betsavic
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
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
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
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
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
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
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

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
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
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
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
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
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.

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
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

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?

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

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
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

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

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
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.

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

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… ¿?

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
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
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.”;

}

}
?>

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
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
14/03/2009
7:36 pm

¿ese codigo tambien envia correo a hotmail?

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
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
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
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
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.

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
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

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

Enviar Comentario

(*)

(*)