User Tools

Site Tools


informatica:linux:correo:listas_de_correo

Listas de correo con mailman

mailman mail MTA MUT lista listas lista de correo

La lista de correos consiste en una aplicación que recibe correos y los entrega a tantos destinatarios como estén suscritos a esa lista.

Requisitos

1. Tener un nombre de dominio

Si la máquina tiene una ip dinámica, se puede acudir a dominios gratuitos del tipo '.mine.nu', de forma que 'mi_dominio.mine.nu' apunte siempre a la ip de esa máquina. De esta forma, los correos que se envíen a 'mi_lista@mi_dominio.mine.nu' serán procesados por el mailman instalado en esa máquina.

2. Instalar y configurar un servidor de correo

3. Mapear el puerto 25 tcp a esa máquina.

Si la máquina sale a internet por un router, es necesario que mediante NAT en ese router se mapee el puerto 25 tcp para que apunte a la ip local de la máquina.

4. Programas:

  • (Si se quieren hacer accesible los archivos de correos) apache2

Instalación

1. Instalar mailman

aptitude update && aptitude install mailman

1.1 Seleccionar idioma (en mi caso 'es')

1.2 Aviso 'newlist mailman'. Pulsar 'enter'

Es importante el aviso, porque luego veremos que para que mailman eche a andar, es necesario crear la lista 'mailman' con el comando 'newlist mailman'

Creación de las listas

1. Editar '/etc/postfix/main.cf'

nano /etc/postfix/main.cf

Y añadir la siguiente linea:

owner_request_special = no
virtual_maps = hash:/var/lib/mailman/data/virtual-mailman
alias_maps = hash:/etc/aliases,hash:/var/lib/mailman/data/aliases
# IMPORTANTE: estas probablemente ya existen. Hay que editarlas
mydestination = mi_dominio.mine.nu
myhostname = mi_dominio.mine.nu
myorigin = /etc/mailname

2. Grabar y salir

3. NO se si es necesario Editar:

nano /etc/mailname

Y dejarlo tal que así:

mi_dominio.mine.nu

4. Editar fichero configuración mailman:

cp /etc/mailman/mm_cfg.py /etc/mailman/mm_cfg.py.original
nano /etc/mailman/mm_cfg.py

Con el siguiente contenido:

MTA = "Postfix"
POSTFIX_STYLE_VIRTUAL_DOMAINS = ['mi_dominio.mine.nu', 'mi_dominio_2.mine.nu']

Yo añado:

DEFAULT_EMAIL_HOST = 'mi_dominio.mine.nu'
DEFAULT_URL_HOST = 'mi_dominio.mine.nu'
# Creo que redundante
add_virtualhost('mi_dominio.mine.nu','mi_dominio.mine.nu')

5. Grabar y salir

6. Añadir una nueva lista:

newlist mi_lista

Indique la dirección de correo de la persona que gestionará la lista: mi_direccion@dominio.com
Clave inicial de afiliados: 
Presione el retorno de carro para notificar al propietario de la lista afiliados...

7. Para actualizar '/var/lib/mailman/data/aliases' y 'var/lib/mailman/data/virtual-mailman':

/usr/lib/mailman/bin/genaliases

8. Reinicio mailman (no es necesario para añadir nuevas listas una vez funcionan las anteriores):

/etc/init.d/mailman force-reload

Restarting Mailman master qrunner: mailmanctlPID ilegible en: /var/run/mailman/mailman.pid [Errno 2] No such file or directory: '/var/run/mailman/mailman.pid' ¿Está el qrunner corriendo acaso? El sitio de La lista no se encuentra: mailman failed!

Solución: crear la lista mailman:

8.1 Creo la lista 'mailman':

newlist mailman

Indique la dirección de correo de la persona que gestionará la lista: mi_direccion@dominio.com
Clave inicial de afiliados: 
Presione el retorno de carro para notificar al propietario de la lista mailman...

8.2 Vuelvo a intentarlo:

/etc/init.d/mailman force-reload

Restarting Mailman master qrunner: mailmanctlPID ilegible en: /var/run/mailman/mailman.pid [Errno 2] No such file or directory: '/var/run/mailman/mailman.pid' ¡Está el qrunner corriendo acaso? .

Conseguido

Archivos de la lista

  • Para hacerlos accesibles

1. Editar en apache el anfitrión virtual:

nano /etc/apache2/sites-enabled/mi_sitio

Y añadir estas lineas:

Alias /pipermail/ /var/lib/mailman/archives/public/
Alias /images/mailman/ /usr/share/images/mailman/

2. Reiniciar apache

apache2ctl restart
  • Proteger los archivos mediante usuario y contraseña

1. Teclear en el navegador la dirección para administrar la lista:

http://mi_dominio.mine.nu/cgi-bin/mailman/admin/mi_lista

2. Introducir la contraseña y pulsar sobre el botón 'Let me in…'

3. Pulsar sobre el boton 'Archiving Options' en la parte superior central

4. Seleccionar el botón de radio 'private' justo a la derecha de 'Is archive file source for public or private archival?' y pulsar sobre el botón 'Submit Your Changes'

A partir de ahora al acceder al archivo nos pedirá usuario y contraseña (para probarlo primero eliminar cookies):

http://mi_dominio.mine.nu/cgi-bin/mailman/private/mi_lista

Fijar el tamaño máximo de los correos

1. Teclear en el navegador la dirección para administrar la lista:

http://mi_dominio.mine.nu/cgi-bin/mailman/admin/mi_lista

2. Introducir la contraseña y pulsar sobre el botón 'Let me in…'

3. Pulsar sobre el boton '[General Options]' en la parte superior izquierda

4. Teclear la cifra en Kb en la caja de texto justo a la derecha de 'Maximum length in kilobytes (KB) of a message body. Use 0 for no limit.'

5. Pulsar sobre el botón 'Submit Your Changes'

Recibir una copia de los mensajes enviados

En las pruebas que estoy haciendo parece ser que gmail los rechaza de todas formas, y hotmail si los acepta. Para hacerlo:

1. Teclear en el navegador la dirección para administrar la lista:

http://mi_dominio.mine.nu/cgi-bin/mailman/admin/mi_lista

2. Introducir la contraseña y pulsar sobre el botón 'Let me in…'

3. Pulsar sobre el boton 'Membreship Management…' en la parte superior izquierda

4. En la fila del miembro en cuestión, marcar la casilla 'not metoo' para EVITAR que le llegue una copia del mensaje enviado a la lista. Es decir, si no está marcada, le llega

5. Pulsar sobre el botón 'Submit Your Changes'

Idioma

  • Para cambiar el idioma preferido de la lista:

1. Teclear en el navegador la dirección para administrar la lista:

http://mi_dominio.mine.nu/cgi-bin/mailman/admin/mi_lista

2. Introducir la contraseña y pulsar sobre el botón 'Let me in…'

3. Pulsar sobre el boton 'Language Options' en la parte superior izquierda

4. Marcar la caja de comprobación justo a la izquierda de 'Spanish (Spain)' y pulsar sobre el botón 'Submit Your Changes'

5. Seleccionar en el desplegable de la parte superior derecha 'Spanish (Spain)' y pulsar sobre el botón 'Submit Your Changes'

IMPORTANTE

6. Detecto que las traducciones no funcionan pese a haber cambiado el idioma predeterminado. Es necesario copiar los ficheros de traducción del idioma seleccionado en el paso 5:

cp -R /usr/share/mailman/es/ /etc/mailman/

Editar los distintos ficheros a vuestro gusto

Exportar lista de suscriptores

list_members -f -o /tmp/mi_archivo.txt mi_lista

Lista de comandos

Errores

/etc/init.d/mailman force-reload
Restarting Mailman master qrunner: mailmanctlPID ilegible en: /var/run/mailman/mailman.pid
[Errno 2] No such file or directory: '/var/run/mailman/mailman.pid'
¿Está el qrunner corriendo acaso?
.

Se está intentando reiniciar mailman, pero el servidor de correos (en mi caso postfix) no está corriendo.

Solución

/etc/init.d/postfix restart

Otro error: No resuelve bien los enlaces porque se redirige al domino i no al subdominio que necesitarias. Por ejemplo, tienes el servidor web de dominio.net en una IP, i el correo de dominio.net va otra IP, que es donde tienes el mailman, por ejemplo a listas.dominio.net. I no funciona.

Solución

Ejecutar un script accediendo por ssh a la máquina de mailman:

/usr/lib/mailman/bin/withlist -l -r fix_url nombredelalista_dominio.net -u listas.dominio.net 

donde listas.dominio.net es donde está instalado el mailman

informatica/linux/correo/listas_de_correo.txt · Last modified: 2015/04/13 20:19 by 127.0.0.1