Dado que el otro día expliqué de una forma rápida cómo enviar emails a través de la función mail(), hoy voy a comentar con más detalle su uso.
La estructura general es la siguiente:
mail ($destino, $asunto, $mensaje, $cabeceras);
La dirección de destino se puede indicar de cualquiera de las siguientes formas:
mail('nombre@empresa.com');
mail('nombre1@empresa.com, nombre2@empresa.com');
mail('Nombre <nombre@empresa.com>');
mail('Nombre1 <nombre1@empresa.com>, Nombre2 <nombre2@empresa.com>');
Para indicar el asunto:
$asunto = 'El asunto no debe exceder los 70 caracteres ni tener saltos de linea';
Respecto al mensaje:
$mensaje = "Aqui va el contenido a enviar, para crear saltos de linea escribimos \n";
Las cabeceras son las que más miga tienen, tenemos 4 opciones, podemos utilizar solamente una, o las 4 a la vez (separándolas con saltos de línea).
//Dirección del remitente
From: Web <nombre@empresa.com>
//Dirección a quien responder
Reply-To: Nombre <nombre@empresa.com>
//Dirección a quien enviar una copia del mensaje
BCC: Nombre <nombre@empresa.com>
//Cabecera para enviar el email cómo HTML
Content-Type: text/html; charset=iso-8859-1
Y poco más, con esto ya queda explicada con más detalle la función mail(), que la disfrutéis ;P
muy interesante ;) por cierto no se que has tocado del RSS pero no me gusta como lo has dejado… :P
ui.. que le pasa? yo no he tocado ná :/
Un errorcito Nati, mira:
Tanto saltos de línea como retornos de carro como tabulaciones u otras abreviaturas (\n , \r , \t) solamente funcionan entre comillas dobles, luego deberías cambiar tu ejemplo en;
$mensaje = ‘Aqui va el contenido a enviar, para crear saltos de linea escribimos \n’;
Por:
$mensaje = «Aqui va el contenido a enviar, para crear saltos de linea escribimos \n»;
O de lo contrario no se registrará un salto de línea sino la cadena ‘\n’.
Por lo demás buen artículo ;)
ups! muchas gracias por la corrección pepe, te mereces una miniestatua :D
ahora diría: no.. si lo he hecho para ver si estabais atentos.. cuela? jaja
que va, la verdad ni me había dado cuenta, yo y mi manía de las comillas simples.. esq son taaaaaaaaaan bonitas xD
Te comprendo, yo uso un 80% de comillas simples tb porque para llenarlas con HTML son ideales (no colisionan con las dobles de los atributos en las tags xD) pero mira, ya que estoy una pequeña guía de como usarlas, para mi gusto claro:
Comillas dobles («): son ideales para concatenar variables en texto
– Texto plano -> echo «Hola, me llamo $nombre»;
– Consultas SQL -> mysql_query(«SELECT * FROM tabla WHERE ref = ‘referencia’ LIMIT 1»);
Comillas simples (‘):
– Índices de arrays -> echo «El valor es {$array[‘1’]}»;
– HTML/XML -> echo ‘<a href=»www.web.com» title=»ir a mi web» rel=»nofollow»>’;
Bueno, más o menos xD
Un saludo nati, espero que sigas actualizando el blog con esta frecuencia ;)
vaya, no conté conque esto admite html :S
supongo que tú podrás arreglarlo.
arreglao :P
muchas gracias por tu miniguia! viene bien tenerla a mano cuando no sabes porque te falla algo (aunque sea descartas una posibilidad xD) :D
¡Excelente!
Muchas gracias por la ayuda
Hola Nebiros!
Muchas gracias a ti x visitarme y dejar tu comentario aún sin tener dudas que resolver, me alegra mucho saber que sirve de algo lo que escribo :D saludos!!
Ola queria saber como puedo crear un formulario de envio, osea insertar un codigo en una pagina html y cuando hagan clic en enviar , el action vaya a un «enviar.php» y de envie el mensaje a mi e-mail.
Gracias……
Hola ulises!
Simplemente inserta el código de envío en la página enviar.php y escribe el action así:
<form action=»enviar.php» method=»post»>
Cuando hagan clic sobre el botón enviar, se ejecutará el código de enviar.php
Un saludo!
hola,muy bueno tu blog, mire muchas cposas y son interesantes, una pregunta, para enviar la pagina tiene que estar conectada a un servidor, subida en un hosting o algo, o teniendolo en el escritorio funciona? me refiero al otro post que pusiste tu codigo que usabas
felicitaciones, y verdaderamente me da pena que no obtengas ganancias por este blog! te recomiendo que agreges unos bloques adsense :D
jejeje
adios! y chauu
Hola julian!
Sí que te hace falta subir el archivo a un servidor / hosting que te interprete php (esto es importante), si no quieres pagar seguro que hay alojamientos gratuitos con esta característica.. si no te aclaras o no consigues que funcione, avisame e intentamos arreglarlo.
Gracias por las felicitaciones, y sobre el adsense todo se andará, no es una cosa que me quite el sueño xD
Un saludo!! ya me cuentas que tal tu formulario :)
hola será una prueba
Hola Nataly! He estado leyendo las entradas de tu blog y pues me han resultado bastante útiles. Fijate que yo soy bastante nuevo en esto del desarrollo web, y estoy trabajando en un sitio, sin embargo, tengo todo el aspecto del diseño bajo control, y quiero incluir un formulario en PHP, sin embargo, ya tengo el fichero de php pero no se como incluirlo en el html… jejeje se que debe ser simplísimo pero no se como hacerlo y sería peor quedarme con la duda para siempre… Muchas gracias de antemano por tu respuesta y saludos desde Guatemala!
Hola Luis Edgar!
Mira la explicacion que puse en este articulo:
http://blog.nnatali.com/2008/05/08/php-enviar-formulario-con-mail/
Y verás que es facil, deberás cambiar la estructura de mi formulario por el tuyo y tener en cuenta los nombre de los input a la hora de enviar las variables.
Saludos!
hola nataly me podrias ayudar a hacer esto del envio de mensajes soy nuevo porfa mi correo es yeriko_0022@hotmail.com gracias de antemano saludos desde c
Hola, estoy perdido, solo se la parte del diseño, y no tengo claro esto.
Quiero crear un formulario en html y que me llegue al email, si me pudieras ayudar te agradeceria
HOla natali, me gusta tu blog…
Felicidades…
Yo tambien estoy intentando crear mi web, ojala cuente con tu ayuda jejeje…
una pregunta funciona igual $sendmail = mail($to,$subject,$message,$headers);
if($sendmail){
$status = true;
}
que mail($destino,$asunto,$comtario,$desde,$headers);
y dos por q cuadno lo corro localmente si lo hace envia correo pero cuando lo subo ami web por me dio de un ftp ya no envia el correo
Saludos. Te escribí mi problema con esta parte del codigo php mail, mi proveedor de hosting alega lo siguiente: ….»La causa de que no pueda enviar correos a traves del formulario, es por que la funcion mail de php utiliza el usuario «nobody» para hacer el envio del correo, esta es una vulnerabilidad que puede ser aprovechadas por terceros para enviar spam a traves del server, por esta razon lamentablemente nos vimos en la obligacion de restringir el envio de correo a traves del usuario «nobody»….
¿¿¿¿Existe solución en el codigo para este problema????
Agradecería tu ayuda…