Accéder au contenu.
Menu Sympa

fr - Re: [fr@sympa] Alias manager sur DB Mariadb

Objet : Pour les administrateurs de serveurs de listes utilisant le logiciel Sympa

Archives de la liste

Chronologique Discussions  
  • From: Benjamin Renard <adresse@cachée>
  • To: adresse@cachée
  • Subject: Re: [fr@sympa] Alias manager sur DB Mariadb
  • Date: Wed, 31 Jul 2024 14:50:20 +0200

Bonjour,

L'aliases_program n'est-il pas écrasé au niveau de la configuration du robot ? Par ailleurs, une fois la modification prise en compte il faudra peupler la table des alias avec la commande "sympa --make_alias_file". Ça peut-être assez long en fonction du nombre de listes et un peu bugué d'expérience (pour les listes "cachées" de mémoire). Dans ce cas, je préfère bricoler un ensemble de requêtes SQL qui fait l'équivalent en quelques secondes tout au plus :

Exemple complet avec un aliases_program légèrement adapté pour utiliser la configuration de sympa pour se connecter à la DB et une table "aliases" (cf. ci-joint) :

echo "  - create aliases MySQL table"
cat << EOF | mysql
sympa
DROP TABLE IF EXISTS \`aliases\`;
CREATE TABLE \`aliases\` (
  \`alias\` varchar(200) NOT NULL,
  \`domain\` varchar(80) NOT NULL,
  \`transport\` text NOT NULL,
  PRIMARY KEY (\`alias\`,\`domain\`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
EOF

echo "  - populate aliases table"
cat << EOF | mysql sympa
INSERT
        INTO aliases
        (alias, domain, transport)
        SELECT
                name_list AS alias,
                robot_list AS domain,
                CONCAT("sympa:", name_list, "@", robot_list) as transport
        FROM list_table
        WHERE status_list = "open"
EOF
for suffix in editor owner request unsubscribe
do
        [ "$suffix" == "owner" ] && transport="sympabounce" || transport="sympa"
        cat << EOF | mysql
sympa
INSERT INTO aliases
        (alias, domain, transport)
        SELECT
                CONCAT(name_list, "-$suffix") AS alias,
                robot_list AS domain,
                CONCAT("$transport:", name_list, "-$suffix@", robot_list) as transport
        FROM list_table
        WHERE status_list = "open"
EOF
done

Et au niveau postfix :

main.cf :
relay_domains = $mydestination, proxy:mysql:/etc/postfix/sympa_domains.mysql
relay_recipient_maps = proxy:mysql:/etc/postfix/sympa_aliases.mysql
transport_maps = proxy:mysql:/etc/postfix/sympa_aliases.mysql
sympa_destination_recipient_limit = 1
sympabounce_destination_recipient_limit = 1


master.cf :
sympa   unix  -       n       n       -       -       pipe
  flags=DRhu user=sympa argv=/usr/lib/sympa/bin/queue ${nexthop}
sympabounce     unix  -       n       n       -       -       pipe
  flags=DRhu user=sympa argv=/usr/lib/sympa/bin/bouncequeue ${nexthop}


/etc/postfix/sympa_domains.mysql :
user = postfix
password = secret
dbname = sympa
hosts = 127.0.0.1
query = SELECT domain FROM aliases WHERE domain = '%s' LIMIT 1;


/etc/postfix/sympa_aliases.mysql:
user = postfix
password = secret
dbname = sympa
hosts = 127.0.0.1
query = SELECT transport FROM aliases WHERE alias = '%u' AND domain = '%d';

Note : configuration fonctionnelle sur une installation de sympa 6.2.40 sur une Debian Buster (un peu vieux...).

Librement,

Le 31/07/2024 à 09:56, TISSOT Jacques a écrit :

Bonjour,

 

Je cherche et ne trouve pas suffisamment de documentation pour faire passer les alias sympa vers une base de données mariadb.

Je tourne une installation par paquet SYMPA 6.2.72 sur RedHat.

J’ai bien ajouté une table valias (alias varchar(255), domain varchar(255), valias_line varchar(255)) dans la db sympa et ajuster les paramètres de sympa.conf :

 

aliases_program     /usr/share/sympa/bin/mysql_alias_manager.pl

aliases_db_type     mysql

sendmail            /usr/sbin/sendmail

 

J’obtiens toujours les paramètres suivants :

 

nom du paramètre valeur s'applique à défaut

sendmail

/usr/sbin/sendmail

config principale

/usr/sbin/sendmail

sendmail_args

-oi -odi -oem

config principale

-oi -odi -oem

sendmail_aliases

/var/lib/sympa/sympa_aliases

localhost.localdomain

/var/lib/sympa/sympa_aliases

aliases_program

mysql_alias_manager

localhost.localdomain

newaliases

aliases_wrapper

on

localhost.localdomain

on

aliases_db_type

hash

localhost.localdomain

hash

alias_manager

/usr/sbin/alias_manager.pl

config principale

/usr/sbin/alias_manager.pl

 

Y a-t-il une doc complète d’une gestion des alias via une db mariadb (mysql) ?

 

Merci

 

Jacques Tissot

Université de Fribourg, Suisse

 

 

-- 
Benjamin Renard                  -                   Easter-eggs
44-46 rue de l'Ouest  -  75014 Paris   -   France -  Métro Gaité
Phone: +33 (0) 1 43 35 00 37   -  mailto:adresse@cachée

Attachment: mysql_alias_manager.pl
Description: Perl program




Archives gérées par MHonArc 2.6.19+.

Haut de le page