· Función MAIL()
para enviar la información de formularios desde una
página de internet a una dirección de correo electrónico . Con esta funcion
pueden olvidarse del odioso, obsoleto y poco útil procedimiento del
"mailto:albegago@hotmail.com"
Con la función mail() se pueden enviar mensajes con
texto simple, sin formato, y también se pueden enviar mensajes con formato
HTML, esto es se le puede dar color a las letras, poner en negritas las letras,
insertar imagenes, dibujar tablas, etc.
Espero que no sea necesario decir que está función
trabaja con servidores que corran PHP... Esta función no sirve si el servidor
corre ASP, CFM, etc.
Puede que tu servidor corra PHP, pero algunos
proveedores de hospedaje restringen los scripts que puedes utilizar.
La función mail es:
mail($destino, $asunto, $mensaje, $encabezados);
donde
$destino: es la dirección a donde se enviará el
mensaje
$asunto: es el asunto del mensaje
$mensaje: es el mensaje en sí
$encabezados: aquí se anexa por ejemplo quien envía el
mensaje, si el mensaje va ir con copia para, si el mensaje va ir con copia
oculta para, si tendrá formato html, etc.
un ejemplo sencillo sería:
<? //indicamos el inicio de nuestro codigo php
mail("albegago@hotmail.com", "Prueba de
correo", "esto es una prueba");
?> // aqui termina nuestro codigo
Lo que hace está línea de código es enviar un mensaje
a albegago@hotmail.com, con el asunto: Prueba de correo; y el mensaje: esto es
una prueba.
Notese que si estamos usando como valor un STRING,
este debe de ir entre comillas.
· Función ERROR_LOG()
Un log de errores, es un archivo que almacena los
errores que se han producido durante la ejecución de un programa, añadir un log
de errores a nuestra página, nos permitirá controlar cuando se ha producido un
error para corregirlo y evitar que se repita en el futuro.
Para crear un log, abriremos el archivo en modo 'a'
(escritura al final) y escribiremos el error indicando la fecha, para
simplificar el trabajo lo podemos incluir todo en una función:
<?php
function error($numero,$texto){
$ddf
= fopen('error.log','a');
fwrite($ddf,"[".date("r")."]
Error $numero: $textorn");
fclose($ddf);
}
?>
Una vez declarada la función, tansolo tendremos que
llamarla de la siguiente manera cuando se produzca un error para que se guarde
en error.log:
<?php
// Si no existe la cookie sesion
if(!isset($_COOKIE['sesion'])){
// Guardamos un error
error('001','No existe la cookie de sesion');
}
?>
De esta manera, cada vez que un usuario entra a esta
página sin la cookie sesion, se almacena una nueva línea en el fichero
indicando:
[fecha] Error 001: No existe la cookie de sesion
Vamos a ver ahora como podemos mejorar esto de manera
que ademas de poder grabar los errores que nosotros definamos en nuestro sitio,
nos almacene los errores producidos durante la ejecución del script php.
Esto lo conseguiremos indicando al interprete Zend que
llame a la función error() cada vez que el código PHP contenga un error con la
función set_error_handler:
<?php
set_error_handler('error');
?>
Entonces, el código completo nos queda de la siguiente
manera:
<?php
function error($numero,$texto){
$ddf
= fopen('error.log','a');
fwrite($ddf,"[".date("r")."]
Error $numero:$textorn");
fclose($ddf);
}
set_error_handler('error');
?>
· Clase PEAR Mail_mine
es una de las clases existentes para el envío de
emails con soporte de extensiones MIME, lo que permite enviar HTML con
imágenes, vídeo, archivos adjuntos, etc. Este es un ejemplo sencillo de como
enviar un email HTML con su versión texto y con un archivo adjunto:
require_once 'Mail.php';
require_once
'Mail/mime.php';
$destinario = 'direccion@del.destinario.com';
$from =
'direccion@del.from.com';
$asunto = 'Asunto del mensaje';
$mensaje =
'<html><head><title>'.$asunto.'</title></head>'."\n";
$mensaje .=
'<body><p><h1>Hola</h1></body></html>';
$mime = new
Mail_mime("\n");
$mime->setTXTBody(strip_tags($mensaje));
$mime->setHTMLBody($mensaje);
$mime->addAttachment('fichero_adjunto.zip',
'application/zip');
$body = $mime->get();
$hdrs = array('From'
=> $from, 'Subject' => $asunto);
$hdrs =
$mime->headers($hdrs);
$mail =&
Mail::factory('mail');
$res =
$mail->send($destinario, $hdrs, $body);
if (PEAR::isError($res)) echo 'error enviando el email';
No hay comentarios:
Publicar un comentario