[Ir al menú de PHP]
Enviando e-mail

Correo electrónico

PHP tiene una excelente función que permite el envio de correos electrónicos desde una página web.

El único problema es que son escasos los servidores gratuitos que tienen activada esta función.

Sin ir más lejos, Freesurf la tiene desactivada también y ni te imaginas los sudores que me ha costado poder probar esta función.

¿Por qué esas dificultades?. Lo ignoro, pero me sospecho -solo me sospecho- que la causa no será otra que el abuso del famoso spam.

¡¡No te enojes...!! Ya se que tú eres persona seria y responsable y que jamás te dedicarías a enviar correos masivos tratando de atascar los servidores de correo, pero... coincidirás conmigo en que... de todo hay en la viña del Señor y en Internet... también.

Bueno... pues sermones éticos aparte te recomiendo que antes de probar estas funciones consultes al administrador de tu host (¿verdad que me ha quedado fino?) sobre la disponibilidad de la función mail de PHP.

Sintaxis


la forma más simple de la función de correo es esta:

mail(dest,asunto,mensaje)

Donde dest es la dirección de correo electrónico del destinatario, asunto es el texto que aparecerá como Asunto en el mensaje que reciba el destinatario y mensaje el texto que aparecerá en el cuerpo del mensaje.

¡¡No te olvides de escribir entre comillas esos tres parámetros de la función.

Una forma un poco más completa es esta:

mail(dest,asunto,mens,cabez)

Como puedes ver aquí añadimos un nuevo parámetro a la función (cabez) que debe estar contenido en comillas y que puede contener (separadas por comas) estas (y algunas otras) cosillas:

From: Nombre <e-mail>

El texto que escribas en el parámetro Nombre (¡¡ojo... sin comillas!!) será el que aparezca el el campo De: cuando el destinatario reciba el mensaje.

No te olvides de escribir una dirección de correo donde dice e-mail ni te olvides tampoco de hacerlo entre < y >.

Reply-To: correo

Ignoro las razones pero -si quieres evitar problemas- te sugiero que escribas esto en una nueva línea tal como lo ves en los ejemplos de la derecha.

La dirección e-mail que escribas donde dice correo (¡¡fíjate que no va entre comillas!!) será la dirección a la que se enviará la respuesta si el destinatario -una vez recibido tu correo- desea responderte con la opción Responder de su programa de correo electrónico.

Cc: correo1,correo2,...

Si insertas esta línea (por supuesto que no es obligatorio hacerlo) puedes incluir en correo1, correo2, etc. etc. las direcciones de correo electrónico de las personas a las que desees enviar una copia del mensaje.

No olvides separar con comas cada una de las direcciones... y como puedes ver en los ejemplos... las direcciones no van entre comillas.

Bcc: correo1,correo2,...

Esta opción es idéntica -en cuanto a funcionamiento- a la anterior con la única diferencia que esas direcciones no serán visibles por los destinatarios de los mensajes.

X-Mailer:PHP/".phpversion()

Es una pequeña frivolidad que se añade a las propiedades del mensaje y que indica que ha sido realizado con PHP a la vez que indica la versión utilizada de este.


 
 


La función mail()

Aquí tienes un ejemplo, el más simple, del uso de esta función


<?
  mail("pepe@pepa.com", "Esto es el asunto","Aquí el mensaje");
?> 


Un ejemplo un poco más completo


<?
  mail("pepe@pepa.es", "Esto es el asunto","Aquí el mensaje",
        "From: Rinconastur <rinconastur@freesurf.fr>
        Reply-To: rinconastur@freesurf.fr
        Cc: pepito1@colloto.com,pepito2@limanes.com
        Bcc:lusito1@sariego.com,luisito2@negales.es
        X-Mailer: PHP/" . phpversion());
?>



El mismo ejemplo, utilizando variables

Aquí tienes un ejemplo donde los parámetros de envío proceden de variables PHP.

Recuerda que esas variables puede proceder de un formulario... pero por si se te ha olvidado... aquí tienes la página donde te contaba la forma de enviar datos a PHP a través de un formulario.

Como puedes observar, he puesto las direcciones de los destinatarios de las copias -visibles y ocultas- en sendos arrays y luego he escrito una función para leerlos y unirlos en una cadena separada por comas (si no la recuerdas, pulsa aquí) y luego les he quitado la ultima coma añadida utilizando una función ya comentada pero que... tienes aquí por si la has olvidado.

Quizá te preguntes... ¿por qué este loco no ha metido todo en una variable?, ¿por qué dentro de la función mail ha escrito todo eso de From, Reply-to, etc..? ¿No hubiera sido más cómodo meter todo en una sola variable y luego pasarla completa a la función mail?..

Sí a todo... pero... hay un pequeño e irrelevante detalle... intenté hacerlo pero... NO ME FUNCIONÓ.

¿Por qué?... misterios del PHP... que mi corta mente no alcanza a comprender... así que ya sabes, experimenta cuanto quieras pero si no te funcionan tus experimentos al menos tendrás... esta sintaxis que si funciona...


<?
#variables destinatario, asunto, texto, etc.
$destino="pepe@pepa.es";
$envia="Rinconastur";
$remite="rinconastur@freesurf.fr";
$asunto="Esto es el asunto";
$texto="Aquí el mensaje";

#array de destinatarios de copias visibles

$c[0]="pepito1@colloto.com";
$c[1]="pepito2@limanes.com";

#crear la cadena con las direcciones
# y añadir las comas de separación

foreach($c as $pegar) {
$cco .=$pegar;
$cco.=",";
};

#quitamos la coma del final de la cadena

$l=strlen($cco);

$cco=substr($cco,0,$l-1); 

#array de destinatarios de copias OCULTAS

$b[0]="lusito1@sariego.com";
$b[1]="luisito2@negales.es";

#crear la cadena con las direcciones
# y añadir las comas de separación

foreach($b as $pegar) {
$bco .=$pegar;
$bco.=",";
};

#quitamos la coma del final de la cadena

$l=strlen($bco);

$cco=substr($bco,0,$l-1);


  mail($destino, $asunto, $texto, "From: $envia <$remite>
	Reply-To: $remite
	Cc: $cco
	Bcc:$bco
	X-Mailer: PHP/" . phpversion());
  
?>
 



Un ejemplo práctico... e interesado...


Por aquello de que ...no solo de pan vive el hombre... a modo de ejemplo práctico, aquí tienes un link promocional de mi sitio web realizado con la función mail de PHP.

Si te apetece probarlo, a lo mejor tenemos suerte... y tus amig@s atienden a tu mensaje...

Todo sea por ...aumentar las visitas... mejorar la estadísticas... etc. etc.

En fin... autoestima... vanitas-vanitatis... ego... la carne es débil... ya lo sabes... :-)



Sugerir a un/a amig@ Envíame tus comentarios
Anterior
Indice
Siguiente