Objet : Pour les administrateurs de serveurs de listes utilisant le logiciel Sympa
Archives de la liste
RE: [sympa-fr] Changement d'adresses mail par lot
- 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
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
#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
#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)
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.
-
[sympa-fr] Changement d'adresses mail par lot,
BEAUQUIN Gaël, 20/06/2017
- RE: [sympa-fr] Changement d'adresses mail par lot, LALOT Dominique, 20/06/2017
Archives gérées par MHonArc 2.6.19+.