April 29 2008

Emulando listas de correo con php de forma rápida y sencilla

Aclaración: Enviar correo de forma masiva e indsicriminda es SPAM, no importa como lo quieras justificar, es SPAM, por favor asegurate de que las personas a las que les envíes este tipo de información, esten plenamente conscientes de lo que están recibiendo. Licencia Creativa, ni su autor, ni su administrador se hacen responsables por el mal uso que se haga de esta información

Si tenemos un servidor de correo plenamente instalado, a veces es algo tedioso y fastidioso estar configurando software de listas de correos, aunque existe software muy bueno para ello, hoy vamos a ver una forma sencilla en como podemos ahorrarnos ese paso y utilizar una cuenta de correo común y corriente para esos fines.

¿Qué necesitamos?

  1. PHP a nivel muy básico
  2. Un archivo de texto simple en el que escribiremos los datos de nuestros usuarios en la forma nombre, correo
  3. Por supuesto, la lista de nuestros usuarios
  4. Una cuenta de correo real

Preparando el archivo de texto

Hagamos un archivo de texto simple (.txt) y lo nombramos como lista.txt, en ella escribiremos los nombres de nuestra lista en la siguiente manera:

Nombre real de la persona, correo electrónico

Debemos asegurarnos de escribir un usuario por línea de texto

Tecleemos algo de código

Inicie su editor de código favorito, generamos un documento html nuevo y empecemos a escribir código. Lo primero, será abrir el archivo de texto (recuerde tener privilegios adecuados para esto) y pasarlo a una matriz, lo haremos con la función file de php

PHP:
  1. $lines = file('lista.txt');

Vamos a agregrar una linda tabla con los datos que vayamos extrayendo de la lista, de esa manera podremos ver un output al momento que los datos se van enviando. Y mostraremos todo esto dentro de un foreach

PHP:
  1. <table>
  2. <tr>
  3. <td>Nombre</td><td>Correo</td><td>Enviado</td></tr>
  4. <?php
  5.         foreach ($lines as $line_num=>$line) {
  6.             $datos = explode(",", $line);
  7.     ?>     
  8.     <tr>
  9.     <td> <?php echo $datos[0] ?></td>
  10.     <td> <?php echo $datos[1] ?></td>
  11.         <td>Ok</td>

Notemos que la variable datos contiene ahora los datos de cada usuario en forma de array, de manera que la opsición 0 contiene el nombre, y la posición 1 el correo electrónico, la función explode nos permite hacer dicha separación. Ahora, enviaremos los datos por correo, vuelvo a hacer incapie en la necesidad de usar una cuenta de correo valida para que funcione mejor, esto por supuesto, no garantiza que cada cliente de correo interprete nuestro mensaje como spam o no.

PHP:
  1. <?php
  2.         $sendTo = $datos[1]; // El correo del usuario
  3.         $correo_de = "lista@aullamas.com"; // nuestro correo
  4.         $de = "Aoyama"; // Nuestro nombre
  5.         $subject = "Bienvenida a la lista de correo de Licencia Creativa";
  6.         $headers = "MIME-Version: 1.0\n";
  7.         // Importante que el mime sea text/html para que el cliente lo entienda como tal
  8.         $headers .= "Content-type: text/html; charset=iso-8859-1\n";
  9.         $headers .= "From: $de  <$correo_de> \r\n";
  10.         $headers .= "Reply-To: " . $correo_de;
  11.         $message = "<p><img src='http://www.dominio.com/images/imagen.jpg' /></p><p>Como vez, puedes incluir im&aacute;genes tanbi&eacute;n. Y no olvides enviar esta informaci&oacute;n a todos tus amigos y conocidos.</p><p><small>Este es un correo automatizado. No es necesario que respondas al mismo, si deseas mayor informaci&oacute;n escribe a: aoyama@auyamas.com</small></p>";
  12.     mail ($sendTo, $subject, $message, $headers); //la famosa función mail de php hace el envio
  13.     ?>
  14.     </tr>
  15.     <?php     
  16.     } //fin foreach
  17.     ?>
  18.     </table>

Una vez terminado el código, guardemos este documento en una carpeta dentro de nuestra raíz de publicación y lo ejecutamos cuando sea necesario. Finalmente quiero decir que esto es algo muy simple y que hay software que hace ese trabajo de manera más eficiente, también reitero de nuevo la necesidad de no abusar de este tipo de prácticas.

March 07 2008

El iPhone SDK ya está aquí

Tal y como lo prometió Apple, el SDK para el iPhone ya está disponible. Junto a él, viene una especie de subscripción al estilo MSDN que aparece en dos sabores: Standard Program con un valor de $99 USD, creado para desarrolladores de aplicaciones caseras, libres de uso y también comerciales. Enterprise Program con valor de $299 para desarrolladores que generen aplicaciones hechas a medida y por supuesto propietarias. Por ahora, estos programas solo estan limitado a un número determinado de desarrolladores en Estados Unidos (quizá porque primero quieren ver si pega).

El iPhone SDK incluye un IDE, herramientas de análisis, un simulador del iPod Touch, ejemplos y otras herramientas más.

October 29 2007

El autosufrimiento de un diseñador / desarrollador web

Todos hemos oído eso alguna vez, que el diseño debe adaptarse a estándares, que hay que convencer al cliente, que si la usabilidad, que tú código debe ser óptimo y etc. No me quejo de adoptar buenas técnicas y costumbres de diseño y aún de programación que es mi fuerte™, vaya ni siquiera me quejo de tener que soportar a gente sin criterio que no tiene la menor idea de lo que desea, pero que quieren meter las narices en un campo donde ellos son ignorantes. ¡Si señor cliente!, usted que me está leyendo, es un ignorante al respecto de aquello para lo que me contrata, como yo probablemente lo sea de aquello de lo que usted vive, y eso, es lo que equilibra las fuerzas y pone orden y balance al universo (de acuerdo ya exagere).

Ser programador y diseñador a la vez es todo un calvario, porque viene esa recurrente escena donde tienes un tú malo al hombro izquierdo y un tú bueno al lado derecho peleando entre sí, que si eso se vería mejor con un gradiente pero rompería el esquema, que si hay que considerar los colores corporativos, pero hay que ser atrevido e innovador o si el algoritmo de lectura de la base de datos produce salidas con un ancho mayor al de la capa que lo contiene, etc. Uno que se siente detrás y pasa los minutos y quizá las horas sentado, trazando en papel la maqueta inicial del diseño y que pasa por interminables y aburridas reuniones con el cliente para que este termine exigiendo usar el pseudo-diseño que su amigo/primo/sobrino/amigo_pringao_de_turno le hizo, uno que tiene que volver a re-convencer al cliente, y se siente uno como un arcángel luchando contra fuerzas malignas (o como Gordon Freeman destrozando zombies con su crowbar), si es uno mismo quien al final se traiciona, cuando ya tienes casí todo hecho y le das un vistazo al trabajo realizado y entonces te repites a tí mismo... "Pero si apesta a kilometros, ¿cómo pude ser capaz de hacer semejante aberración?"

Y llega el momento cumbre, cuando después de haberte autoflagelado y de hacer y rehacer muchas maquetas, cuando ya tienes la aprobación del cliente; que te sientas otra vez, miras tu diseño, miras la pantalla de tu PC (o mac) y te preguntas.... bueno, ¿y ahora por donde empiezo? y la lucha comienza de nuevo, como todas las interminables luchas entre el bien y el mal, entonces, tomas tu taza de café, le das un sorbo y suspiras mientras tú música favorita suena y te invita a seguir con tu vida, depués de todo, para eso estás aquí, ¿o no?

RSS