Accéder au contenu.
Menu Sympa

fr - RE: [sympa-fr] Changement d'adresses mail par lot

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

Archives de la liste

Chronologique Discussions  
  • From: LALOT Dominique <adresse@cachée>
  • To: "adresse@cachée" <adresse@cachée>
  • Subject: RE: [sympa-fr] Changement d'adresses mail par lot
  • Date: Tue, 20 Jun 2017 08:53:32 +0000

Bonjour


En 2012 lors de notre fusion, nous avions posé des custom conditions pour résoudre la transition des adresses mails. Les adresses mails sont dans le ldap dans plusieurs attributs.

C'est toujours en prod, et on n'a jamais eu de soucis. Bien entendu, on a corrigé aussi en base ensuite. Le problème c'est que tu ne sais pas quand les utilisateurs auront fini de changer leur client lourd. On se trouve donc à un moment donné avec les anciennes et les nouvelles adresses..

A+


Dom


Coté custom conditions, par exemple is_subscriber.pm:




Coté listes, les scénarios ont été repris, par exemple: etc/scenari/send.private

title.gettext Moderated, restricted to subscribers

CustomCondition::is_editor([listname],[sender])     smtp,dkim,smime,md5  -> do_it
CustomCondition::is_subscriber([listname],[sender]) smtp,dkim,smime,md5  -> editorkey
true()                             smtp,dkim,md5,smime  -> reject(reason='send_subscriber')



dans etc/custom_conditions/is_subscriber.pm

#!/usr/bin/perl
#use lib '/home/sympa/bin';
package CustomCondition::is_subscriber;
use strict;
use List;
use AMUSympa;
use Log; # optional : we log parameters

sub verify {
    my ($list_name,$sender) = @_;

    my $list = new List ($list_name);
    my @alternatemail=AMUSympa::alternate($sender);
    foreach my  $mail (@alternatemail){
#    do_log ('info', "TRACEDOM sender:  $sender -> $list_name $mail");
#       print "$list_name $mail\n";
        return 1 if $list->is_user($mail);
    }
#    do_log ('info', "TRACEDOM not subscriber");
    return -1;
}

## Packages must return true.
1;



et le package AMUSympa.pm


#!/usr/bin/perl
#use lib '/home/sympa/bin';
use Net::LDAP;

package AMUSympa;
use strict;

sub alternate {
my ($mail2check)=@_;
my @TMailsValides=($mail2check);

     return @TMailsValides if $mail2check!~/univmed.fr|univ-provence.fr|univ-cezanne.fr|univ-amu.fr/i;
     my $ldap = Net::LDAP->new(['ldap1','ldap2']) or return @TMailsValides;
     #my $ldap = Net::LDAP->new(['ldap1','ldap2']) or return;
     my $mesg = $ldap->bind('', version => 3 ) or return @TMailsValides;
     my $filter="(|(mail=$mail2check)(amumail=$mail2check)(amuoldmail=$mail2check))";
     $mesg = $ldap->search (  # perform a search
          base   => 'dc=univmed,dc=fr',
          filter => $filter,
          attrs => ['mail','amumail','amuoldmail'],
          scope => 'sub'
     );
#print $filter."\n";
    return if ($mesg->count ==0);
    my @entries= $mesg->entries;
    foreach my $entr (@entries){
           my $dn=$entr->dn;
           my $mail=$entr->get_value('mail');
           push @TMailsValides,$mail if defined $mail;
           my $amumail=$entr->get_value('amumail');
           push @TMailsValides,$amumail if defined $amumail;
           my $amuoldmail=$entr->get_value('amuoldmail');
           push @TMailsValides,$amuoldmail if defined $amuoldmail;
    }
    return @TMailsValides;
}

## Packages must return true.
1;






--
Dominique LALOT
Responsable Pôle Environnement Numérique
Direction Opérationnelle du Système d'Information (DOSI)
( Aix * Marseille Université
Coordonnées: http://annuaire.univ-amu.fr/personnel/detail/bGFsb3Q=

De : adresse@cachée <adresse@cachée> de la part de BEAUQUIN Gaël <adresse@cachée>
Envoyé : mardi 20 juin 2017 10:17:35
À : adresse@cachée
Objet : [sympa-fr] Changement d'adresses mail par lot
 

Bonjour,

 

Nous avons reçu une demande pour un changement d’un grand nombre d’adresses mail dû à un changement de domaine de messagerie. On a un tableau de correspondance ancienne adresse / nouvelle adresse, est-ce qu’il y a un moyen d’appeler la fonction do_change_email via le shell pour faire un traitement par lot ? Ou bien un autre moyen de faire du changement d’adresse utilisateurs en chaine ? Sympa 6.1.24 si ça change quelque chose.




Archives gérées par MHonArc 2.6.19+.

Haut de le page