Archive for the ‘servidores’ Category

Email m�sivo en PHP con PHPMailer

Miércoles, Diciembre 2nd, 2009

Me pareci� interesante hacer este Tip para aquellos que quieran mandar mails de manera sencilla y r�pida con la librer�a PHPMailer. La gran mayor�a de personas que programan en PHP, utilizan la funci�n mail() para realizar env�os, ya sean simples o complejos. Pero algunos servidores tienen bloqueada la funci�n mail() de php por cuestiones de seguridad.

PHP Mailer es una librer�a escrita en php para env�o de mails desde una web utilizando una cuenta v�lida de correo de un servidor de mails. Algunas de las funciones que trae son:

  • Env�os a varios remitentes, con CC, CCO, etc.
  • Soporta 8bits, base64 y binarios
  • Autenticaci�n por SMTP
  • Env�os con HTML
  • Env�os de email con adjuntos
  • Inclusi�n de im�genes en el correo

Instalaci�n de PHPMailer

Descarga PHPMailer desde la web oficial en Worxware. Una vez descargada la librer�a, copia los archivos class.phpmailer.php y class.smtp.php al servidor. Crea un archivo php, por ejemplo: �Enviar.php�
En el que escribiremos los siguiente:

Código :

<?php
require("class.phpmailer.php"); //Importamos la funci�n PHP class.phpmailer 

$mail = new PHPMailer(); 

Luego tenemos que iniciar la validaci�n por SMTP:
$mail->IsSMTP();
$mail->SMTPAuth = true; // True para que verifique autentificaci�n de la cuenta o de lo contrario False
$mail->Username = "remitente@dominio.com"; // Cuenta de e-mail
$mail->Password = "************"; // Password 

$mail->Host = "localhost";
$mail->From = "remitente@dominio.com";
$mail->FromName = "Nombre a mostrar del Remitente";
$mail->Subject = "Asunto";
$mail->AddAddress("destinatario@dominio.com","Nombre a mostrar del Destinatario"); 

$mail->WordWrap = 50; 

$body  = "Hola, este es un�";
$body .= "<font color='red'> mensaje de prueba</font>"; 

$mail->Body = $body; 

$mail->Send(); 

// Notificamos al usuario del estado del mensaje 

if(!$mail->Send()){
   echo "No se pudo enviar el Mensaje.";
}else{
   echo "Mensaje enviado";
} 

?>

Sube el archivo �Enviar.php� al servidor en la misma ubicaci�n que los archivos class.phpmailer.php y class.smtp.php.

Notas:

PHPMailer tiene la posibilidad de enviar archivos adjuntos. Los mismos se pueden agregar de la siguiente forma:

Código :

$mail->AddAttachment("imagenes/img.jpg", "nombre_a_mostrar.jpg");

El primer par�metro la ruta del archivo. El segundo, es el nombre del archivo a mostrar.
Tambi�n tenemos la posibilidad de agregar cuentas con CC o CCO, con las siguientes l�neas:

Código :

$mail->AddCC("cuenta@dominio.com");
$mail->AddBCC("cuenta@dominio.com");

Para indicar si el mensaje contiene HTML:

Código :

$mail->IsHTML(true); // El correo se env�a como HTML

Espero que les sea muy �til, cualquier duda escriban en los comentarios o al foro.

Saludos. NicSonic.

Enviar comentario


Instalación de CodeKa, sistema web de facturación

Miércoles, Diciembre 2nd, 2009

Codeka es un sistema de facturación programado en php. Este sistema es capaz de crear nuevos clientes, añadir artículos, vender, posee tesorería, proveedores y demás secciones bastante utiles para cualquier negocio.

CodeKa, software open source para facturar en linea

La instalación de CodeKa es lo que yo llamaría un tanto antigua, ya que no tiene archivo de instalación (típico install.php), si no que hay que instalarlo mediante un SQL que te trae y editar el archivo de configuración.

Instalación de la Base de Datos

Aunque antigua la instalación, no es nada complicada, sería posible hacerla con los ojos cerrados. Lo único que hay que hacer es ir a tu phpMyAdmin e importar el archivo .sql llamado basededatos.sql.

Si se subió bien, habrá creado todas las tablas, una vez echo este paso, pasamos al siguiente.

Configuración de CodeKa

Simplemente hay que editar el archivo config.php y poner los datos que te indican:

Código :

<?php

$Usuario="usuario";
$Password="contraseña";

$Servidor="servidor"; 

$BaseDeDatos="nombre de la base de datos";

?>

No se ni para que diablos pongo el ejemplo arriba, si es que mas claro no puede estar, ¿verdad?

Darle permisos de escritura

Y como ultimo paso hay que darle permisos CHMod 777 al CodeKa.

Como veréis, mas sencillo imposible, y encima, un buen soft.

Saludos

Enviar comentario

Monitor de servidor en PHP

Miércoles, Diciembre 2nd, 2009

Hace unos días me surgió la necesidad de monitorear el estado de un servidor (si esta UP o DOWN) y recibir notificaciones via e-mail cuando se cayera. Probé un par de servicios gratuitos, pero sólo realizaban comprobaciones cada 30 minutos, por ejemplo.

Entonces se me ocurrió hacerlo por mí mismo, y conseguí realizarlo utilizando un servidor de hosting gratuito como 00webhost, realizando comprobaciones cada 5 minutos y notificando las caídas via e-mail al instante.

Código de PHP para monitoreo de servidores

Debemos crear una cuenta de usuario gratuita en 00webhost.com. No es necesario que registremos un dominio .com personalizado, simplemente utilizamos un subdominio de los que nos proveen. Una vez creada la cuenta, vamos a generar un archivo PHP llamado monitor.php que se encargue de verificar el estado del sitio y envie un e-mail de notificacion si esta caido.

Código :

<?php

   require_once ('Libmail.class.php');

   // Function to check response time
   function pingDomain($domain){
      $starttime = microtime(true);
      $file      = fsockopen ($domain, 80, $errno, $errstr, 10);
      $stoptime  = microtime(true);
      $status    = 0;

      if (!$file) $status = -1;  // Site is down
      else {
         fclose($file);
         $status = ($stoptime - $starttime) * 1000;
         $status = floor($status);
      }
      return $status;
   }

   // notificamos via email
   if (pingDomain('www.cordobalquila.com.ar') < 0) {
      $m= new Mail;
      $m->From("mailDesde@mail.com.ar");
      $m->To("mailPara@mail.com");
      $m->Subject("El sitio www.cordobalquila.com.ar esta caido");

      $message= "El sitio esta caido";
      $m->Body($message);
      $m->Send();
   }
?>

Cron Jobs en tu servidor web

La parte mas importante, planificar la tarea para que el servidor realice esta comprobacion cada cierto período de tiempo. Lo positivo es que 00webhost nos permite planificar tareas hasta en intervalos de 5 minutos, que es lo que considero bastante apropiado.

Desde nuestro panel de administración de la cuenta, vamos a la opción Cron Jobs y asignamos intervalos de 5 minutos a la ejecución del comando:

Código :

php -f RUTA_DEL_ARCHIVO/monitor.php

¡Listo, eso es todo! Ahora bien, podemos jugar un poco con este modelo para comprobar el estado de múltiples sitio, guardar stats en una base de datos, etc, etc, etc. Código fuente completo y listo con instrucciones detalladas en mi blog.

Enviar comentario

Conectar Flash y servidor multiusuario SmartFox Server

Lunes, Noviembre 30th, 2009

Debido a la demanda de tutoriales de como hacer conexiones entre flash y servidores he decidido hacer este tutorial, con el fin de aportar un poco a la web con mis conocimientos. En este tip veremos cómo utilizar un servidor muy sencillo y útil "SmartFox server", cómo configurar nuestro documento de flash para que trabaje junto a Smartfox Server y aprenderemos a hacer nuestro propio script para probar la conexión entre el servidor y flash, privada o públicamente.

Como descargar y utilizar nuestro Servidor

Descargaremos el servidor SmartFox Server. Existen otros servidores para hacer conexiones entre flash y servidores pero específicamente yo recomiendo este para el tutorial. Este es el Smart Fox Server 1.6.2 version PRO, la ultima de todas. Lo descomprimimos e instalamos. Una vez instalado, se creara la carpeta:
C:\Archivos de programa\SmartFoxServerPRO_1.6.2\ O la ruta indicada durante la instalación.

Configurando nuestro documento de flash

Abrimos flash y creamos un nuevo documento en flash de ActionScript 2.0. No importan las dimensiones yo las dejo en ‘default’ que si no me equivoco, son de 550×400 pixeles. Ahora, vamos a configurar el documento para que este trabaje junto a nuestro servidor.

Pulsamos el botón settings o Configuración, se nos tiene que abrir una ventana como esta:

Luego, Pulsamos en el botón settings o configuración y se nos abre otra ventana:

Después, pulsamos el botón ‘target’ indicado en la imagen a través de una flecha, que es donde seleccionaremos el API de Smart Fox Server para poder trabajar con Smart Fox Server en flash, así que pulsamos y navegamos hasta la carpeta de Smartfoxserver, nos metemos en Flash API y seleccionamos ActionScript 2.0:

Y por ultimo, clickamos en OK y ya esta. Ya podemos trabajar con flash y Smart Fox Server.

Nota! Recuerda que este paso se tiene que realiza en todos los documentos flash que desees utilizar para conectarlo con Smart Fox Server!

Creando un pequeño script para probar la conexión entre nuestro servidor y flash

Vamos a crear nuestro primer script. Servirá para decir si estamos conectados a smartfoxserver.

Antes de nada, abrimos el servidor en Inicio -> Todos los programas -> SmartFoxServer_1.6.2 -> Start SmartFoxServer. En el mismo documento anterior, vamos a crear un texto dinámico que se llame estatus, de tal forma que queden así las propiedades:

Ahora nos vamos a acciones del fotograma, y empezamos a programar el ActionScript. Vamos a llamar Smart Fox Server, a los datos que recibiremos del servidor a documento de flash.

Código :

import it.gotoandplay.smartfoxserver.*

Fácil eh!? Ahora que hemos llamado a Smartfoxserver, debemos saber que cada ves que lo necesitemos, debemos llamarlo así:

Código :

smartfox.EVENTO

Vale, sigamos. Ahora, toca crear las variables del servidor tales como IP, PUERTO y ZONA, la zona es la parte del servidor configurada para utilizar el script. Como para una conexión a Smart Fox Server no se necesita una zona configurada especifica, usaremos la primera que viene por defecto: simpleChat. Vamos a ello desde arriba:

Código :

import it.gotoandplay.smartfoxserver.*

// Variables

var ip:String = "127.0.0.1"
var port:Number = 9339
var zone:String = "simpleChat"

La variable IP sera la IP del servidor, por defecto la cual seria 127.0.0.1 (local) (este podria cambiar dependiendo de tu proveedor de internet, te recomendamos revisarlo antes que todo a traves del CMD), el puerto por defecto de Smar Fox Server el cual seria 9339, y la zona que la definimos nosotros (debe existir en el servidor), que es la simpleChat.

Hasta aqui claro. Ahora tenemos que crear la variable del cliente de Smart Fox Server, es decir para utilizar la sintaxis anterior de smartfox.EVENTO, debemos crear una variable, smartfox:SmartFoxClient, seguida de sus correspondientes eventos principales: onConnecton y debug, que son igual a la funcion de cada uno, mas para delante te daras cuenta, desde arriba:

Código :

import it.gotoandplay.smartfoxserver.*

// Variables

var ip:String = "127.0.0.1"
var port:Number = 9339
var zone:String = "simpleChat"

var smartfox:SmartFoxClient = new SmartFoxClient()
smartfox.onConnection = handleConnection
smartfox.debug = true

Realizamos la conexión con smartfox.connect(ip, port), lo que hay entre paréntesis, son las dos variables ip y port que se han definido arriba.

Empezamos a crear las funciones, empezamos por la función que pide Smart Fox Server al conectarse que hemos definido arriba como onConnection, que es igual a la función handleConnection, desde arriba!

Código :

import it.gotoandplay.smartfoxserver.*

// Variables

var ip:String = "127.0.0.1"
var port:Number = 9339
var zone:String = "simpleChat"

var smartfox:SmartFoxClient = new SmartFoxClient()
smartfox.onConnection = handleConnection
smartfox.debug = true

// Conectamos al server
smartfox.connect(ip, port)

// Lo que sigue de funciones hasta el final!
function handleConnection(success)
{
if (success)
{
estatus.text = "Conectado Correctamente!"
}
else
{
estatus.text = "Imposible Conectar!"
}
}

Si seguimos todos los pasos correctamente y hay conexión con el servidor en el texto dinámico nos dirá "Conectado Correctamente" y si no hay conexión y/o esta mal configurado nos dirá "Imposible Conectar"

Haciendo nuestra conexión publica

Bien para hacer nuestra conexión publica, vamos a la carpeta:
C:\Archivos de programa\SmartFoxServerPRO_1.6.2 o a la ruta de Smartfoxserver.

Allí, cojemos y entramos a la carpeta Server. Veremos bastantes archivos y carpetas, buscamos el archivo config.xml y lo abrimos con el bloc de notas. Hacemos CNTRL+B y ponemos: <ServerIP> y le damos a buscar. Cuando lo encuentre, mostrara la linea siguiente:

Código :

<ServerIP>127.0.0.1</ServerIP>

Aquí tenemos que poner nuestra ip. Vamos a Inicio -> Ejecutar y ejecutamos CMD. Se nos abrirá la terminal del sistema y escribimos ipconfig. Y nos aparecerá toda la información de nuestro modem y/o router:

Código :

Configuración IP de Windows

Adaptador Ethernet Conexiones de red inalámbricas

Sufijo de conexión específica DNS :
Dirección IP. . . . . . . . . . . : XXX.XXX.X.XX
Máscara de subred . . . . . . . . : XXX.XXX.XXX.X
Puerta de enlace predeterminada : XXX.XXX.X.X

Adaptador Ethernet Conexión de área local :

Estado de los medios. . . .: medios desconectados

Tomamos el numero que indica en la Dirección IP, nos vamos al config.xml en el bloc de notas y sustituimos la de 127.0.0.1 por la de nuestra IP, en vuestro caso, vuestra IP. Guardamos el config.xml y cerramos. Abrimos el ejemplo que creamos antes, y vamos a las acciones del fotograma. Ahora abrimos nuestro navegador y en la URL ponemos: http://www.cualesmiip.net allí nos dice algo como:

Tu IP real es: XX.XX.XXX.XXX

Pues esos números son tu IP real que deberás poner en la variable IP de las acciones del script que hemos creado anteriormente. De esta forma todos los que abran tu pagina con ese script y tu tengas el servidor abierto, se podran
conectar.

Saludos!

Tutorial ofrecido por RamFu en www.phperos.net y modificado por Broo para su publicacion en www.cristalab.com

Enviar comentario