Instalación y administración de Listas de Distribucion de Correo en Debian

De Manuais Informática - IES San Clemente.
Ir a la navegación Ir a la búsqueda

Listas de Correo Electrónico

Las listas de correo electrónico son un uso especial del correo electrónico que permite la distribución masiva de información entre múltiples usuarios de correo a la vez. En una lista de correo, se escribe un correo a la dirección de la lista (ej: lista@sanclemente.local) y éste se entregará masivamente a todas las personas inscritas en la lista, dependiendo de como esté configurada la lista de correo, el receptor podrá o no, tener la posibilidad de enviar correos.

Lista-de-Correo.gif

Ésto os puede recordar un poco al reenvío de correos en Postfix (fichero .forward en la carpeta home del usuario). Un administrador podría imitar el funcionamiento de una lista de correo, creando un usuario llamado lista, y en su carpeta home crear un fichero .forward, e introducir todos los e-mails a los que quiere reenviar los correos con destino a esa lista. Éste método supone un trabajo adicional para el administrador, ya que cada vez que quiera agregar alguien en la lista o eliminarlo, tendrá que hacerlo a mano.

La solución consistiría en crear una lista de correo. El administrador sólo tendría que crear la lista y los usuarios se suscriben o cancelan su suscripción de forma automática, sin que tenga que intervenir el administrador.

A veces se emplean las listas para envíos de correos no deseados o spam.

Muchas organizaciones utilizan cada vez más esta herramienta para mantener informadas a las personas principalmente con noticias, publicidad e información de interés. Para no caer en prácticas de spam, los correos se envían previa inscripción del destinatario, dándole la oportunidad de cancelar la misma cuando lo desee y de forma automática.

Es una muy buena práctica añadir siempre la opción de cancelación de suscripción a la lista en todos los e-mails enviados a la lista.

Cómo funcionan las listas de Correo Electrónico

Las listas de correo electrónico suelen funcionar de forma automática mediante el uso de un gestor de listas de correo y una dirección de correo electrónico capaz de recibir mensajes de correo electrónico (la dirección de correo de la lista).

Los mensajes enviados a dicha dirección son reenviados a las direcciones de correo electrónico de los suscriptores de la lista. Dependiendo del software gestor, podrán existir diversas direcciones de correo para la recepción de comandos a enviar a la lista.

Muchos servidores de listas de correo electrónico ofrecen una dirección de correo para que los suscriptores puedan enviar comandos, tales como darse de alta, de baja o cambiar sus preferencias de suscripción. Algunos servicios de listas de correo electrónico permiten además varios modos de suscripción.

  • En el modo individual, el usuario de la lista recibe todos los mensajes que han pasado a formar parte de la misma.
  • En el modo resumen diario (digest en inglés) se recibe solamente un mensaje diario, que incluye todos los mensajes incorporados a la lista durante ese día.
  • En el modo no correo o de correo web el usuario no recibe los mensajes que se envían a la lista, pero puede enviar mensajes a la misma. Esta modalidad que tiene por finalidad no saturar el buzón de correo del usuario suele ir acompañada de la posibilidad de consultar los mensajes a través de una interfaz web, por lo que a veces recibe el nombre de sólo web.

Tipos de Listas de Correo Electrónico

  • Un tipo de listas de correo electrónico es el conocido como boletín electrónico, que se usa principalmente como un medio unidireccional de información y al que sólo pueden escribir determinadas personas encargadas de la publicación de dicho boletín.
Correo-Publicitario.gif
  • Otro tipo es la lista de debate, a la cuál puede escribir cualquier suscriptor. En una lista de debate, un suscriptor utiliza la lista de correo para enviar un mensaje al resto de suscriptores, los cuales pueden responder de la misma manera. Así, se pueden generar debates e intercambios de información. Las listas de este tipo suelen referirse a un tópico en particular (por ejemplo política, chistes etc), y los temas pueden ir desde los más específicos (por ejemplo: administradores de Linux) hasta los más amplios, como puede ser "cualquier cosa que te interese". En este sentido, son parecidas a los grupos de Usenet. En algunas listas de debate, los mensajes enviados deben ser aprobados previamente por un moderador, antes de ser distribuidos entre los suscriptores. El uso de moderadores suele emplearse para mantener un alto nivel de calidad y evitar el envío de mensajes de correo no deseado o spam. Algunas listas están abiertas a quien quiera suscribirse, mientras que otras necesitan aprobación del dueño de la lista o un moderador. En el caso de las listas privadas, el administrador de ésta debe invitar personalmente a cada usuario.

Reglas de Etiqueta

Tanto en las listas de distribución como en los grupos de noticias deben tenerse en cuenta las mismas reglas que para el correo electrónico normal. Pero además hay que tomar otras consideraciones relacionadas con la multi- difusión del mensaje.

Etiquette.jpg

En los foros de debate hay que tomar aún más precauciones para evitar la transmisión de bytes inútiles. La transmisión de texto formateado (RTF o HTML) está aún más desaconsejada, puesto que no podemos saber cuántos receptores carecen de esas posibilidades. Igualmente habrá que cuidar las firmas automáticas, excluyendo absolutamente las citas a frases ingeniosas y los dibujitos formados por caracteres.

Debe limitarse en todo lo posible la transmisión de ficheros adjuntos hacia los foros de debate.

Si contestas a un mensaje precedente y del mismo foro, se hace muy necesario que cites algunas líneas del texto original; ten en cuenta que cada día se incorporan al grupo nuevos miembros, por lo que puede que se encuentren con tu escrito sin haber leído el mensaje precedente al que contestas.

Procura dar tus opiniones con moderación, no como afirmaciones categóricas, ni ridiculizando las opiniones de los demás. Evita los enfrentamientos personales; siempre hay una forma de expresar tu criterio sin molestar a los que puedan tener otra opinión. Elude las discusiones sobre aspectos que no sean el tema del grupo.

En los foros está muy mal considerado incluir mensajes publicitarios o que oferten productos y servicios comerciales. Los grupos de diálogo se han pensado para intercambiar opiniones y experiencias, no para promocionar una venta. Tampoco está bien visto utilizar estos grupos para transmitir mensajes piramidales que aportan un supuesto beneficio (económico o de otro tipo) al autor de la transmisión.

Una incorrección propia de las listas de correo es el envío de mensajes cuyo asunto es irrelevante o ajeno a la temática de la lista, conocido frecuentemente por la expresión inglesa off-topic, aunque en algunas listas se toleran siempre que se puedan distinguir incluyendo las palabras "off topic" o las siglas "OT" en el "Asunto" del mensaje. También se considera incorrecto escribir un mismo mensaje a diferentes listas o reenviar un mensaje de una lista a otra porque los demás usuarios pueden estar contestando a un mensaje del que no ven todas las respuestas, que se producen en listas diferentes.

Cuando entres en un foro del que desconoces su funcionamiento, puede ser una buena estrategia quedarte algunos días como lector, antes de comenzar a enviar mensajes al grupo. Hay muchos foros que tienen tendencias y costumbres peculiares, normas no escritas pero que todo el mundo respeta. Trata de averiguar si el grupo tiene unas normas escritas o FAQs y léelas con detenimiento.

Si en alguna ocasión crees oportuno comentar algún tema que no es propio del foro, utiliza el correo electrónico para hacer un mensaje personal dirigido al interlocutor concreto que desees, sin enviar el mensaje al foro. Cada lista de distribución y grupo de noticias tiene un idioma oficial que debe ser utilizado siempre; no hay razón para suponer que los participantes puedan entender otro idioma, y la transmisión en otra lengua será una falta de respeto hacia los que no sean capaces de entender ese mensaje.

También se anima a los usuarios a no escribir expresamente su dirección de correo electrónico en el cuerpo del mensaje o que no lo hagan de forma explícita usando fórmulas como minombre[arroba]correo[punto]com. Las listas ocultan frecuentemente la dirección de correo completa de los participantes, para evitar que estas direcciones queden expuestas a los robots recolectores de direcciones que usan los generadores de spam.

Servicios de Listas de Correo Electrónico

Los servicios en Internet que permiten la creación de listas de correo electrónico de una manera sencilla fueron muy populares a finales de los 90, pero tras el estallido de la Burbuja .com, muchos de dichos servicios desaparecieron, quedando principalmente los más populares como listas de correo LISTSERV, Google Groups, Yahoo! Groups o eListas.

A la par de LISTSERV, existe también software libre para la gestión de listas de correo electrónico, como phpList, Sympa, Mailman(GNU), Dada Mail, y Gmane.

Mailman, software GNU para gestionar Listas de Correo Electrónico

Mailman es un software gratuito para la gestión de discusión a través de correo electrónico y listas de e-newsletter. Mailman está integrado con la web, lo que facilita a los usuarios administrar sus cuentas y a los propietarios de la lista administrar sus listas. Mailman soporta el almacenamiento de ficheros, sistema de devolución (bounce) automático, filtrado de contenidos, entrega de resumen diario (digest), filtros de spam y mucho más.

En la siguiente dirección se pueden consultar todas las características disponibles de Mailman: http://www.gnu.org/software/mailman/features.html

Instalación y Configuración de Mailman

Vamos a realizar la instalación de Mailman, un gestor de listas de correo ampliamente utilizado en GNU/Linux, y que se distribuye bajo licencia GPL.

Las características más importantes de Mailman son:

  • Administración via web.
  • Moderación de listas, suscripción a listas abiertas y cerradas, listas cerradas de miembros, filtros en mensajes, etc.
  • Almacenamiento de archivos enviados y gestión a través de herramienta web.
  • Detección de spam o correo basura.

Para poder instalar este servicio tendremos que asegurarnos previamente de:

Para instalar Mailman en Debian lo haremos con los siguientes pasos:

Instalación de Mailman

# Instalación de Mailman
apt-get install mailman

# Se nos solicitará que escojamos el idioma o idiomas que queremos utilizar: marcaremos Español.
# A continuación nos avisa de que es necesario crear una lista del sitio.
# Esta lista se usa para enviar recordatorios de contraseñas, moderación de correos, etc.

Configuración de Mailman

# Previamente antes de ejecutar el comando para crear la nueva lista revisaremos los siguientes
# parámetros en el fichero de configuración de mailman /etc/mailman/mm_cfg.py :
# Configuraremos la dirección del dominio que queramos que aparezca en los correos
# que gestionan las listas DEFAULT_EMAIL_HOST
# Configuraremos la dirección del servidor web desde dónde se llevará
# a cabo la administración via web de mailman: DEFAULT_URL_HOST
nano /etc/mailman/mm_cfg.py

DEFAULT_EMAIL_HOST = 'pruebas.local'
DEFAULT_URL_HOST   = 'lista.pruebas.local'
DEFAULT_SERVER_LANGUAGE = 'es'

# Activaremos esta opción:
MTA = 'Postfix'

# Si se utiliza postfix-to-mailman.py la opción anterior estará comentada
# Pero ésta no es la configuración utilizada en este tutorial.

Parámetros DNS para servidor Mailman

Simplemente tendremos que asegurarnos que los servidores que hemos puesto en el fichero de configuración de Mailman están correctamente registrados en el DNS. En nuestro ejemplo hemos puesto:

DEFAULT_EMAIL_HOST = 'pruebas.local'
DEFAULT_URL_HOST   = 'lista.pruebas.local'

# Revisaremos entonces que tengamos en el DNS un servidor de correo bien configurado,
# y una dirección de tipo A para el servidor web virtual lista.pruebas.local

- Un registro A para correo.pruebas.local (nombre del servidor de correo)
- Un registro MX para el dominio pruebas.local que apunte a correo.pruebas.local
- Un registro A para lista.pruebas.local

Creación de la Lista mailman

Una vez que hemos completado la integración de Mailman y nuestro servidor de correo, necesitamos crear una lista especial denominada "mailman". Esta lista se utiliza para enviar recordatorios de contraseñas y es necesaria para el correo funcionamiento de Mailman.

# Vamos a crear una nueva lista llamada mailman.
# Tendremos que introducir el nombre de la persona que gestionará la lista
# y una contraseña para gestionar esa lista.
newlist mailman

# Obtendremos una pantalla similar a la siguiente:
Indique la dirección de correo de la persona que gestionará la lista: usuario@pruebas.local
Clave inicial de mailman:
Para terminar de crear su lista de distribución,
tiene que editar el fichero /etc/aliases (o equivalente)
añadiendo las siguientes líneas y ejecutando posiblemente el
programa newaliases:

## lista de distribución mailman
mailman:              "|/var/lib/mailman/mail/mailman post mailman"
mailman-admin:        "|/var/lib/mailman/mail/mailman admin mailman"
mailman-bounces:      "|/var/lib/mailman/mail/mailman bounces mailman"
mailman-confirm:      "|/var/lib/mailman/mail/mailman confirm mailman"
mailman-join:         "|/var/lib/mailman/mail/mailman join mailman"
mailman-leave:        "|/var/lib/mailman/mail/mailman leave mailman"
mailman-owner:        "|/var/lib/mailman/mail/mailman owner mailman"
mailman-request:      "|/var/lib/mailman/mail/mailman request mailman"
mailman-subscribe:    "|/var/lib/mailman/mail/mailman subscribe mailman"
mailman-unsubscribe:  "|/var/lib/mailman/mail/mailman unsubscribe mailman"

Presione el retorno de carro para notificar al propietario de la lista mailman...

# En las nuevas versiones no se muestra el resultado anterior, así que simplemente
# podéis comprobar que se ha introducido dicho contenido en el fichero:
# /var/lib/mailman/data/aliases
more /var/lib/mailman/data/aliases

mailman:              "|/var/lib/mailman/mail/mailman post mailman"
mailman-admin:        "|/var/lib/mailman/mail/mailman admin mailman"
mailman-bounces:      "|/var/lib/mailman/mail/mailman bounces mailman"
mailman-confirm:      "|/var/lib/mailman/mail/mailman confirm mailman"
mailman-join:         "|/var/lib/mailman/mail/mailman join mailman"
mailman-leave:        "|/var/lib/mailman/mail/mailman leave mailman"
mailman-owner:        "|/var/lib/mailman/mail/mailman owner mailman"
mailman-request:      "|/var/lib/mailman/mail/mailman request mailman"
mailman-subscribe:    "|/var/lib/mailman/mail/mailman subscribe mailman"
mailman-unsubscribe:  "|/var/lib/mailman/mail/mailman unsubscribe mailman"

# !! ATENCION !!: Si no aparece el fichero /var/lib/mailman/data/aliases
# Generarlo con el comando: 
/usr/lib/mailman/bin/genaliases

# Es ahora cuando iniciamos el servidor mailman
service mailman start

Configuración de Postfix para Mailman

# Configuraremos postfix, revisando los siguientes parámetros 
# en el fichero de configuración /etc/postfix/main.cf:
nano /etc/postfix/main.cf

alias_maps = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases
alias_database = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases
mydestination = ...... pruebas.local, correo.pruebas.local, lista.pruebas.local , localhost
owner_request_special = no
recipient_delimiter = +
unknown_local_recipient_reject_code = 550
mailbox_command = /usr/bin/procmail -a "$EXTENSION"
relay_domains = pruebas.local

# Salimos y guardamos la configuración de Postfix.
# Reiniciamos Postfix
service postfix restart

Configuración de Apache para Mailman

Cuando instalamos Mailman, se crea un fichero de configuración de ejemplo para que podamos utilizarlo en nuestra configuración de Apache.

# Copiamos el fichero de ejemplo de configuración para Apache a la carpeta de sites-available.
cp   /etc/mailman/apache.conf   /etc/apache2/sites-available/mailman

# Si necesitamos hacer algún cambio especial, por ejemplo
# para configurar Mailman en un Servidor Virtual,
# editaremos el fichero de Apache para Mailman:
nano /etc/apache2/sites-available/mailman

# Revisaremos los parámetros de configuración. En este caso es un dominio virtual dónde
# se aloja la gestión de la lista de correo (lista.pruebas.local):
# Se muestra la parte de configuración del host virtual:

<VirtualHost *:80>
ServerName lista.pruebas.local
# DocumentRoot /var/www --- Esta linea la comentamos y añadimos la siguiente:
RedirectMatch ^/$ http://lista.pruebas.local/cgi-bin/mailman/listinfo
ErrorLog /var/log/apache2/lists-error.log
CustomLog /var/log/apache2/lists-access.log combined

<Directory /var/lib/mailman/archives/>
    Options FollowSymLinks
    AllowOverride None
</Directory>

Alias /pipermail/ /var/lib/mailman/archives/public/
Alias /images/mailman/ /usr/share/images/mailman/
ScriptAlias /admin /usr/lib/cgi-bin/mailman/admin
ScriptAlias /admindb /usr/lib/cgi-bin/mailman/admindb
ScriptAlias /confirm /usr/lib/cgi-bin/mailman/confirm
ScriptAlias /create /usr/lib/cgi-bin/mailman/create
ScriptAlias /edithtml /usr/lib/cgi-bin/mailman/edithtml
ScriptAlias /listinfo /usr/lib/cgi-bin/mailman/listinfo
ScriptAlias /options /usr/lib/cgi-bin/mailman/options
ScriptAlias /private /usr/lib/cgi-bin/mailman/private
ScriptAlias /rmlist /usr/lib/cgi-bin/mailman/rmlist
ScriptAlias /roster /usr/lib/cgi-bin/mailman/roster
ScriptAlias /subscribe /usr/lib/cgi-bin/mailman/subscribe
ScriptAlias /mailman/ /usr/lib/cgi-bin/mailman/
</VirtualHost>

# Nos queda ahora habilitar el nuevo sitio web en Apache:
a2ensite mailman

# Reiniciamos Apache o recargamos la configuración:
service apache2 restart

# ó también podemos hacer:
service apache2 reload

# Para comprobar si funciona el acceso a la gestión de Mailman via web:
http://lista.pruebas.local

# Nos redigirá a http://lista.pruebas.local/cgi-bin/mailman/listinfo
# dónde se muestra la información de todas las listas disponibles en el sistema.

Gestión de Listas en Mailman

Crear Listas

Para crear listas en Mailman se hace con el comando newlist

# Con el siguiente comando creamos una nueva lista en Mailman:
newlist

# Respondemos a las preguntas introduciendo el e-mail del propietario de la lista.
# Y también la clave de administración de la lista.

# Para todas las listas de nueva creación ya no es necesario reiniciar Postfix.

# Reiniciamos de nuevo el servicio mailman para que lea los cambios:
service mailman restart

Borrar Listas

Para borrar listas en Mailman se hace con el comando rmlist

# Si necesitamos borrar una lista se hace con el comando:
rmlist -a nombre lista

# Por ejemplo:
rmlist -a mailman

Contraseñas de Gestión del Sitio y Creación de Listas en Mailman

Hay dos contraseñas que se pueden crear desde la línea de comandos y que se pueden utilizar en la web.

La "Site Password" se puede utilizar en cualquier parte del sistema, siempre que se nos solicite una contraseña para realizar cualquier acción. Esta contraseña nos da acceso a la administración de cualquier lista y puede ser utilizada para acceder como cualquier usuario. Piensa en algo similar a una password de root en Linux.

La segunda contraseña es la "List Creator Password" o de creación de listas. Esta contraseña se puede utilizar para delegar el trabajo de creación de listas a otros usuarios, sin proporcionarles el privilegio de administrador. Por supuesto que la persona que tenga la "Site Password" también podrá crear listas, pero el creador de listas tiene limitado su rol solamente a eso y nada más.

ATENCION:

Para la gestión via web, es necesario crear previamente las dos contraseñas desde la línea de comandos y reiniciar el servicio mailman.


Site Password

Para ajustar la Site password, utilizaremos el siguiente comando:

mmsitepass  contraseña

List Creator Password

Para ajustar la List Creator Password o password de creación de listas, utilizaremos el siguiente comando:

mmsitepass  -c contraseña

No es necesario crear una contraseña de Creación de Listas, pero si que es muy recomendable poner la contraseña del sitio (la Site Password).

Interfaz Web de Mailman y Correos de Gestión de las Listas

  • Para acceder a la interfaz web de gestión de las listas:

http://lista.pruebas.local

y nos redireccionará a la página Inicial dónde se muestran todas las listas que hay disponibles:

http://lista.pruebas.local/cgi-bin/mailman/listinfo

  • Para ver información de una lista en particular:

http://lista.pruebas.local/cgi-bin/mailman/listinfo/nombrelista

  • Para gestionar una lista en particular:

http://lista.pruebas.local/cgi-bin/mailman/admin/nombrelista

También se puede acceder desde un enlace que hay en la parte inferior izquierda de la página de información de una lista en particular.

Correos Electrónicos para Suscribirse a las listas

Los usuarios podrán añadirse y borrarse de la lista, visitando las páginas web anteriores e introduciendo sus direcciones de e-mail, o bien enviando un mensaje a las direcciones de gestión de la lista:

  • Para suscribirse a una Lista, enviar un e-mail a:

NombreLista-subscribe@pruebas.local

  • Para cancelar la suscripción a la Lista, enviar un e-mail a:

NombreLista-unsubscribe@pruebas.local

  • Para publicar un mensaje en la Lista, enviar un e-mail a:

NombreLista@pruebas.local

  • Para obtener ayuda sobre comandos de la lista, enviar un e-mail a:

NombreLista-request@pruebas.local --- poniendo como Asunto: help

Tareas de Mantenimiento de Mailman

Algunas características de Mailman requieren que se ejecuten tareas cada cierto tiempo, por lo que deberemos configurar nuestro cron para ejecutar ciertos programas a esas horas determinadas.

Configuración del cron

Mailman incluye un fichero de ejemplo con todas las tareas a realizar para que las incluyamos en nuestro cron. Ese fichero está en /usr/lib/mailman/cron/crontab.in

Tenemos que añadir esas instrucciones a nuestro crontab.

# Una forma de hacerlo es copiando el contenido de ese fichero con un editor, y una vez copiado.
# Ejecutamos la orden crontab -e
# Y pegamos ese contenido copiado al final.
nano  /usr/lib/mailman/cron/crontab.in

crontab -e

# Otra forma de hacerlo podría ser la siguiente:

# Mostramos el contenido del cron actual con crontab -l
# A continuación mostramos el contenido del fichero crontab.in que queremos añadir.
# Y todo ese resultado lo enviamos a un fichero llamado nuevocron
(crontab -l; more /usr/lib/mailman/cron/crontab.in) > nuevocron

# A continuación actualizamos el cron con el contenido del fichero nuevocron.
crontab nuevocron

# Podemos comprobar que realmente se ha introducido editando el cron:
crontab -e

# Modificaremos las horas de ejecución de las tareas a lo que creamos conveniente.
# Saldremos de la edición del fichero y guardaremos los cambios.

Enlaces con información adicional sobre Mailman

--Veiga 18:48 29 mar 2012 (CEST)