{"id":2041,"date":"2018-04-04T09:09:51","date_gmt":"2018-04-04T09:09:51","guid":{"rendered":"https:\/\/esferas.org\/msqlu\/?p=2041"},"modified":"2018-10-11T05:22:22","modified_gmt":"2018-10-11T05:22:22","slug":"volvemos-a-las-viejas-y-fiables-listas-de-correo","status":"publish","type":"post","link":"https:\/\/esferas.org\/msqlu\/2018\/04\/04\/volvemos-a-las-viejas-y-fiables-listas-de-correo\/","title":{"rendered":"Volvemos a las viejas y fiables listas de correo &#8230;"},"content":{"rendered":"<div class='__iawmlf-post-loop-links' style='display:none;' data-iawmlf-post-links='[{&quot;id&quot;:649,&quot;href&quot;:&quot;https:\\\/\\\/www.sympa.org&quot;,&quot;archived_href&quot;:&quot;https:\\\/\\\/web-wp.archive.org\\\/web\\\/20260319062830\\\/https:\\\/\\\/www.sympa.org\\\/&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2026-04-15 14:29:43&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-05-01 23:25:28&quot;,&quot;http_code&quot;:503}],&quot;broken&quot;:false,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-05-01 23:25:28&quot;,&quot;http_code&quot;:503},&quot;process&quot;:&quot;done&quot;},{&quot;id&quot;:650,&quot;href&quot;:&quot;https:\\\/\\\/sympa-community.github.io\\\/manual&quot;,&quot;archived_href&quot;:&quot;https:\\\/\\\/web-wp.archive.org\\\/web\\\/20220625221009\\\/https:\\\/\\\/sympa-community.github.io\\\/manual\\\/&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2026-04-15 14:29:49&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-05-01 23:25:25&quot;,&quot;http_code&quot;:206}],&quot;broken&quot;:false,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-05-01 23:25:25&quot;,&quot;http_code&quot;:206},&quot;process&quot;:&quot;done&quot;},{&quot;id&quot;:651,&quot;href&quot;:&quot;https:\\\/\\\/github.com\\\/sympa-community\\\/sympa-community.github.io\\\/blob\\\/master\\\/manual\\\/install\\\/configure-http-server-apache.md&quot;,&quot;archived_href&quot;:&quot;&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[],&quot;broken&quot;:false,&quot;last_checked&quot;:null,&quot;process&quot;:&quot;done&quot;},{&quot;id&quot;:652,&quot;href&quot;:&quot;http:\\\/\\\/www.kobelnet.ch\\\/Blog\\\/2013\\\/06\\\/05\\\/sympa_with_virtual_hosts_using_exim&quot;,&quot;archived_href&quot;:&quot;https:\\\/\\\/web-wp.archive.org\\\/web\\\/20170503082114\\\/http:\\\/\\\/kobelnet.ch\\\/Blog\\\/2013\\\/06\\\/05\\\/sympa_with_virtual_hosts_using_exim&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2026-04-15 14:30:10&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-05-01 23:25:32&quot;,&quot;http_code&quot;:200}],&quot;broken&quot;:false,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-05-01 23:25:32&quot;,&quot;http_code&quot;:200},&quot;process&quot;:&quot;done&quot;}]'><\/div>\n<p>&#8230; porque al final es un mecanismo casi universal de acceso a la informaci\u00f3n.<\/p>\n<p><!--more--><\/p>\n<p>Y para ello estoy instalando un gestor de listas de correo con el que tengo ya cierta experiencia llamado <a href=\"https:\/\/www.sympa.org\">Sympa<\/a>. Est\u00e1 escrito en Perl, es bastante robusto y dispone de un completo interfaz web con el que gestionar las listas, los subscriptores y el archivo de las mismas.<\/p>\n<p>El programa est\u00e1 empaquetado para Debian en una versi\u00f3n relativamente reciente as\u00ed que eso es lo que voy a emplear.<\/p>\n<p>Para funcionar Sympa precisa de:<\/p>\n<ol>\n<li>Un nombre de dominio para las listas como por ejemplo <em>grupos.taquiones.net.<\/em><\/li>\n<li>Un servidor de correo amigable que permita despachar correo a ciertas direcciones empleando programas.<\/li>\n<li>Una base de datos compatible.<\/li>\n<li>Espacio en disco para archivar los correos.<\/li>\n<li>Un servidor web para gestionar el interfaz visual. Tambi\u00e9n admite \u00f3rdenes v\u00eda mensajes de correo pero eso lo hace muy inapropiado para el humano medio<\/li>\n<\/ol>\n<h3>Configuraci\u00f3n<\/h3>\n<p>La configuraci\u00f3n es pr\u00e1cticamente autom\u00e1tica con la instalaci\u00f3n del paquete. Se pregunta el nombre del dominio del correo, el tipo de base de datos y sus credenciales, y el servidor web que va a dar acceso al interfaz web.<\/p>\n<p>No hay que hacer mucho m\u00e1s que asegurarse de que el servidor de correo se entiende con Sympa y que servidor web hace lo mismo por su parte.<\/p>\n<h3>Conectando con exim4<\/h3>\n<h3><\/h3>\n<p>Al parecer la configuraci\u00f3n no es del todo autom\u00e1tica en este caso ya que existen varios problemas:<\/p>\n<ul>\n<li>A partir de cierta versi\u00f3n de Exim4 ya no se permiten los alias que conectan con procesos (<em>pipes<\/em>)<\/li>\n<li>Los alias de las listas de correo son gestionados por Sympa en un archivo especial del que Exim4 no tiene constancia inicialmente.<\/li>\n<\/ul>\n<p>Para el primer problema, y teniendo una configuraci\u00f3n fragmentada en Exim4, se a\u00f1aden las siguientes definiciones al archivo <code>\/etc\/exim4\/exim4.conf.localmacros<\/code>que crean un transporte para el enrutador <em>system_aliases<\/em><\/p>\n<pre class=\"lang:default decode:true\">#--------------                                                                                                                                                \r\n# Activating pipe transport in system_aliases router (pipes in \/etc\/aliases)                                                                                   \r\n.ifndef SYSTEM_ALIASES_PIPE_TRANSPORT                                                                                                                          \r\nSYSTEM_ALIASES_PIPE_TRANSPORT = address_pipe                                                                                                                   \r\n.endif                                                                                                                                                         \r\n.ifndef SYSTEM_ALIASES_USER                                                                                                                                    \r\nSYSTEM_ALIASES_USER = sympa                                                                                                                                    \r\n.endif                                                                                                                                                         \r\n.ifndef SYSTEM_ALIASES_GROUP                                                                                                                                   \r\nSYSTEM_ALIASES_GROUP = sympa                                                                                                                                   \r\n.endif                                                                                                                                                         \r\n#--------------<\/pre>\n<p>Luego a\u00f1adimos un nuevo enrutador para los alias de las listas en el archivo <code>\/etc\/exim4\/conf.d\/router\/450_local-config_sympa_aliases<\/code><\/p>\n<pre class=\"lang:default decode:true \">sympa_aliases:                                                                                                                                                 \r\n  debug_print = \"R: system_aliases for $local_part@$domain\"                                                                                                    \r\n  driver = redirect                                                                                                                                            \r\n  domains = +local_domains                                                                                                                                     \r\n  allow_fail                                                                                                                                                   \r\n  allow_defer                                                                                                                                                  \r\n  data = ${lookup{$local_part}lsearch{\/etc\/mail\/sympa\/aliases}}                                                                                                \r\n  user = sympa                                                                                                                                                 \r\n  group = sympa                                                                                                                                                \r\n  pipe_transport = address_pipe<\/pre>\n<p>&nbsp;<\/p>\n<h3>Situ\u00e1ndolo en un servidor virtual con Apache<\/h3>\n<p>La configuraci\u00f3n que me ha funcionado dentro de un servidor virtual es la siguiente:<\/p>\n<pre class=\"lang:apache decode:true\">&lt;VirtualHost *:443&gt;\r\n        ServerAdmin admin@empresa.net\r\n        ServerName  listas.empresa.net\r\n        Include \/etc\/apache2\/ssl.conf\r\n\r\n        LogLevel debug\r\n        ErrorLog        \/var\/log\/apache2\/listas.empresa.net\/error.log\r\n        CustomLog       \/var\/log\/apache2\/listas.empresa.net\/access.log Combined\r\n\r\n        &lt;Location \/sympa&gt;\r\n            SetHandler fcgid-script\r\n            Require all granted\r\n        &lt;\/Location&gt;\r\n\r\n        ScriptAlias \/sympa \/usr\/lib\/cgi-bin\/sympa\/wwsympa-wrapper.fcgi\r\n\r\n        &lt;Location \/sympasoap&gt;\r\n            SetHandler fcgid-script\r\n\r\n            Require all granted \r\n        &lt;\/Location&gt; \r\n\r\n        ScriptAlias \/sympasoap \/usr\/lib\/cgi-bin\/sympa\/sympa_soap_server-wrapper.fcgi \r\n \r\n        Alias \/static-sympa \/var\/lib\/sympa\/static_content \r\n        &lt;Directory \/var\/lib\/sympa\/static_content&gt; \r\n                Require all granted \r\n        &lt;\/Directory&gt; \r\n \r\n        ## Si todo el servidor virtual est\u00e1 dedicado a Sympa\r\n        RewriteEngine on \r\n        RewriteRule ^\/?$ \/sympa [R=301] \r\n&lt;\/VirtualHost&gt; \r\n<\/pre>\n<p>La parte m\u00e1s complicada de entender es que los programas web de Sympa necesitan acceder al mismo contenido que los programas de correo del programa, en las mismas condiciones. Apache funciona con <em>www-data<\/em> como cuenta mientras que Sympa lo hace con <em>sympa<\/em>. De ah\u00ed que sea necesario utilizar un programa envoltorio con el atributo <em>suid<\/em> para que llegue a funcionar.<\/p>\n<h3>Acceso de usuarios v\u00eda LDAP<\/h3>\n<p>Sympa tiene varios mecanismos para validar las credenciales de los usuarios que pueden usarse en cadena; todos se incluyen en el archivo <code>\/etc\/sympa\/auth.conf<\/code> en un orden espec\u00edfico para intentar.<\/p>\n<pre class=\"lang:default decode:true \">ldap\r\n        regexp                      .*\r\n        host                        ldap.empresa.net:389\r\n        timeout                     30\r\n        suffix                      ou=users,dc=empresa,dc=net\r\n        get_dn_by_uid_filter        (uid=[sender])\r\n        get_dn_by_email_filter      (|(mail=[sender])(mailalternateaddress=[sender]))\r\n        email_attribute             mail\r\n        scope                       sub\r\n\r\nuser_table\r\n        regexp .*\r\n<\/pre>\n<p>Como puede verse la primera y a veces \u00fanica directiva es una expresi\u00f3n regular que puede filtrar el tipo de mecanismo a emplear.<\/p>\n<h3>Personalizando interfaz web<\/h3>\n<p>Para el logotipo se puede emplear la directiva <em>logo_html_definition<\/em> en el archivo <code>\/etc\/sympa\/sympa\/sympa.conf<\/code><\/p>\n<pre class=\"lang:default decode:true \">logo_html_definition &lt;a href=\"http:\/\/listas.empresa.net\"&gt;&lt;img style=\"float: left; margin-top: 7px; margin-left: 37px;\" src=\"https:\/\/empresa.net\/images\/empresa-net-med.png\" alt=\"Listas de Venexma\" \/&gt;&lt;\/a&gt;\r\n<\/pre>\n<h3>Enlaces y referencias<\/h3>\n<ul>\n<li><a href=\"https:\/\/sympa-community.github.io\/manual\/\">Documentaci\u00f3n<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/sympa-community\/sympa-community.github.io\/blob\/master\/manual\/install\/configure-http-server-apache.md\">Configure HTTP server: Apache HTTP Server<\/a><\/li>\n<li><a href=\"http:\/\/www.kobelnet.ch\/Blog\/2013\/06\/05\/sympa_with_virtual_hosts_using_exim\">Sympa with virtual hosts in exim4<\/a><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8230; porque al final es un mecanismo casi universal de acceso a la informaci\u00f3n.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","webmentions_disabled_pings":false,"webmentions_disabled":false,"footnotes":""},"categories":[2],"tags":[25,221,17,44,682],"class_list":["post-2041","post","type-post","status-publish","format-standard","hentry","category-software","tag-email","tag-exim","tag-perl","tag-servicios-web","tag-sympa"],"_links":{"self":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts\/2041","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/comments?post=2041"}],"version-history":[{"count":14,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts\/2041\/revisions"}],"predecessor-version":[{"id":2748,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts\/2041\/revisions\/2748"}],"wp:attachment":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/media?parent=2041"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/categories?post=2041"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/tags?post=2041"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}