Para enviar emails sencillos en modo texto el uso de la función mail() es sin lugar a dudas lo más cómodo. Su uso es el siguiente:
mail('direccion@del.destinario.com','Asunto','Mensaje');
Devuelve TRUE en caso de éxito y FALSE en caso contrario. También podemos pasarle cabeceras adicionales como cuarto parámetro, esto puede ser útil, por ejemplo, para enviar mensajes HTML usando mail() pero a la mínima q necesites enviar emails un poco más complejos es recomendable usar las PEAR.
2. Función error_log()
Para todos aquellos emails de debug o alertas internas de nuestro software podemos usarerror_log(). Con esta función podemos hacer log a distintos destinos: el log del sistema, un archivo, la conexión de debug y también enviar por email. Por ejemplo para enviarnos por email información acerca de una exception q nos salta en nuestro código:
3. Clase PEAR Mail_mime
Como comentaba esta 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';
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';
Todos los métodos anteriormente descritos necesitan de un servidor de correo funcionando y las directivas de configuración del PHP correctamente fijadas. Si tienes un ISP un poco decente casi seguro q no tendrás ningún problema.
No hay comentarios:
Publicar un comentario