Richard Bruno
navigation
Home
admin









Sympa
October 18th, 2016

Table des matières



Erreurs
Script de surveillance des daemons
transport_regexp
Gestion des logs
Liens HTML et archives
Divers


Erreurs



Use of uninitialized value in sprintf at /usr/lib/perl/5.10/Sys/Syslog.pm line 365

Ce message apparaît lors de l'exécution du script perl /usr/lib/sympa/bin/sympa.pl

Solution : Rajouter les options "-U -X" en début de fichier (cf shebang) :

# more /usr/lib/sympa/bin/sympa.pl
#! /usr/bin/perl -U -X
# sympa.pl - This script is the main one ; it runs as a daemon and does
[...]



Source : http://comments.gmane.org/gmane.mail.sympa.user/585

Script de surveillance des daemons



# cat /root/monitor_sympa.sh
#!/bin/bash
pidfile=/var/run/sympa/sympa.pid
pidfile_distribute=/var/run/sympa/sympa-distribute.pid
pidfile_creation=/var/run/sympa/sympa-creation.pid
pidfile_bulk=/var/run/sympa/bulk.pid
archived_pidfile=/var/run/sympa/archived.pid
bounced_pidfile=/var/run/sympa/bounced.pid
task_manager_pidfile=/var/run/sympa/task_manager.pid

RESTART=0

A=$(pgrep -f sympa.pl)
B=$?; if [ "$B" != 0 ]; then RESTART=1;echo deamon sympa.pl absent; fi

A=$(pgrep -f archived.pl)
B=$?; if [ "$B" != 0 ]; then RESTART=1;echo deamon archived.pl absent; fi

A=$(pgrep -f task_manager.pl)
B=$?; if [ "$B" != 0 ]; then RESTART=1;echo deamon task_manager.pl absent; fi

A=$(pgrep -f bounced.pl)
B=$?; if [ "$B" != 0 ]; then RESTART=1;echo deamon bounced.pl absent; fi

A=$(pgrep -f bulk.pl)
B=$?; if [ "$B" != 0 ]; then RESTART=1;echo deamon bulk.pl absent; fi

if [ "$RESTART" = "1" ]; then

echo relance sympa
/etc/init.d/sympa stop
sleep 3s
# verification des fichiers pid
[ -f $pidfile ] && rm -f $pidfile
[ -f $pidfile_distribute ] && rm -f $pidfile_distribute
[ -f $pidfile_creation ] && rm -f $pidfile_creation
[ -f $pidfile_bulk ] && rm -f $pidfile_bulk
[ -f $archived_pidfile ] && rm -f $archived_pidfile
[ -f $bounced_pidfile ] && rm -f $bounced_pidfile
[ -f $task_manager_pidfile ] && rm -f $task_manager_pidfile
/etc/init.d/sympa start


fi
#



transport_regexp



Sympa version 6.1.1 - Debian wheezy

version 1

pb : les mails adressés aux comptes locaux sont interceptés par sympa via les règles de transport.
Comme il n'existe pas de listes qui correspondent, l'envoi du mail échoue.
Message d'erreur obtenu : "list root does not exist"

Solution : je modifie les règles de transport qui deviennent

cat /etc/sympa/transport_regexp
/^mailer-daemon@listes.domaine.fr$/ local:
/^postmaster@listes.domaine.fr$/ local:
/^root@listes.domaine.fr$/ local:
/^.*-owner@listes2.domaine.fr$/ sympabounce:
/^.*@listes.domaine.fr$/ sympa:



Ainsi, les mails adressés à mailer-daemon, postmaster ou root sont traités en local.

Doc sur la config de postfix avec sympa : http://www.sympa.org/faq/postfix_howto

version 2

la solution ci-dessus me pose problème : j'ai besoin de créer des alias particuliers pour la continuité ancienne - version nouvelle version et les règles de transport_regexp ne sont pas particulièrement fines : tout est renvoyé vers sympa ou vers sympa_bounces.
En conséquence,
je configure postfix sans transport_regexp
je configure postfix pour aller chercher les alias dans deux tables. Une table gérée par postfix (/etc/aliases, droits à root) et une autre pour sympa (/etc/mail/sympa/aliases, droits à sympa)

Gestion des logs




Sympa facility
Par défaut aucune facility n'est définie =>

# echo local1 > /etc/sympa/facility
# cat /etc/sympa/facility
local1




Modification de rsyslog

# cat /etc/rsyslog.d/sympa.conf
local1.=debug -/var/log/sympa/sympa.debug
local1.=info;local1.=notice;local1.=warning /var/log/sympa/sympa.log
local1.err /var/log/sympa/sympa.err



plus une légère modification de rsyslog.conf (la facility local1 n'est plus envoyée dans /var/log/syslog) :

[...]
#*.*;auth,authpriv.none -/var/log/syslog
!local1.*;auth,authpriv.none -/var/log/syslog
[...]



On peut faire de même pour www-sympa en envoyant les logs sur local0 (cf wwsympa.conf)

Liens HTML et archives



Avec Sympa 6.0.1, les liens contenus dans les mails codés en HTML (il n'y a pas de pb avec les mails en texte simple) continuaient d'être cliquables dans les archives.
Ce n'est plus le cas avec Sympa 6.11.1.

Le changement se situe dans le fichier /usr/share/lib/lib/tools.pm :

sub _create_xss_parser {
my %parameters = @_;
&do_log('debug3','tools::_create_xss_parser(%s)',$parameters{'robot'});
my $hss = HTML::StripScripts::Parser->new({ Context => 'Document',

AllowSrc => 1,
Rules => {
'*' => {
src => '^http://'.&Conf::get_robot_conf($parameters{'robot'},'http_host'),
},
},
});


return $hss;
}



vs pour la 6.0.1

sub _create_xss_parser {
my %parameters = @_;
&do_log('debug3','tools::_create_xss_parser(%s)',$parameters{'robot'});
my $hss = HTML::StripScripts::Parser->new({ Context => 'Document',

AllowSrc => 1,
AllowHref => 1,
AllowRelURL => 1,
EscapeFiltered => 1,
Rules => {
'*' => {
src => '^http://'.&Conf::get_robot_conf($parameters{'robot'},'http_host'),
},
},
});


return $hss;
}



Des explications concernant les différentes à rajouter ou non sont disponibles ici : http://search.cpan.org/~drtech/HTML-StripScripts-1.05/StripScripts.pm


Note : les mails codés uniquement en texte ne sont pas impactés

La modification ci-dessus ne semble pas suffisante : les archives créés à partir de mails codés en HTML ne sont pas propres (balises apparentes par ex).

=> Je modifie le script archived.pl (cf lignes commentées ci-dessous) pour désactiver les modifications du HTML effectuées avant le passage de monharc

sub clean_archived_message{
my $params = shift;
&do_log('debug',"Cleaning HTML in archived file '%s/%s' (overwrite: %s).",$params->{'path'},$params->{'file'},$params->{'overwrite'});

my $filtered_file;
if ($params->{'overwrite'}){
$filtered_file = $params->{'path'}.'/'.$params->{'file'};
}else{
$filtered_file = $Conf::Conf{'tmpdir'}.'/'.$params->{'file'};
}
my $file_to_archive = $params->{'path'}.'/'.$params->{'file'};
if (my $msg = new Message($file_to_archive,1">{
# if($msg->clean_html(">{
if(open TMP, ">$filtered_file") {
print TMP $msg->{'msg'}->as_string;
close TMP;
$file_to_archive = $filtered_file;
}else{
&do_log('err','Unable to create a tmp file to write clean HTML to file %s',$filtered_file);
return undef;
}
# }else{
# &do_log('err','HTML cleaning in file %s failed.',$file_to_archive);
# return undef;
# }
}else{
&do_log('err','Unable to create a Message object with file %s',$file_to_archive);
return undef;
}
return $file_to_archive;
}




Divers



Changement de listmaster

Attention après avoir changé de listmaster (fichier /etc/sympa/sympa.conf), il ne faut pas oublier de relancer sympa ET apache...

Ajouter les alias pour une liste

Il est possible de regénérer les alias du fichier sympa_aliases pour une liste particulière :

alias_manager add ma_liste listes.univ-lemans.fr





Dernières modifs
VNC (November 22nd, 2020)
Editeurs (October 20th, 2016)
Awk (October 18th, 2016)
Claws Mail (October 18th, 2016)
Cups (October 18th, 2016)
Gimp (October 18th, 2016)
Git (October 18th, 2016)

Contact
Pour m'envoyer un mail,
Pour me laisser un commentaire :
richard.brunooo
chez
gmail.com


powered by kure, modified by Bruno