Enviar Email con Adjuntos
- 31/07/2007
- 10:49 am
La presente es una breve guía para implementar un formulario para enviar email con archivos adjuntos, para ello utilizaremos la librería PHPMailer, de la cual ya hemos hablado en Introducción a PHPMailer.

Creando el Formulario
Lo primero es crear un formulario en el cual el usuario ingresará los datos del destinatario, asunto, mensaje y seleccionar el archivo que se desea adjuntar. Para ello creamos un formulario con los campos necesarios:
Notese que hemos utilizado la propiedad enctype con la cual permitimos el envío de archivos adjuntos en el formulario. Además hemos agregado un campo oculto llamado action para verificar que se ha enviado el formulario.
Enviando el Email
Es el momento de recibir los datos enviados en el formulario y enviarlos por email, para ello utilizaremos la clase PHPMailer para lo cual lo adjuntamos en la primera linea. Lo que sigue es verificar si se ha envíado el formulario para ello comprobamos la variable action del formulario. Luego recuperamos el nombre del archivo adjunto y el archivo temporal en las variables $varname y $vartype. Lo siguiente es crear una instancia de la clase PHPMailer donde le pasamos todas las variables necesarias.
-
require("class.phpmailer.php");
-
if ($_POST['action'] == "send") {
-
$varname = $_FILES['archivo']['name'];
-
$vartemp = $_FILES['archivo']['tmp_name'];
-
-
$mail = new PHPMailer();
-
$mail->Host = "localhost";
-
$mail->From = "blog@unijimpe.net";
-
$mail->FromName = "Blog Unijimpe";
-
$mail->Subject = $_POST['asunto'];
-
$mail->AddAddress($_POST['destino']);
-
if ($varname != "") {
-
$mail->AddAttachment($vartemp, $varname);
-
}
-
$body = "<strong>Mensaje</strong><br><br>";
-
$body.= $_POST['mensaje']."<br>";
-
$body.= "<i>Enviado por http://blog.unijimpe.net</i>";
-
$mail->Body = $body;
-
$mail->IsHTML(true);
-
$mail->Send();
-
}
En el código anterior hay que notar que hemos verificado si existe un archivo adjunto para luego añadirlo como adjunto utilizando la propiedad AddAttachment. Finalmente asignamos el texto del mensaje y procedemos a enviar el correo con $mail->Send().
No olvidar que estamos utilizando PHPMailer, asi que es necesario descargar los archivos fuente de esta clase. Para finalizar he creado un archivo de prueba en http://samples.unijimpe.net/mailattach.php y también les dejo los archivos fuente para su descarga.
Posts Relacionados
- Introducción a PHPMailer
- Envíar E-mail con PHP
- Enviar email multiple con PHP
- Javascript: Evitar doble Submit
- Enviar email con Flash y PHP
- Uncategorized
- 70 Comentarios
Tutorial: Ajax Youtube Search
- 30/07/2007
- 9:54 am
La presente es una breve guía para implementar un buscador de vídeos Youtube hecho en AJAX. Para ello utilizaremos el API de Youtube, el cual nos permite acceder a la información de los vídeos. Lo segundo que utilizaremos es la librería Adobe Spry el cual nos permitirá realizar nuestra interfaz en AJAX.
API de Youtube
Youtube ha desarrollado un API, mediante el cual previo registro como desarrollador se puede acceder a datos de los vídeos. Este API permite enviar diferentes parámetros y nos devolverá un XML con el resultado de nuestra consulta. Existen varias funciones para extraer datos listadas en la documentación pero nosotros utilizaremos solamente la función youtube.videos.list_by_tag el cual devuelve un listado de vídeos resultado de la búsqueda de una palabra o tag que nosotros enviamos.
Para hacer uso de este método podemos hacerlo mediante la siguiente ruta:
-
http://www.youtube.com/api2_rest?method=youtube.videos.list_by_tag&dev_id=devid&tag=tag&page=page&per_page=perpage
En donde se tiene:
- devid: es el ID del desarrollador.
- tag: es la palabra o tag que deseamos buscar.
- page: es el número de pagina que deseamos ver.
- perpage: es la cantidad de resultados por pagina.
Creando un Proxy Youtube
Los primero es crear un archivo que haga las veces de proxy, es decir que convierta el archivo remoto del dominio de Youtube a nuestro dominio local con lo cual evitaremos problemas de crossdomain. Creamos un archivo llamado proxy.php en el cual recibimos dos parámetros tag y pag con el cual obtenemos el criterio y número de pagina a obtener, luego construimos el URL a consultar, luego abrimos el URL recién creado y lo imprimimos.
-
// functions
-
function getVariable($vparam, $vdefault) {
-
$result = $vdefault;
-
$result = $vparam;
-
}
-
return $result;
-
}
-
// youtube interface
-
$yt_keynum = "6jrOQnqPhLk";
-
$yt_squery = getVariable($_GET['tag'], "santana");
-
$yt_pagnum = getVariable($_GET['pag'], 1);
-
$yt_paglen = 10;
-
$yt_urltot = "http://www.youtube.com/api2_rest";
-
$yt_urltot.= "?method=youtube.videos.list_by_tag";
-
$yt_urltot.= "&dev_id=" . $yt_keynum;
-
$yt_urltot.= "&page=" . $yt_pagnum;
-
$yt_urltot.= "&per_page=" . $yt_paglen;
-
$yt_urltot.= "&tag=" . $yt_squery;
-
// ----------------
-
foreach ($lineas as $lnum => $linea) {
-
echo $linea;
-
}
Obtenemos los datos con Adobe Spry
Los resultados que devuelve el API son XMLs, entonces utilizaremos Adobe Spry que tiene la cualidad que puede leer XMLs y mostrarlos directamente en una página web. Para los que aún no conoces de Spry pueden leer Tutorial de Adobe Spry para aprender a utilizarlo. Entonces descargamos los archivos de Spry y los colocamos en una carpeta lllamada inc en donde ubicaremos nuestros archivos js. Incluimos nuestras librerías a utilizar, primero los archivos de Spry (xpath.js y SpryData.js) luego swfobject.js para incluir el reproductor de flash y finalmente una archivo llamado functions.js en el cual colocaremos nuestras funciones javascript.
A continuación definimos las variables en javascrip vartag el cual contendrá la palabra a buscar, varpag que es el número de página. Luego creamos un dataset en Adobe Spry con el cual obtenemos los datos de nuestro XML generado por el proxy creado anteriormente al cual le pasamos los parámetros de vartag y varpag. Luego creamos una variable con el path al nodo que deseamos acceder.
-
var vartag = "oasis";
-
var varpag = 1;
-
var varurl = "youtube.php"+"?tag="+vartag+"&pag="+varpag;
-
var varpath = "ut_response/video_list/video";
-
var dsYouTube = new Spry.Data.XMLDataSet(varurl, varpath);
El siguiente paso es crear el formulario en donde se escribirá el criterio de búsqueda, para ello incluimos un campo de texto y un botón que llamará a la función javascript getVideo encargada de llamar nuevamente al XML con el nuevo criterio de busqueda que definiremos posteriormente.
Ahora escribimos los resultados del XML dentro del HTML, para ello creamos un región de Spry con la propiedad spry:region y luego escribiremos todos los nodos del XML con la propiedad spry:repeat. Luego podemos escribir el thumbnail, titulo, url y descripción de cada vídeo, escribiendo los nombres de los nodos del XML como se muestra a continuación.
Luego creamos un div en donde imprimiremos el video utilizando SWFObject.
-
<div id="swfvideo">
-
Seleccione un video para reproducir.
-
</div>
Creando la funciones Javascript
Creamos un archivo llamado functions.js en el cual incluiremos nuestras funciones Javascript. La primera de ellas es setVideo el cual imprime el player de Youtube utilizando SWFObject, para ello recibe como parámetro el ID del video. Luego getId devuelve una referencia a un elemento HTML de acuerdo a su identificador. La siguiente es getVideo, la cual toma la palabra ingresada en el formulario y luego llama a setURL para obtener los datos nuevamente.
-
// JavaScript Document
-
function setVideo(idvideo) {
-
vurl = "http://www.youtube.com/v/"+idvideo;
-
vswf = new SWFObject(vurl,"idx","300","250","8","#FFFFFF");
-
vswf.addParam("menu", "false");
-
vswf.addParam("wmode", "transparent");
-
vswf.addParam("quality", "high");
-
vswf.write("swfvideo");
-
}
-
function getId(nameid) {
-
return document.getElementById(nameid);
-
}
-
function getVideo() {
-
varpag = 1;
-
vartag = getId("criterio").value;
-
vartag = vartag.replace(" ", "-");
-
setText("query", vartag);
-
dsYouTube.setURL(varurl+"?tag="+vartag+"&pag="+varpag);
-
dsYouTube.loadData();
-
}
Finalizando
Para finalizar, le agregamos un logo, un hoja de estilos para darle colores, paginación de resultados y un precargador de datos con lo cual lograremos obtener un buscador de videos Youtube hecho en AJAX. Pueden ver el resultado de este tutorial en: http://samples.unijimpe.net/youtube/. Para terminar con este tutorial les deje los archivos fuente con el buscador completo con todas las funcionalidades.
Posts Relacionados
- Buscador AJAX Youtube
- SpryTube: Buscador de Videos
- Tutorial de Google AJAX Search
- bajar-youtube.com
- PHP Youtube Video Downloader
- Uncategorized
- 47 Comentarios
PHP Youtube Video Downloader
- 29/07/2007
- 12:58 pm
Les presentamos una nueva forma para descargar videos de Youtube con PHP sin necesidad de instalar programas adicionales. En un post anterior vimos una forma de descargar videos utilizando PHP, pero ya que Youtube ha cambiado la estructura de sus urls este ha dejado de funcionar, ahora les presentamos un nuevo método.
Ahora que Youtube pertenece a Google este ha incluido en su buscador de vídeos todos los resultados de Youtube y además con la posibilidad de obtener los videos directamente desde este buscador. Si hacemos un pequeño análisis podemos encontrar la ruta de los videos basados en el Identificador de cada video.
-
http://cache.googlevideo.com/get_video?video_id=3C9CH3q9PLI
Esta ruta nos devuelve el video en formato flv sin necesidad de acceder a Youtube y con excelente velocidad de descarga. Entonces creamos un archivo llamado phpyoutube.php en el cual incluimos un formulario para descargar videos.
Luego, creamos el script PHP el cual verifica que se ha enviado la variable v por metodo GET y procedemos a redireccionar para hacer la descarga del video.
Unimos todo, le ponemos una hoja de estilos y tenemos listo nuestro PHP para descargar videos de Youtube. Pueden ver el resultado de este ejemplo en: http://samples.unijimpe.net/phpyoutube.php. Si prefieres todo listo, te dejo los archivos fuente de este ejemplo.
Posts Relacionados
- Descargar Videos Youtube
- PHP: Descargar videos YouTube
- Videos YouTube en WordPress
- bajar-youtube.com
- Descargar Youtube en MP4
- Uncategorized
- 57 Comentarios



