Table of Contents
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