Tecnología y Coaching para Emprendedores

Aprende a Enviar Newsletters Gratis con PHPlist (1a parte)

phplist

PHPlist es una plataforma de código abierto para la gestión de listas de correo electrónico, diseñado especialmente para la distribución de newsletters. A diferencia de la versión gratuita de Mailchimp, este sistema no nos va a poner publicidad junto a nuestro formulario de suscripción, y tampoco nos va a limitar el número de usuarios a los que podemos enviar nuestra newsletter.

Quizás te preguntes por qué Mailchimp tiene tanto éxito y tantos clientes. Las razones son fundamentalmente dos:

  • No requiere tener servidor propio. Más todavía, no requiere de un hosting VPS, pues en el momento que necesites enviar cientos de correo a la vez, seguramente tendrás problemas si tienes phplist instalado en un hosting compartido.
  • Es fácil de configurar. Mailchimp no requiere ningún conocimiento de programación web para poderlo configurar, cosa que phpList sí.

En esta primera parte vamos a aprender a instalar PHPlist en nuestro servidor. Una vez hecho esto, comprobaremos que funciona correctamente. En el siguiente post veremos como crear un formulario de inscripción personalizado. Seguidamente, veremos como configurar la página de confirmación de inscripción a la newsletter y los correos enviados al usuario por el sistema.

Instalación de PHPlist

Lo primero que tendrás que hacer es descargar la última versión disponible de PHPlist y descomprimirla en tu ordenador. Una vez hecho esto, habremos de configurar el archivo config.php que se encuentra dentro de la carpeta config quese encuentra en public_html > lists > config > config.php.

Aquí vamos a tener que modificar varios datos, pues al igual que sucede con wp-config.php de WordPress, hay que dar acceso a una base de datos. En mi caso concreto he creado la base de datos creativa_clientes que es la que tengo inscrita en la Agencia Española de Protección de Datos. Para hacerlo, tienes que ir al panel de administración de tu servidor. Aquí lo voy a explicar para el caso más común que es cPanel. En el caso de utilizar un servidor que se ejecute bajo Windows, no tendrás cPanel, por lo que habrás de buscar la información en Internet o ponerte en contacto con tu proveedor de hosting.

Crear la base de datos de PHPlist

Con cPanel vamos al apartado de bases de datos y seleccionamos Base de datos MySQL, tal y como podemos ver en la siguiente imagen:

Una vez aquí, veremos la opción de Crear nueva base de datos. Aquí introducimos el nombre que queremos y le damos al botón Crear base de datos. Ya tenemos la base de datos creada, ahora nos falta crear un usuario que la administre. Podemos utilizar un usuario que ya tengamos, o crear uno nuevo. Es importante recordar el nombre de usuario y su contraseña, porque nos hará falta para configurar el archivo config.php.

Cuando ya tenemos el usuario creado, le hemos de asignar la base de datos que acabamos de crear. Para eso es tan fácil como seleccionar el usuario y la base de datos correspondiente del apartado Agregar usuario a la base de datos.

Una vez tenemos la base de datos correctamente configurada, el siguiente paso es configurar el archivo config.php.

Configuración del archivo config.php

Aquí vamos a tener que indicar el idioma por defecto, el nombre de usuario, la contraseña y la base de datos. Veamos:

$language_module = "spanish_utf8.inc";

# what is your Mysql database server
$database_host = "localhost";

# what is the name of the database we are using
$database_name = "creativa_clientes";

# who do we log in as?
$database_user = "creativa_sandra";

# and what password do we use
$database_password = 'mi_password';

Por defecto, el idioma que viene es el inglés y lo vemos en $language_module. Puedes ver el listado completo de idiomas en la carpeta lists > texts. En el ejemplo vemos que el idioma seleccionado es el castellano. Verás que hay otro fichero para castellano, te recomiendo escoger este por el tema de los acentos.

El servidor de la base de datos de MySQL lo dejamos como viene por defecto, esto es "localhost". Seguidamente, hemos de indicar el nombre de la base de datos, en mi caso creativa_clientes. Los otros dos pasos son para indicar el nombre de usuario de la base de datos y su contraseña, en mi caso creativa_sandra y mi_password.

¡Al loro! Falta todavía un paso, lo digo porque es frecuente olvidarlo y sin este paso el sistema se estará ejecutando en modo de prueba y no enviará ningún tipo de correo, con lo que te puedes volver loco si no lo sabes.

En config.php busca este código:

# if test is true (not 0) it will not actually send ANY messages,
# but display what it would have sent
define ("TEST",1);

Es fundamental que cambies el 1 por un 0, porque sino tal y como indican en inglés, el sistema no enviará ningún correo. Así, deja la línea como sigue:

define ("TEST",0);

Panel de administración

Una vez hecho esto, hemos de mover la carpeta lists entera al directorio raíz de nuestro servidor, normalmente dentro de public_html. Para acceder al panel de adminsitración, iremos a http://midominio.com/lists/admin/, siendo midominio.com el nombre de tu dominio. Si hemos seguido todos los pasos correctamente, ahora nos encontraremos con el panel de administración de PHPlists:

Para comprobar que se ha configurado correctamente y que el sistema envía correos, iremos a la página http://midominio.com/lists/?p=subscribe, donde de nuevo mi dominio es la URL de tu dominio, y probaremos a introducir nuestro correo electrónico, para ver si recibimos el email de confirmación. No te asustes si tarda unos minutos en llegar, pues dependiendo del hosting que tengas contratado puede tardar más o menos. Si todo ha ido bien, te llegará un mensaje de confirmación a tu correo electrónico.

Seguirá..

Esta ha sido la primera parte de una serie de posts para aprender a configurar PHPlists para enviar newsletters gratis desde nuestro propio servidor. Aquí hemos visto los pasos básicos para configurar correctamente phplist. En los siguientes posts de esta serie veremos todos y cada uno de los detalles para personalizar phplist de modo que se ajuste 100% a nuestras necesidades. Entre otras cosas, veremos:

  • Configurar los mensajes que reciben los usuarios en su correo
  • Modificar la página de agradecimiento cuando pulsan el botón de suscripción
  • Modificar la página de confirmación de suscripción
  • Modificar la página de baja de la newsletter
  • Modificar la página de adiós a la newsletter
  • Subir plantilla personalizada para newsletter
  • Editar contenidos de la newsletter
  • Enviar la newsletter

Si te interesa el tema, te recomiendo que sigas este blog para ser el primero en saber cuándo se publican el resto de apartados de este tutorial sobre PHPlist.

Nota final

Es importante que si vives en España tengas en cuenta la Ley Orgánica de Protección de Datos (LOPD). No sé muy bien como funciona para el caso de Mailchimp, para phpList, como veremos, necesitas crear una base de datos, y esta la debes inscribir en la Agencia Española de Protección de Datos. Más que nada, que te puede caer un puro si no lo tienes en cuenta, pues las multas rondan los 6.000€. Además, deberás poner en algún sitio de la página un enlace con el aviso legal que indique que los datos facilitados se van a incluir en un fichero, así como el nombre del fichero.


Comentarios

  • Christian G.M.

    Excelente tutorial ! gracias por compartir tus conocimientos con la comunidad, ya configure mi phplist lo que quiero ahora es crear un formulario personalizado pero que este se abra en un cajonbox como ligthbox fondo negro y que el usuario al poner su nombre y correo le diga gracias y se cierre automaticamente y que tenga una x para que cierre si el usuario quiere salir del modo ligthbox eso es todo como lo hago ? Muchas gracias nuevamente por la ayuda !

    • Sandra

      la semana que viene en el próximo tutorial veremos cómo modificar la página de destino a la que va a parar el usuario cuando el sistema le da las gracias. Si quieres algo tipo lightbox, tendrás que programar la función y llamarla desde el archivo que veremos la semana que viene, aquí ya te has de ensuciar las manos a tope con PHP y jQuery e imagino que en lugar de llamar a la página html de destino llamarás a la función de jQuery desde PHP..

      Igualmente, si te urge, la línea de código a modificar la puedes encontrar en subscribelib2.php que se encuentra en la carpeta lists > admin hacia la línea 349

      Un placer compartir, creo que eso deberíamos hacer todos, porque así nos volveríamos mejores profesionales :-)

      • ANDRES VEGA

        Sandra eres increible con este tutorial pero tengo una duda este PHPLIST se podria configurar en un hosting free con php instaler es decir si lo puedo hacer con un hosting gratis para hacer una pruebas antes de comprar uno full

        Te agraadezco tu pronta respuesta

        Andres Vega

  • Enrique

    Buenas!

    La verdad que me ha gustado muchísimo las prestaciones de esta aplicación y voy a probarla, pero tengo una duda ¿hasta que punto es necesario un hosting VPS?

    Yo necesito enviar unos 20.000 mensajes al mes. Un envío puede tener un máximo de 5000 subscriptores ¿sería suficiente con un hosting compartido?

    Un saludo!

  • Jesse

    Subi todo bien al servidor pero me sale solo esto

  • Jesse

    Nunca se completa la subida de archivos y no me funciona, me sale este error

    Actividad de archivo incompleta. No se completaron 4 archivos o carpetas.
    Archivos actualizados: 2254

    Archivos con errores: 4
    lists\admin\lan\en
    lists\admin\auth
    lists\admin\info
    lists\admin\lan

    y mi meto a la ruta http://midominio.com/lists/admin/ y solo me sale un login

  • Ivan Alejandro

    Hola, seguí los pasos pero en la sección de http://midominio.com/lists/admin/ me pide que me logee y al poner el usuario y contraseña que asigne a la BDs, no me permite accesar, que debería hacer?
    Gracias

    • Luis Ferrrer

      Usa usuario; admin y password; admin

  • Luis Ferrrer

    Yo tengo un pequeño problema.

    Ya tengo todo instalado de manera local en mi servidor APPSERV, ya puedo entrar al panel de control de phplist, ya tengo 2 grupos (TEST y OTROS), configure las opciones necesaria (según yo) pero al realizar el procedimiento de prueba http://localhost/sistemas_01/lists/?p=subscribe , me manda el mensaje siguiente:

    Lo sentimos, hubo un fallo en el envío de su confirmación. Por favor, pulse “actualizar” para intentarlo de nuevo.

    Y en el registro de eventos me dice lo siguiente: Mailer Error: Could not instantiate mail function.

    Alguien me puede ayudar en resolver esto, desde ya muchas gracias.