From Free Software Magazine. Running GNU Mailman at home by David A. Harding.
GNU Mailman es el software para listas de correo más usado, y probablemente el más configurable; sin embargo, necesita tener conectado un servidor web y de correo permanentemente a Internet. Con un poco de trabajo extra, puedes ejecutar Mailman desde tu escritorio GNU/Linux sin necesidad de estar conectado permanentemente.
Introducción
El proceso de trabajo habitual de Mailman lo puedes ver en la figura 1. Un servidor de correo recibe el correo electrónico, es entregado a Mailman para ser procesado, este vuelve a Mailman, y entrega el correo al receptor final. El proceso de trabajo para nuestro Mailman de escritorio tiene unos pequeños cambios (mira la figura 2) que añade unos cuantos pasos extras: el correo es redirigido, almacenado, y descargado de una cuenta de correo antes de ser recibido por el servidor de correo de nuestro escritorio. Estos tres pasos extras son fáciles de configurar, y se lleva bien con la configuración habitual de Mailman.

Funcionamiento habitual de Mailman

Mailman con los ajustes realizados
Dar con la cuenta de correo
Nuestro lista de correo de escritorio requiere una cuenta de correo para almacenar los mensajes en Internet. La mayoría de los proveedores de conexión a Internet ofrecen una o más cuentas de correo con sus servicios. Varios sitios, como Google, ofrecen cuentas de correo sin ningún coste. Elije libremente: puedes cambiar de cuenta sin notificar nada a los usuarios o romper el funcionamiento de la lista de correo.
La elección de cuentas de correo está limitada por un detalle: un programa no interactivo, Fetchmail, necesita recuperar el correo de tu cuenta. Fetchmail puede usar dos protocolos: POP y IMAP. Las cuentas de correo disponibles de la mayoría de los ISP y Google Mail pueden manejar al menos uno de esos dos protocolos.
Si ya usas una cuenta que coincide con estos criterios, no lo uses para este fin; sólo puedes conseguir complicar las cosas. Abre una cuenta nueva para la lista de correo.
Las direcciones redireccionadas
Elige un nombre para tu lista de correo. Recomiendo un nombre corto y descriptivo. Una lista llamada
doe creada por Jane Doe para comunicarse con sus familiares va ser el ejemplo seguido en este artículo.
Mailman necesita tres direcciones de correo por cada lista de correo. Cada dirección debe usar el mismo dominio y seguir un formato predeterminado: list@domain, list-request@domain, y list-owner@domain. Cambia list por el nombre de tu lista y cambia domain por el nombre de tu dominio. Jane Doe, que es el ejemplo usado aquí, es propietaria del dominio example.com; las tres direcciones que ella va usar para su lista doe son eval(unescape('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%65%66%3d%22%6d%61%69%6c%74%6f%3a%64%6f%65%40%65%78%61%6d%70%6c%65%2e%63%6f%6d%22%3e%64%6f%65%40%65%78%61%6d%70%6c%65%2e%63%6f%6d%3c%2f%61%3e%27%29%3b')), eval(unescape('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%65%66%3d%22%6d%61%69%6c%74%6f%3a%64%6f%65%2d%72%65%71%75%65%73%74%40%65%78%61%6d%70%6c%65%2e%63%6f%6d%22%3e%64%6f%65%2d%72%65%71%75%65%73%74%40%65%78%61%6d%70%6c%65%2e%63%6f%6d%3c%2f%61%3e%27%29%3b')), and eval(unescape('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%65%66%3d%22%6d%61%69%6c%74%6f%3a%64%6f%65%2d%6f%77%6e%65%72%40%65%78%61%6d%70%6c%65%2e%63%6f%6d%22%3e%64%6f%65%2d%6f%77%6e%65%72%40%65%78%61%6d%70%6c%65%2e%63%6f%6d%3c%2f%61%3e%27%29%3b')).
Las tres direcciones necesitan ser redireccionadas; todas deben ser reenviadas a la cuenta de correo que hemos abierto antes (consulta la sesión anterior de este artículo). El nombre del dominio de Jane Doe le permite configurar la redirección. Si tu dominio no permite hacer esto, o no quieres tener un nombre de dominio, puedes usar un servicio gratuito de redirección (prueba a buscar en Google para encontrar uno) o usa un servicio de redirección pagado, como el que viene con el programa de donación de la Free Software Foundation associate membership.
Configurando un servidor de correo
Mailman necesita un servidor de correo correctamente configurado para un funcionamiento correcto. Si ya tienes un servidor de correo funcionando, pasa al siguiente apartado.
El primer servidor de correo que nos viene a la mente, Sendmail, es software libre, pero es tan difícil de configurar que algunas personas han escrito servidores de correo más sencillos. Aún siendo servidores de correo sencillos añaden funcionalidades que igualan a Sendmail, pero también pueden ser difíciles de configurar. La comunidad de software libre tiene muchos servidores de correos potentes y difíciles de configurar, y ninguno de ellos es estándar en todos los sistemas operativos libres.
Entre las distintas distribuciones GNU/Linux, Sendmail, Postfix, y Exim son los servidores de correo más habituales. Es necesario que leas la documentación del servidor de correo de tu sistema operativo para configurar el servidor, pero vamos a presuponer que la configuración que necesitas para Mailman y vamos a dar las instrucciones para Postfix.
Los servidores de correo tienen dos funciones: enviar y recibir correo electrónico. Enviar correo es fácil: cualquier servidor puede comunicarse con otros servidores de correo. Mientras que MS Windows ha hecho difícil el correo. Por su precaria seguridad, millones de ordenadores son dirigidos y usados para enviar spam; hoy, algunos servidores de correo rechazan correo electrónico de ordenadores con conexiones domesticas como el tuyo. Así pues, sólo aceptan correo de ordenadores de confianza. Por ejemplo, un ISP sólo acepta correo de sus clientes de red.
Tu ISP seguramente tenga un servidor de correo de confianza y probablemente te permita usarlo. Configurar tu servidor de correo para usar el servidor de tu ISP como “smarthost”— un smart server es suficiente para encaminar tu correo. Consulta la documentación en el sitio web de tu ISP para las instrucciones de salida de correo. Donde veas la palabra SMTP, busca un nombre de dominio parecido a smtp.isp.net–ese es el nombre del smarthost. Ahora vamos a configurar tu servidor local para usar el smarthost de tu ISP.
En Postfix, debes añadir esto a el archivo
/etc/postfix/main.cf:
relayhost = 207.126.122.88
Recuerda que los servidores de correo necesitan ser frecuentemente reiniciados. Si estas usando postfix, puedes ejecutar
killall -HUP postfix o
postfix reload.
Después de configurar tu servidor de correo como smarthost, envía una prueba usando el siguiente comando:
echo “To: eval(unescape('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%65%66%3d%22%6d%61%69%6c%74%6f%3a%79%6f%75%40%79%6f%75%72%69%73%70%2e%6e%65%74%22%3e%79%6f%75%40%79%6f%75%72%69%73%70%2e%6e%65%74%3c%2f%61%3e%27%29%3b'))” | /usr/lib/sendmail -t
/usr/lib/sendmail es el comando de Sendmail mantenido por temas de compatibilidad; funciona con todos los servidores de correos que instales por defecto en cualquier distribución GNU/Linux mayoritaria. Cambia eval(unescape('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%65%66%3d%22%6d%61%69%6c%74%6f%3a%79%6f%75%40%79%6f%75%72%69%73%70%2e%6e%65%74%22%3e%79%6f%75%40%79%6f%75%72%69%73%70%2e%6e%65%74%3c%2f%61%3e%27%29%3b')) por tu cuenta de correo de uso habitual.
Si has recibido un correo a tu cuenta, el servidor de correo está configurado correctamente para enviar. Si no, encuentra el problema y arreglalo. Te sugiero que empieces por comprobar los logs del correo (normalmente lo puedes ver en
/var/log/maillog).
Configurar tu servidor de correo para recibir correo de una cuenta es fácil, ya que la mayoría de los servidores de correo están configurados para recibir correo. Para probar el mecanismo de recibir añade la siguiente línea a
/etc/aliases :
testing123: eval(unescape('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%65%66%3d%22%6d%61%69%6c%74%6f%3a%79%6f%75%40%79%6f%75%72%69%73%70%2e%6e%65%74%22%3e%79%6f%75%40%79%6f%75%72%69%73%70%2e%6e%65%74%3c%2f%61%3e%27%29%3b'))
En Postfix, recuerda ejecutar el comando
newaliases después de cambiar el archivo
/etc/aliases. Para probarlo, cambia eval(unescape('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%65%66%3d%22%6d%61%69%6c%74%6f%3a%79%6f%75%40%79%6f%75%72%69%73%70%2e%6e%65%74%22%3e%79%6f%75%40%79%6f%75%72%69%73%70%2e%6e%65%74%3c%2f%61%3e%27%29%3b')) por tu correo electrónico y ejecuta los dos siguientes comandos:
echo “To: testing123″ | /usr/lib/sendmail -t
Si has recibido el correo en tu cuenta de correo habitual, continua; si no, comprueba los logs y la documentación de tu servidor de correo.
Descargando el correo electrónico
Ahora que puedes enviar y recibir correo, necesitas ser capaz de repartir el correo que enviaras a tu lista de correo. El programa Fetchmail crea una conexión entre la cuenta de correo y el servidor de correo. Descarga el correo de la cuenta y lo entrega al servidor de correo para que sea repartido a la lista de correo de forma directa.
Fetchmail necesita ser configurado. Necesita saber la dirección del servidor POP O IMAP donde es almacenado el correo, y también necesita loguearse con tu nombre de usuario y contraseña. Para dar con el nombre del servidor POP o IMAP, comprueba la ayuda de tu cuenta; busca las instrucciones para descargar el correo; el nombre del servidor de POP o IMAP.
Fetchmail necesita ejecutarse periódicamente. Si instalas Fetchmail mediantes paquetes que provea tu distribución, como Debian o Ubuntu, necesitas configurar
/etc/default/fetchmail (mira más abajo) y ejecutar fetchmail escribiendo:
/etc/init.d/fetchmail start. Los usuarios de otras distribuciones tienen que leer la documentación que acompaña Fetchmail para saber la mejor forma de ejecutarlo periódicamente.
Por ejemplo, el usuario Jane Doe que usa Debian configura Fetchmail añadiendo la siguientes líneas a el archivo
/etc/fetchmailrc :
poll mail.isp.net with proto POP3
user ‘jane’ there with password ’secret1′
to
‘doe@example.com’='doe’
‘doe-request@example.com’='doe-request’
‘doe-owner@example.com’='doe-owner’
‘*’='jane’
Usa la siguiente tabla para remplazar la configuración de Jane por la tuya propia. Las configuraciones que siguen aparecen en orden en el archivo de configuración:
mail.isp.net - el nombre del servidor de correo.
POP3 - usa IMAP si necesitas descargar el correo usando IMAP.
jane - el nombre de usuario de la cuenta de correo.
secret1 - la contraseña.
eval(unescape('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%65%66%3d%22%6d%61%69%6c%74%6f%3a%64%6f%65%40%65%78%61%6d%70%6c%65%2e%63%6f%6d%22%3e%64%6f%65%40%65%78%61%6d%70%6c%65%2e%63%6f%6d%3c%2f%61%3e%27%29%3b')) - la dirección de la lista de correo y primera dirección redirigida.
doe - el nombre de la lista de correo y variante local de la primera dirección redirigida.
eval(unescape('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%65%66%3d%22%6d%61%69%6c%74%6f%3a%64%6f%65%2d%72%65%71%75%65%73%74%40%65%78%61%6d%70%6c%65%2e%63%6f%6d%22%3e%64%6f%65%2d%72%65%71%75%65%73%74%40%65%78%61%6d%70%6c%65%2e%63%6f%6d%3c%2f%61%3e%27%29%3b')) - segunda dirección redirigida.
doe-request - la variante local de la segunda dirección redirigida.
eval(unescape('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%65%66%3d%22%6d%61%69%6c%74%6f%3a%64%6f%65%2d%6f%77%6e%65%72%40%65%78%61%6d%70%6c%65%2e%63%6f%6d%22%3e%64%6f%65%2d%6f%77%6e%65%72%40%65%78%61%6d%70%6c%65%2e%63%6f%6d%3c%2f%61%3e%27%29%3b')) - la tercera dirección redirigida.
doe-owner - la variante local de la tercera dirección redirigida.
jane - El nombre de usuario de tu sistema.
Fetchmail divide el correo de tu cuenta en cuatro partes: la que va a tu lista de correo (por ejemplo,
doe), lo que va a Mailman (
doe-request), la que va al administrador de lista (
doe-owner), y todo lo demás
(jane).
Prueba Fetchmail añadiendo las siguientes tres líneas a
/etc/aliases antes de ejecutar
newaliases. Cambia
listname por el nombre de tu listas y
you@yourisp.net por tu cuenta de uso habitual.
listname: eval(unescape('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%65%66%3d%22%6d%61%69%6c%74%6f%3a%79%6f%75%40%79%6f%75%72%69%73%70%2e%6e%65%74%22%3e%79%6f%75%40%79%6f%75%72%69%73%70%2e%6e%65%74%3c%2f%61%3e%27%29%3b'))
listname-request: eval(unescape('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%65%66%3d%22%6d%61%69%6c%74%6f%3a%79%6f%75%40%79%6f%75%72%69%73%70%2e%6e%65%74%22%3e%79%6f%75%40%79%6f%75%72%69%73%70%2e%6e%65%74%3c%2f%61%3e%27%29%3b'))
listname-owner: eval(unescape('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%65%66%3d%22%6d%61%69%6c%74%6f%3a%79%6f%75%40%79%6f%75%72%69%73%70%2e%6e%65%74%22%3e%79%6f%75%40%79%6f%75%72%69%73%70%2e%6e%65%74%3c%2f%61%3e%27%29%3b'))
Usa tu cliente de correo y cuenta de uso habitual para enviar un correo a cada uno de las tres direcciones redireccionadas; pon la dirección del destinatario en el asunto. Si recibes los tres correos de vuelta, Fetchmail está configurado correctamente; si no, comprueba los logs de Fetcgmail en
/var/logs/mail.log. Fechtmail sólo descarga el correo una vez cada cinco minutos, luego no puedes recibir los correos hasta que Fechtmail los descargue.
Después de pasar la prueba, borra las tres líneas añadidas a
/etc/aliases y vuelve a ejecutar el comando
newaliases.
Poniendo a funcionar el servidor web
La configuración principal de Mailman se hace por interfaz HTML. Lo que requiere un servidor web. En tu ordenador, instala el servidor web Apache (tanto la versión uno como la dos), y prueba el servidor cargando la siguiente URL en tu navegador: http://localhost/
Si ves una página web con la instalación por defecto de Apache, ha sido configurado correctamente y Mailman puede usar el servidor web.
Poniendo a funcionar Mailman
Instala Mailman en tu sistema operativo con el gestor de paquetes (como alternativa, puedes descargar el código fuente de list.org y seguir las instrucciones de instalación del archivo
admin/www/mailman-install.pdf).
Una vez Mailman este instalado, crea una nueva listas de correo ejecutando el comando
newlist como super usuario (root) y sigue las instrucciones dadas. Ten presente que tienes que escribir la dirección completa hacia el guión, que con Debian y Ubuntu es
/usr/lib/mailman/bin/newlist.
Mailman funciona añadiendo líneas a
/etc/aliases que redirigen todo el correo de tus tres direcciones redirigidas a Mailman; entonces Mailman examina cada uno de los correos en busca de instrucciones y actua según estas. Normalmente, esto significa que el correo es enviado hacia afuera; Mailman usa tu servidor de correo para hacer los envíos. Ten presente que tu mismo puedes añadir estas lineas a
/etc/aliases.
Configura Mailman desde el navegador accediendo a la siguiente dirección: http://localhost/cgi-bin/mailman/admin
Necesitas cambiar una opción en la configuración principal de Mailman: la variable host_name debe contener el
nombre del host para ser la dirección a redireccionar (se cual sea lo que siga el simbolo @ es la dirección a redireccionar; en el caso de Jane Doe, example.com).
Probando la lista
No hagas la prueba subscribiendote desde la interfaz web de Mailman. Subscribete a tu lista usando la interfaz por correo electrónico: envía un correo a tu lista usando el mismo formato usado por Jane Doe, pero usa tu propio correo y lista -el correo de
request:
De: eval(unescape('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%65%66%3d%22%6d%61%69%6c%74%6f%3a%6a%61%6e%65%40%6a%61%6e%65%73%2d%69%73%70%2e%6e%65%74%22%3e%6a%61%6e%65%40%6a%61%6e%65%73%2d%69%73%70%2e%6e%65%74%3c%2f%61%3e%27%29%3b'))
A: eval(unescape('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%65%66%3d%22%6d%61%69%6c%74%6f%3a%64%6f%65%2d%72%65%71%75%65%73%74%40%65%78%61%6d%70%6c%65%2e%63%6f%6d%22%3e%64%6f%65%2d%72%65%71%75%65%73%74%40%65%78%61%6d%70%6c%65%2e%63%6f%6d%3c%2f%61%3e%27%29%3b'))
Asunto: subscribe
El cuerpo del correo es ignorado por Mailman.
Si la lista de correo acepta nuevas subscripciones, debes recibir un correo de respuesta de Mailman pidiendo la confirmación antes de añadir el correo del subscriptor a la lista; responde al correo y serás tu primer subscriptor. Prueba escribiendo un mensaje a la lista; usa el mensaje de Jane Doe como ejemplo:
De: eval(unescape('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%65%66%3d%22%6d%61%69%6c%74%6f%3a%6a%61%6e%65%40%6a%61%6e%65%73%2d%69%73%70%2e%6e%65%74%22%3e%6a%61%6e%65%40%6a%61%6e%65%73%2d%69%73%70%2e%6e%65%74%3c%2f%61%3e%27%29%3b'))
A: eval(unescape('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%65%66%3d%22%6d%61%69%6c%74%6f%3a%64%6f%65%40%65%78%61%6d%70%6c%65%2e%63%6f%6d%22%3e%64%6f%65%40%65%78%61%6d%70%6c%65%2e%63%6f%6d%3c%2f%61%3e%27%29%3b'))
Asunto: Probando
Estoy probando la lista de correo familiar.
-Jane
Unos segundos o minutos después de enviar el correo, tienes que recibir el mensaje en tu bandeja de entrada: la lista de correo funciona–ahora ya te puedes poner a trabajar.
Habla con el mundo
Jane Doe ha creado su propia lista para comunicarse con su familia. Ella misma ha añadido las direcciones de correo de su familia a la lista usando la sección de miembros en la configuración web de Mailman. Pero no está segura si los familiares lejanos quieren formar parte, y ha enviado instrucciones por correo: “envía un corre a
doe-request@example.com con el asunto
subscribe. Si necesitas ayuda, preguntame.”
Puedes animar a otros a unirse a la lista de dos formas, ajustable según tu lista, desde la web o por correo. Por defecto Mailman permite a cualquiera unirse a la lista, pero puedes desactivar esto en el panel de administración web de Mailman en la opción
subscribe_policy en la página opciones de privacidad.
Una ves configurada tu primera lista de correo usando Mailman, añadir más listas es fácil: crea tres direcciones nueva de redirección apuntando a alguna cuenta de correo, añade tres reglas en el archivo
/etc/fetchmailrc, y ejecuta el comando
newlist. Repitiendo estas últimas instruciones, tu Mailman de escritorio puede albelgar cientas de listas de correo.
¡Buena suerte!
Copyright information
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at
http://www.gnu.org/copyleft/fdl.html.
Aclaración sobre la traducción: He notado al traducir que ciertas partes no me han quedado naturales, al traducir. Lo siento, no soy un profesional. Cuando pruebe lo que dice el artículo, lo voy hacer, corregiré las partes que no queden claras. Mientras, por favor, preguntar dudas o, mejor, comentar errores/sugerencias. Muchas gracias.