sympa.conf parameters

!
" #
$
%&'()*+
,- " .
/
)*+$
0 1
".
"#.
2
133 3
334" . 5
2
133 3
334" # .3 5
,2
133 3
335
&
)
)
(
+
)0
%
'
,
,
)
-
-
6
78
76
8
)
798
'
7:
8
7
8
;
1 sur 189
;
)<
<
;
))=
6<)=
!=;>
6
(
6
;=;&
!
!
;
)=
*
)
,
6
'
'
'
'6%
6
(
?
$
@
2 sur 189
,
A
A
A
A
AAA
ABA@ A@"
A
A-
A
A
A
A
A
A
A
A$A,
A
A
A
A
A
A
A
A
AAA
#
*
A
A
A
-
-A
A
$
A
A
$A,
A
3 sur 189
AA$
A
A
A
#.CDAA-
A
A
A
A$AAAA
AA-
AA
AAE$
,AA,
F
AA<
AA<
<
<
<
<
<
<
<
<
<
<
AA<
AA<
AA<
AA<
AA<
AA<
AA<
AA<
AA<
AA
.
;
,
4 sur 189
A
AA
-
A
9
A
A
A
A
A
A
AE$
$AA
AAA
AA
AA
AA
AA
A
AA@A
AA#A
AA-$
AA
A
A
AA
&
A
A-
A
A
<
A
A
A
A
*
AA-A
A
A
A
A
A
A
A
A
A
A
AA-
A
AA-
AA
A
AA
A
A$
A
AA
A
5 sur 189
A
A
AA
A
A
A
(
AA$
AAA
AAA
A
A$
3';':-
-
A
4
A
A
A
)<
;
):6(
*
9
*
*
*
;
;
$
-
;
-
'
:$
-
G
G
,
;
;
$
!+
H;
6 sur 189
A
A
A$
4
A-
A
A-
A$
A
A
A
A
A
IA
I
@IA
ABI@
*
-
(
+
'%
-
6
;
;
,
;
,
&
*-4-
&
%
6
6
A
A
A
AA
7 sur 189
)
)
;
!
" .
?" J
&
&*(
4
K
$
3';':%&&)
H
4
A
A
G
)
,
,
(
-
6
6-
=+
(*)=+
*-
F(=+
*-
9
)
8 sur 189
%-
?
%
?
,
'
;
;
6
G
'
'L
*
M
(
,
,3
&
-
'
-
- #
#
A #
A
A #
-
,
-
A
A
M
!
!
;
,
,
(
,
!
,
&
9 sur 189
,
(
&
'
-
'
-
'
(
-
-
:$-
-
-
;-
%-
*
-
(
-
#
#
#
0
#
#
#
#
A #
-
(
-
$ '
(
(
(
*
>'(-
(
(
(
&
-
(
6
10 sur 189
(
+
(
+
!
*-
;
'-
6
'
:
$
-'&
*-
-
(
-
(
-
(
-
(
1-
0
A
A
A
A
3
A$A,
AA
AA
A
A
AAA
11 sur 189
A
A
A
A
A
A
#.CDAA-
A
A
A
A0
A
)
A
A
A
A
9
9
A@
A#
A
A
A
A
A
*
*
A
A
A
A
A
AA
12 sur 189
A<A<
AA<
AA#A<
A-
A
A-
A
$A
(
$A,
A
A$
A
A
AAA
6
'
'
-
'
'
3
&
&
-
&-
,
&
-
A #
A
#
9
9
?:6)
13 sur 189
6+
!
(*)
!
(*)
3';':%&&)
3';':%&&)
!3';':
!3';':
3-
;
'
-
-
-
,3';':
'
-
A
A$
A
!
!
!
'
)
:
;
;
<
7
4
8 &
N
;
;
-
,
-
$
,
14 sur 189
'&)From3';':
$
(*)
F(
;-
E
1
#BBBB
<
C
D"
O
7
.BB'%,#"C'9.PC
($8
&
-
7" . @B8
2
133 5
/
H=!H)(?#
2
133 3
3 5
<
<
&
1
!
;
,
1
'&) <)
-$
$'&)
G
/
&3
78
, &
)-/
"
! :
,
""#
/
$% ';':
-
-$
';':
+$
&
'&
&' 7=
'&
8/
& 4
&
-
N
private
-privateoreditorkey
7 48
<
+
N
&-
7
8-( 15 sur 189
-
,
#B--
7:$1
<
,
8/
7
8
-
config-
-
/etc/sympa.conf-
-7
-
8 )
ADDDELETEREVIEW
<3';':
/
Q9R'6R1A
S)!1
7
8 ;
1
-
$
7
8
7-
8
%&'(
,
3
7
8
7
-
8/
&
G
*+1
@ $
$
-
&
0
&
&):6(
);
DBI3DBD
6*9'7'F(F(
)
F(8 &
/
,
1
,
7?
8/
*! 14
F(<(*)
;
&&(7&&(8
7
44<8/
*1
(*)*
$
(*)
TU
7
8/
1$
'3+3?)&'3?
7
8/
$
!!
&
4
T
9
U
- 0
1
&
0
)
+
0
16 sur 189
@DD" &
&!()
1
=
<
&!()0
&
L$
0
;
-
1
'@DDD;
7'F(8-
$
76*9'(*)8
@DDD
,
+#BBB
#BBB
'#BBB(
K#BB@
3';':7
8
+
%&'(
K#BB@
4
K#BB#?
(*)
#BB.
#BB.4
4
*#BB.)
#BBJ&&#
)
#BB"%&'(
>%&'(V6
;
sympa-authors(@)cru.fr
&4
2
133
33
3
<351
sympa-users(@)cru.fr
sympa-fr(@)cru.fr+4
sympa-announce(@)cru.fr
sympa-dev(@)cru.fr
sympa-translation(@)cru.fr
&0
sympa(@)cru.fr1
subscribe
7
-
8
2
133 5/
-
2
133 3
3
5
+F
:
17 sur 189
.(
%
&
-
--
&
-
=
-,
-
/home/sympa
&
-
$
-
-
/home/sympa/bin
&
H; ;
,
-
-
/home/sympa/bin
make install
,
,
/home/sympa/bin
/home/sympa/bin/etc
%
-/home/sympa/etc7
,
-
-,3'
-
8
/home/sympa/etc
&
G-
/home/sympa/bin/etc
/home/sympa/etc/create_list_templates/
(
7
8
/home/sympa/etc/scenari/
&
,
;G
,
,
&
,
/home/sympa/etc/my.domain.org/scenari/
/home/sympa/expl/mylist/scenari-
/home/sympa/etc/data_sources/
&
-7*
-8 -
<owner_includeeditor_include
--
/home/sympa/etc/list_task_models/
&
7
,
8
/home/sympa/etc/global_task_models/
7
,
8
/home/sympa/etc/web_tt2/7
/home/sympa/etc/wws_templates/8
&
78
%&'(-
H; &
-
/home/sympa/expl/mylist/web_tt2/
/home/sympa/etc/my.domain.org/web_tt2/
/home/sympa/etc/mail_tt2/7
/home/sympa/etc/templates/8
G-
7welcome.tt2!96;9:8 -
18 sur 189
/home/sympa/etc/families/
7'
8 +
/home/sympa/etc/my.domain.org/families/
/home/sympa/etc/my.domain.org
&
-
7
/home/sympa/expl/my.domain.org8 &
/home/sympa/etc
-
/home/sympa/expl
G
/home/sympa/expl/mylist
&
7
'
-
8 (
- -
/home/sympa/expl/my.domain.org/mylist
/home/sympa/expl/X509-user-certs
&
G
-
/home/sympa/locale
;
,
;
H=! /home/sympa/spool
DN
78
/home/sympa/src/
sympa.pl
&/
msg/
sympa_wizard.pl
,
sympa.confwwsympa.conf '
-
$
wwsympa.fcgi
&H;N
;
H;
+
H;
+
H;
@B
bounced.pl
&748 (
bounce/
archived.pl
&
%&'(
;
,MhOnArc outgoing/
task_manager.pl
&
1
$
;
task/
sympa_soap_server.fcgi
&)78<
&<+
H;/
%&&)-
19 sur 189
queue
&
msg/
bouncequeue
queue bounce/
/00
/etc/sympa.conf
&-
- /etc/wwsympa.conf
-
- edit_list.conf
*-
3-
(
topics.conf
G
7-
8
sample/
&
auth.conf
*-
,
7(*)4
4
8
robot.conf
;
sympa.conf-?
7?
8
Q9R'6R1
Snrcpt_by_domain
&-
'&) ;)
0
;
N
'&)
'& &-
&-
$
'&) :$1
yohaa.com 3
oal.com 5
data_structure.version
&-
;
ldap_alias_manager.conf
&--
(*)
ldap_alias_manager.pl
-
sympa.conf
/home/sympa/spool/auth/
+
- +
sympa.pl
/home/sympa/spool/bounce/
+
+
bouncequeue7
20 sur 189
8
bounced.pl
/home/sympa/spool/bounce/bad/
+
-
+
bounced.pl
/home/sympa/spool/bounce/OTHER/
G
+
bounced.pl
/home/sympa/spool/digest/
+
+
sympa.pl
/home/sympa/spool/mod/
+
+
sympa.pl
sympa.plwwsympa.fcgi
/home/sympa/spool/msg/
+
78 +
queue7
8
sympa.pl
/home/sympa/spool/msg/bad/
0
+
sympa.pl
/home/sympa/spool/distribute/
+
&
#sympa.pl
/home/sympa/spool/distribute/bad/
0
+
sympa.pl
/home/sympa/spool/task/
+
+
task_manager.pl
/home/sympa/spool/outgoing/
sympa.pl
archived.pl wwsympa.fcgi
-
/home/sympa/spool/outgoing/bad/
+
G
+
archived.pl
/home/sympa/spool/topic/
+
-
/home/sympa/spool/tmp/
+
L$
4
7
-
8
N
/
7
8
7
8
78
&
-
sympa.conf- &
21 sur 189
76
8
-N
7
robot.conf-8 &
7
-
8
!-
(
7
-
8
)
&-
-
<
(
$
&
78
7
8 G
78/
,
edit-list.conf
-
798
&
-
78-
--
'
7:
8
'
7
8 '
;
-
7
8
/
7(*)F(
8 &
7
nomail
8
7
8 '
$
4
,
78
:
1
sympa.pl
/
sympa.pl,
1
– add_list familyname - - robot robotname - - input_file
/path/to/list_file.xml
>'(-
1
– close_family familyname - - robot robotname
1(
– close_list listname@robot
22 sur 189
7
87sendmail_aliases
8*97
8 $
1(
– close_unknown
– config config_fileI-f config_file
+
-
- &
-
--
Makefile7$CONFIG8
– create_list – robot robotname - - input_file /path/to/list_file.xml
$-1(
– debugI-d
*
&*:66
:
!
– dump listname
| ALL
*
subscribers.db.dump
– helpI-h
)
– import listname
;
*
&*;=
– instanciate_family familyname robotname - - input_file
/path/to/family_file.xml
;
(
– keepcopy recipient_directoryI-k recipient_directory
&
– lang catalogI-l catalog
&
-
~sympa/locale
– lowercase
(4
– mailI-m
!
7-
8
– make_alias_file
-/tmp/
7
GG8 ;
A #
– modify_list familyname - - robot robotname - - input_file
/path/to/list_file.xml
'-
$
>'(- 1'
–quiet
&*!&
– reload_list_config - -list=mylist@dom
6
configbin- ,
&
list
serviceII
7A8
23 sur 189
7A8
<
7A
8
– sync_include listaddress
&
$
– upgrade - - from=X - -to=Y
6
>
– versionI-v
)
$2$"
&make install
?
/etc/rc.d/init.d/
7
configure
-with-initdir
8 'F( =
'F(
wwsympa.fcgi
&
1sympa.pltask_manager.plarchived.plbounced.pl
4&:6'
sympa.pl7kill -TERM8
7
8 ;kill -TERMsympa.pl
;
sympa.pl
4%!)
sympa.pl7kill
-HUP8
-mail
:
3 ,
7
-
,
8
7*9
)=
8
!
1
@ # . 1
./configure ; make ; make install
J 24 sur 189
sympa.pl --upgrade
G
W&
<*97'F(8
-
-<
$!
=
-$,
NEWS-
,7
Changelog
-
-?8
+$
" . J
'F(J @
4
0
0$
&
<
1
" @7
#BB"8>%&'(
/
J #.7
#BBJ8
&&#
/
J B"7
#BB.8auth.conf7
-8/
. . C#7'#BB#8
user_data_source#
&-NEWS
<
-
GXXXXXG make install
make install1
You are upgrading from Sympa 4.2
You should read CAREFULLY the changes listed below; they might be incompatible changes:
<RETURN>
*****
require new perlmodule XML-LibXML
*****
*****
*****
*****
*****
*****
*****
*****
*****
*****
*****
*****
*****
*****
*****
*****
*****
You should update your DB structure (automatically performed by Sympa with MySQL), adding the following
CREATE TABLE admin_table (
list_admin
varchar(50) NOT NULL,
user_admin
varchar(100) NOT NULL,
role_admin
enum('listmaster','owner','editor') NOT NULL,
date_admin
datetime NOT NULL,
update_admin
datetime,
reception_admin
varchar(20),
comment_admin
varchar(150),
subscribed_admin
enum('0','1'),
included_admin
enum('0','1'),
include_sources_admin
varchar(50),
info_admin
varchar(150),
profile_admin
enum('privileged','normal'),
PRIMARY KEY (list_admin, user_admin,role_admin),
INDEX (list_admin, user_admin,role_admin)
);
*****
Extend the generic_sso feature; Sympa is now able to retrieve the user email address in a LDAP directory
<RETURN>
/2 25 sur 189
&
<
)7)=8
make
+
make1
Checking for REQUIRED modules:
-----------------------------------------perl module
from CPAN
STATUS
-----------------------Archive::Zip
Archive-Zip
OK (1.09
CGI
CGI
OK (2.89
DB_File
DB_FILE
OK (1.806
Digest::MD5
Digest-MD5
OK (2.20
FCGI
FCGI
OK (0.67
File::Spec
File-Spec
OK (0.83
IO::Scalar
IO-stringy
OK (2.104
LWP
libwww-perl
OK (5.65
Locale::TextDomain
libintl-perl
OK (1.10
MHonArc::UTF8
MHonArc
version is
>>>>>>> You must update ''MHonArc'' to version
Setting FTP Passive mode
Description:
Install module MHonArc::UTF8 ? n
MIME::Base64
MIME-Base64
OK (3.05
MIME::Tools
MIME-tools
OK (5.411
Mail::Internet
MailTools
OK (1.60
Regexp::Common
Regexp-Common OK (2.113
Template
Template-ToolkitOK (2.13
XML::LibXML
XML-LibXML
OK (1.58
>= 1.05)
>= 2.52)
>= 1.75)
>= 2.00)
>= 0.67)
>= 0.8)
>= 1.0)
>= 1.0)
>= 1.0)
too old ( < 2.4.6).
'''' <<<<<<.
>= 3.03)
>= 5.209)
>= 1.51)
>= 1.0)
>= 1.0)
>= 1.0)
Checking for OPTIONAL modules:
-----------------------------------------perl module
from CPAN
STATUS
-----------------------Bundle::LWP
LWP
OK (1.09
>= 1.09)
Constant subroutine CGI::XHTML_DTD redefined at /usr/lib/perl5/5.8.0/constant.pm line 108, <STDIN> line 1.
CGI::Fast
CGI
CGI::Fast doesn't return 1 (check it).
Crypt::CipherSaber
CipherSaber
OK (0.61
>= 0.50)
DBD::Oracle
DBD-Oracle
was not found on this system.
Description: Oracle database driver, required if you connect to a Oracle database.
Install module DBD::Oracle ?
*! 6*9'7'F(F(
)8
- ;sympa.pl
;'F(
-
7
8
*9
-E
;
'F(
*9-
sympa.confE
NEWS-7
3
8
1
Table
Field
Field
Field
Field
Field
Field
Field
Field
Field
admin_table created in database sympa
'comment_admin' (table 'admin_table' ; database 'sympa') was NOT found. Attempting to add it...
comment_admin added to table admin_table
'date_admin' (table 'admin_table' ; database 'sympa') was NOT found. Attempting to add it...
date_admin added to table admin_table
'include_sources_admin' (table 'admin_table' ; database 'sympa') was NOT found. Attempting to add it...
include_sources_admin added to table admin_table
'included_admin' (table 'admin_table' ; database 'sympa') was NOT found. Attempting to add it...
included_admin added to table admin_table
'info_admin' (table 'admin_table' ; database 'sympa') was NOT found. Attempting to add it...
26 sur 189
Field info_admin added to table admin_table
Field 'list_admin' (table 'admin_table' ; database 'sympa') was NOT found. Attempting to add it...
Field list_admin added to table admin_table
Field 'profile_admin' (table 'admin_table' ; database 'sympa') was NOT found. Attempting to add it...
Field profile_admin added to table admin_table
Field 'reception_admin' (table 'admin_table' ; database 'sympa') was NOT found. Attempting to add it...
Field reception_admin added to table admin_table
Field 'role_admin' (table 'admin_table' ; database 'sympa') was NOT found. Attempting to add it...
Field role_admin added to table admin_table
Field 'subscribed_admin' (table 'admin_table' ; database 'sympa') was NOT found. Attempting to add it...
Field subscribed_admin added to table admin_table
Field 'update_admin' (table 'admin_table' ; database 'sympa') was NOT found. Attempting to add it...
Field update_admin added to table admin_table
Field 'user_admin' (table 'admin_table' ; database 'sympa') was NOT found. Attempting to add it...
Setting list_admin,user_admin,role_admin fields as PRIMARY
Field user_admin added to table admin_table
&
sympa.pl -upgrade
/data_structure.version
1
sympa.pl --upgrade --from=4.1 --to=5.2
(
-
-7
8
/home/sympa/bin
;
,
--
/home/sympa/etc
;
,
&
9
&
./configure %
./configure
1
./configure --prefix=/home/sympa-dev \
--with-confdir=/home/sympa-dev/etc \
--with-mandir=/home/sympa-dev/man \
--with-initdir=/home/sympa-dev/init \
--with-piddir=/home/sympa-dev/pid
--with-lockdir=/home/sympa-dev/lock \
--with-sendmail_aliases=/home/sympa-dev/etc/sympa_aliases
,
/home/sympa-dev/etc/sympa.conf-
;
1homedb_namearc_path
27 sur 189
;G
-
&
&
<
1
;'F(0
mysqld
/var/lib/mysql/sympa/
/
/home/sympa/expl
-/
/
/etc/sympa.confwwsympa.conf -
/etc/sympa.conf7 8
,
W
;
$
;
$
1
@ /
# /
. /data_structure.version
/
L
/
J T 4U
:
'<sympa.pl
'
'&7sendmailqmailpostfixexim8G
;sendmail
-
smrsh
# grep smrsh /etc/mail/sendmail.mc
FEATURE(`smrsh', `/usr/sbin/smrsh')dnl
/etc/smrsh
&G
/etc/smrsh
&
–with-bindir
Gconfigure1
./configure --with-bindir=/etc/smrsh
!
1
28 sur 189
78
'&) '&)
queue7
8
&sympa.pl
<
7
8
&
7
<
8
<
&
sendmail-7
/etc/aliases81
sympa: "| /home/sympa/bin/queue [email protected]"
listmaster: "| /home/sympa/bin/queue [email protected]"
bounce+*: "| /home/sympa/bin/bouncequeue [email protected]"
abuse-feedback-report: "| /home/sympa/bin/bouncequeue [email protected]"
sympa-request: postmaster
sympa-owner: postmaster
=
1
sympa
7?
8
sympa-request
7postmaster(@)cru.fr8
sympa-owner
&VX
?:6)7
8
;
welcome_return_path uniqueremind_return_path unique
verp_rate
&abuse-feedback-report
6+
76
+8
;
(
*G
newaliases
/etc/aliases-W
=
1listserv7
sympa8
-
listservmajordomo +$1
listserv:
listserv-request:
majordomo:
listserv-owner:
sympa
sympa-request
sympa
sympa-owner
+
$7
8 ;
78
+$
mylist
1
mylist:
mylist-request:
mylist-editor:
mylist-owner:
|/home/sympa/bin/queue [email protected]
|/home/sympa/bin/queue [email protected]
|/home/sympa/bin/queue [email protected]
|/home/sympa/bin/bouncequeue [email protected]
29 sur 189
mylist-subscribe:
mylist-unsubscribe:
|/home/sympa/bin/queue [email protected]
|/home/sympa/bin/queue [email protected]
&mylist-request
mylist7
8 mylist-request
mylist-
/home/sympa/expl/mylist/config- !
-
mylist-editor
-
/home/sympa/expl/mylist/config &-
&mylist-owner
4
7
-ownerE$
,
E$ &bouncequeue
queuebounce
7
8
,
&mylist-subscribe
$
91
-
&mylist-unsubscribe
<
9
W
&alias_manager.pl
;
&N
7ldap_alias_manager.pl$8
alias_manager 7A8
&
$
1
@
#
.
addIdel
<
>
<
>
:$1
/home/sympa/bin/alias_manager.pl add mylistcru.fr
/home/sympa/bin/alias_manager.pl
-7-sympa.conf8
sendmail_aliases7
/etc/mail/sympa_aliases8 -sendmail.mc781
define(`ALIAS_FILE', `/etc/aliases,/etc/mail/sympa_aliases')dnl
=
sendmail<
sympa_aliases
sympa_aliases.db-7
newaliases8 -
/home/sympa/bin/alias_manager.plnewaliases7aliaswrapper8
-
30 sur 189
;
,
list_aliases
7
A #8
=
'&
)
-$G
virtual_transport &
sendmail_aliases
none
('
ldap_alias_manager.pl
(*) &
&
$
)9
9
& ,
(*)
ldap_alias_manager.conf-
,
sendmailpostfix
[email protected]
4/etc/aliases
-
<
$
)
-$
/etc/postfix/virtual.regexp-1
/^(.*)@my.domain.org$/ my.domain.org-$1
:
GG-
1
my.domain.org-sympa:
[email protected] .....
my.domain.org-listA:
/home/sympa/bin/queue
/home/sympa/bin/queue [email protected]
/etc/mail/virtusertable-1
@my.domain.org my.domain.org-%1%3
:
1
&/etc/sympa.conf-
-
4
;
-
&/etc/sympa.conf-
1
!
#
:
&
-
4
@
,
31 sur 189
A
A
A
A
AAA
ABA@ A@"
A
A-
A
A
A
A
A
A
A
A$A,
A
A
A
A
A
A
A
A
AAA
4
#
*
A
A
A
-
-A
A
$
A
A
$A,
A
AA$
32 sur 189
A
A
A
#.CDAA-
A
A
A
A$AAAA
AA-
AA
AAE$
,AA,
F
AA<
AA<
<
<
<
<
<
<
<
<
<
<
AA<
AA<
AA<
AA<
AA<
AA<
AA<
AA<
AA<
AA
4
.
;
,
A
33 sur 189
AA
-
A
9
A
A
A
A
A
A
AE$
$AA
AAA
AA
AA
AA
AA
A
AA@A
AA#A
AA-$
AA
A
A
AA
&
A
A-
A
A
<
A
A
A
A
*
AA-A
A
A
A
A
A
A
A
A
A
A
AA-
A
AA-
AA
A
AA
A
A$
A
AA
A
A
A
AA
A
34 sur 189
A
A
(
AA$
AAA
AAA
A
A$
3';':-
-
A
4
A
A
A
4
@
:
1
&/etc/sympa.conf-
-
4
;
-
&/etc/sympa.conf-
1
!
#
:
&
-
(
& ;
From:
<
'&)7<
-$
8
,
&host
,
:$1
domain cru.fr
7*
1sympa8
35 sur 189
!7
@8
From:
<
:$1
email listserv
&
7
,
8
(
-
:$1
listmaster [email protected],[email protected]
A
7*
1listmaster8
!7
Y8
&
7
$8
;
+$
1
listmaster listmaster-test
1
listmaster-test: | /home/sympa/bin/queue [email protected]
6
A
7*
1http://host/wws8
&
!6(
:$1
wwsympa_url https://my.server/sympa
A
&
!6(G) G*(
!6(
:$1
36 sur 189
soap_url http://my.server/sympasoap
A
7*
1javascript8
&
?
spam_protectionweb_archive_spam_protection
)1
0
1
0
!K
1
UYU
T&U
1
AAA
7*
1cookie8
&spam_protection
1
cookie
&
ABA@
A@"
&
-
&
-
-
&
&
$
A$
,
-
1dark_color
light_colortext_colorbg_colorerror_colorselected_colorshaded_color
&
" @
style.css
print.cssprint-preview.cssfullPage.css
"
A
=
A
A-
&
%&'(
&
,
:$1
logo_html_definition <a href=''http://www.mycompany.com''><img style="float: left; margin-top: 7px; margin-left: 3
37 sur 189
#-
.
-
7
$
8
!6(
AA
A
A@A
AA
A
A@A
AA
A
A@A
6
@#.
$1
main_menu_custom_button_1_title faq
main_menu_custom_button_1_url http://www.cru.fr/faq/universalistes/index
main_menu_custom_button_1_target help
A
)4-7
G
-8
&
-
;
robot.conf-
css_path
&
TU
- ;
-
-
css_url
&
9
T;
U
-
css_url
sympa.pl
/0
css.tt21" ( /0
1
A
9
-style.cssprint.cssprint-preview.cssfullPage.css
css !6(
GG
133 333
GG -
css.tt2 &
-
-
;
-
&
-
&
css_url
&
!6(
style.cssprint.cssprint-preview.cssfullPage.css
-
;
-
1
@ --
A
!6(-A/
# -
-
-
38 sur 189
A
A
7*
1{Sympa
install directory}/static-content8
%&&)78
;
static_content_dir
&
G
(
&
sympa.pl
&
-
robot.conf
A
A
7*
1/static-sympa8
-
static_content_url
%&&)
!6(-static_content_url -
&
-robot.conf
A
7*
1off8
:$1
pictures_feature on
7
G
G8
&
-
=&
;
,
edit-list.conf-
)
-
static_content_path
A$A,
&$,
-7
8
&
'*"
;
N
;
&
sympa.conf
sympa
=
%&&)
G
>"BD
&
sympa.pl
cookie
:$1
39 sur 189
cookie gh869jku5
A
7*
1public_listmaster8
&create_list
-
,
7
,
8
*-
7<
8 ,
:$1
create_list intranet
A
A
7*
1off”
:$1
automatic_list_feature on
;
on
7
8
A
A
7*
1none8
&automatic_list_creation
-
,
7
,
8
;automatic_list_feature
7
,
8
-
A
A
7*
1
:$1
automatic_list_feature if_empty
;
if_empty
0
7
8
A
7*
1listmaster8
40 sur 189
&global_remind
,
7
,
8
*-REMIND
*
AAA
7*
1on8
;
TNU
7
8
N
TU
:
1
*
7*
1333$8
&
N
:$1333$
7*
1/home/sympa/etc8
&
-
-7edit_list.conf ;
"
1
scenari
,
/
mail_tt2
G
/
web_tt2
G%&'(
/
global_task_models
/
list_task_models
:$1
etc /home/sympa/etc
7*
1LOCAL18
=
4
7
8
41 sur 189
:$1
syslog LOCAL2
A
7*
108
&
78- 0
3
:$1
log_level 2
A
A
7*
1unix8
syslogd
!*)!=;>
log_socket_type
inet
!*)unix!=;>
-
7*
1/home/sympa/etc/sympa.pid8
&-
sympa.pl
1
sympa
-
$
:$1
pidfile /var/run/sympa.pid
-A
7*
1/home/sympa/etc/sympa-creation.pid8
&-
sympa.pl
1
sympa
-
$
:$1
pidfile_creation /var/run/sympa-creation.pid
7*
10278
*
-
78 =
42 sur 189
:$1
umask 007
A
7*
1single8
!
sympa.pl
78sympa.pl
478 &
<
:$1
distribution_mode fork
$
7*
1208
'$'&) &
:$1
maxsmtp 500
A
7*
1off8
'& -m
:$1
log_smtp on
A
7*
1send,create_list”8
&use_blacklist
-
send
7
8 <
43 sur 189
;
-use_blacklist
none
$A,
7*
15
Mb8
'$,7
8
&
,
max_size
:$1
max_size 2097152
A
7*
1reject8
0
&
N
AA$
7*
1(subscribe|unsubscribe|signoff)8
&
)$0
A
7*
1258
'$
sendmail &
7sendmail8'&
,
'&)
;
nrcpt_by_domain-
-
7
AA8
7*
1108
'$N
;
sendmail
A
7*
1/home/sympa/bin/alias_manager.pl8
&
34
44 sur 189
:$1
alias_manager /home/sympa/bin/ldap_alias_manager.pl
7*
1/usr/sbin/sendmail8
'&)
$
7
-$F:$
8
:$1
sendmail /usr/sbin/sendmail
A
7*
1-oi
-odi -oem8
'&)
A
7*
1defined
by makefile, sendmail_aliases | none8
)
-
;
--
-
- -sendmail.mc1
none
7 virtual_transport
)
-$8
#.CDAA-
7*
1help,subscribe,unsubscribe,post,owner,archive8
6+#.CD
-7(
4$$$8
&-
'!G
A
7*
1
Return-Receipt-To,Precedence,X-Sequence,Disposition-Notification-To8
&
'&)-
!
$
<
-
- &
-
-7rfc2369_header_fieldscustom_header8
:$1
remove_headers Resent-Date,Resent-From,Resent-To,Resent-Message-Id,Sender,Delivered-To"
45 sur 189
A
A
7*
1none8
-4
'&)-
<
-
- &
G-/
G
-7X-LoopX-No-Archive8
:$1
remove_outgoing_headers X-no-archive"
A$AAAA
7*
1off8
G
X-no-archive'&)
-
&ignore_x_no_archive_header_feature
:$1
gnore_x_no_archive_header_feature on
AA-
7*
1
Sender,X-Sender,Received,Message-id,From,X-Envelope-To,Resent-From,Reply-To,Organi
&
-
'&)-
7A8
AA
7*
1NONE8
;
'&)
$
'&) ;
- N
'&)
&
AAE$
7*
1request,owner,unsubscribe8
&
4
E$ mylist-requestmylist-owner
&
list_check_smtp
;
46 sur 189
,AA,
7*
1102408
&
URLIZE/
-
,7
8
';':
,
4
AA<
&
<
7
R
8
G
AA<
&
<
7
R
8
G
7*
1/home/sympa/spool8
&
<
&
<
queue
sympa.pl &
:$1
/home/sympa/spool/msg
<
7*
1/home/sympa/spool/distribute8
&
<
7*
1/home/sympa/spool/moderation8
&
47 sur 189
<
&
<
7*
1/home/sympa/spool/auth8
&
<
7*
1/home/sympa/spool/outgoing8
&
<
7*
1/home/sympa/spool/topic8
&
<
7*
1/home/sympa/spool/bounce8
74
8
bouncequeue
mylist-owner7
E$
,8bounce+*7?:6)8 &
<
7*
1/home/sympa/spool/task8
-
&
<
7*
1none8
&
<
familyqueue
sympa.pl &
automatic_list_creation
:$1
/home/sympa/spool/msg
48 sur 189
7*
1/home/sympa/spool/tmp8
&
(
7*
158
78
< =
BW
AA<
7*
118
6
78TU
7-queue8 0
7
8
&
-
:$1
clean_delay_queue 3
AA<
7*
118
6
78TU
7-queueoutgoing8 0
7
-
8
&-
:$1
clean_delay_queueoutgoing 3
AA<
7*
118
6
78TU
7-queuebounce8 0
7
8
&-
:$1
clean_delay_queuebounce 3
AA<
49 sur 189
7*
1308
6
78
bounce/OTHER7-queuebounce8 0
&-
:$1
clean_delay_queueother 7
AA<
7*
1108
:$
78
7-queuemod8 9
+
MODINDEX
AA<
7*
138
:$
78
< 9
AA<
7*
1108
:$
78
<
< 9
<
AA<
7*
178
*
-78
< 9
-
AA<
7*
1108
6
78TU
7-queueautomatic8 0
7
8
-$
BAD &-
AA
50 sur 189
7*
178
6
78-
7-tmpdir8 &-
-
:
1
$
(
7*
1/home/sympa/locale8
&
- '
~src/locale/Makefile
A
:$1
supported_lang fr,en_US,de,es
&
7
8
&
7*
1en_US8
&
&
7.po.mo-8
AA
79(:&:8
!&+4P
-
A
9(:&:
=-7-
-
,
8
!&+4P
+
51 sur 189
A
7*
10%8
?:6)
?:6)
verp_rate?:6)
/verp_rate@BBO?:6)
?:6)<
bounce+*
A
A
7*
1owner8
;
<?:6)
&
A
A
7*
1owner8
(welcome_return_path
A
AE$
7*
1-owner8
&-
E$
4
&
78
$AA
7*
1daily8
&
task_manager.pl
$
&
@B
AAA
7*
1Monthly8
&
task_manager.pl
&
AA
52 sur 189
7*
1daily8
&
eval_bouncers
-
-
bounce_score_suscriber
suscriber_table
&
4
AA
7*
1monthly8
&
process_bouncers$
-
&
(
-
&
-
<$
AA
7*
1108
&
4
1
4
4
&
&
4
AA
7*
1108
*
4
(
4B
A
7*
108
4
1
78
!
AA@A
7*
1458
&
bouncerslevel1
rate
7A@8
AA#A
7*
1758
&
bouncerslevel2
rate
7A#8
53 sur 189
AA-$
7*
1bounce8
&-$
7?:6)8 ;
$
?:6)
-
&
)
&
7
$8
;
+$
1
bounce_email_prefix bounce-test
1
bounce-test+*: | /home/sympa/bin/queuebounce [email protected]
6
AA
7*
1308
&
$
A
A
7*
1508
+6+!&!6:!:
'
$
AA
7*
12month8
&
-
remind_task
"
A
A-
+
1none
| binary_file7*
1none8
54 sur 189
;
binary_file
-
7config.bin-8 &-
config-
&
-- &
-
7
8/
,
7
8
<
sympa.pl --reload_list_config
;
config.bin-
A
-
7@BBBV8
A
+
1flock
| nfs7*
1flock8
&
<7
*9
-
- 8 &
flock
=+/
<
File::NFSLock-
A
7*
118
)
# . @
<
A
7*
108
)
mylist-request # . .
A
7*
198
)
mylist-owner
&4
78
# . .
A
A
7*
158
*
-
-
-
# . @
55 sur 189
*!
&
6*9'
<
AA-A
+
1
update_db_field_types auto | disabled
7*
1auto8
&
-
$
-
&
'F( =
" . "
*9-
,7update_db_fields_types
auto8
A
+
1
db_type mysql | SQLite | Pg | Oracle | Sybase
*
7 'F()8
&
):6(*
9*7*9*8
4
A
7*
1sympa8
=
;F(
*9
-
A
*
A
*
A
!
A
56 sur 189
)A
A
&
F(
A
;
-
:$'F(1
db_options
mysql_read_default_file=/home/joe/my.cnf;mysql_socket=tmp/mysql.sock-test
*9*
A
H
&G/G
:$1
db_env
ORACLE_TERM=vt100;ORACLE_HOME=/var/hote/oracle/7.3.4
A
AA-
;subscriber_table
-
<7
8,
- 3
,
72Z-58 &-
&
4
:$1
db_additional_subscriber_fields
billing_delay,subscription_expiration
A
AA-
;user_table
-
<7
8,
- 3
72Z-58 &
4
:$1
db_additional_user_fields
address,gender
AA
A
57 sur 189
&
7:$1monthly8
task_manager.pl
user_table
subscriber_table
AA
A
7*
1daily8
&
7:$1monthly8
task_manager.pl
logs_table
A$
A
7*
138
*
logs_table
logs_expiration_period &
7
$8
AA
A
7*
1daily8
&
7:$1monthly8
task_manager.pl
session_table
A
A
7*
13d8
sympa_session
&
;
A
*
AA
A
7*
1daily8
&
7:$1monthly8
task_manager.pl
chalenge_table
7&
8
A
A
58 sur 189
7*
15d8
, &
#
&-
7(
8
AA$
7*
12008
&$
BAD-$
AAA
7*
136008
&
-
AAA
7*
10.58
&
7B
@8
$
A
A$
7*
1mailer-daemon|sympa|listserv|majordomo|smartlist|mailman8
&$
;
$
0
&
&$%0
3';':
;
-
7-
&
&
(-
59 sur 189
&
(
-
-
&
-
hash.0
7hash
-
0
1
-hash
($"BD
8 &
SSLCACertificatePath
-
mod_ssl
-
&
44-
-
-
78
&
-
):'4
-
- &
3
capath
A
&
;
-
$
A
&
-7
-8
:$1
antivirus_path
/usr/local/bin/uvscan
A
&
unzip
$
:$
1
antivirus_args
--summary --secure
:$
1
antivirus_args
--dumb
--archive
:$
?)1
60 sur 189
antivirus_path
antivirus_args
/opt/AVP/kavscanner
-Y -O- -MP -I0
:$
1
antivirus_path
antivirus_args
/usr/local/bin/sweep
-nc -nb -ss -archive
:$
1
antivirus_path
antivirus_args
/usr/local/bin/clamdscan
--stdout
A
sender | nobody
7*
1sender8
&
-
:
!
<6*9'
6*9'1'F(7J @
8F(
)
F( ;
6*9'<
);*9;2
133 3
33*9;357*
9;
8
*9*7*
9*86*9'
1
user_table
/
subscriber_table
&
7include28/
admin_table
include2
&
logs_table/
5
*
9
7
8
*
/
):6(*9*7*
9
*8
6*9'W
GG*9;GG'
2
133 3
33*9;35
$
% DBI
<
*9*
*9;*9*11*97Msql-Mysql-modules'F(8
)=
6
;
):6()=
61 sur 189
/*+
*
&
N
subscribers- subscribers-
$
-7
config-8/
;
3
-
&*
9
78
3
7
8 &
1
user_table
subscriber_table
3
&
admin_table
subscriber_table
include2 ;
7
T
U
-
8
*
sympa.pl
7-sympa;conf8
$
;
sympa.pl
2
!
5
6*9'
=
<
<root
/
sympa.pl
-
&
db_userGsympa.conf
*
&create_db
-
script/
7
'F(F(
)
F(
8
'F(
1
## MySQL Database creation script
CREATE DATABASE sympa;
## Connect to DB
\r sympa
CREATE TABLE user_table (
email_user
varchar (100) NOT NULL,
gecos_user
varchar (150),
password_user
varchar (40),
cookie_delay_user
int,
lang_user
varchar (10),
attributes_user
varchar(255),
PRIMARY KEY (email_user)
);
CREATE TABLE subscriber_table (
list_subscriber
varchar (50) NOT NULL,
user_subscriber
varchar (100) NOT NULL,
62 sur 189
robot_subscriber
varchar (80) NOT NULL,
date_subscriber
datetime NOT NULL,
update_subscriber
datetime,
visibility_subscriber
varchar (20),
reception_subscriber
varchar (20),
topics_subscriber
varchar (200),
bounce_subscriber
varchar (35),
bounce_score_subscriber smallint (6),
bounce_address_subscriber
varchar (100),
comment_subscriber
varchar (150),
subscribed_subscriber
int(1),
included_subscriber
int(1),
include_sources_subscriber varchar(50),
PRIMARY KEY (list_subscriber, user_subscriber, robot_subscriber),
INDEX (user_subscriber,list_subscriber,robot_subscriber)
);
CREATE TABLE admin_table (
list_admin
varchar(50) NOT NULL,
user_admin
varchar(100) NOT NULL,
robot_admin
varchar(80) NOT NULL,
role_admin
enum('listmaster','owner','editor') NOT NULL,
date_admin
datetime NOT NULL,
update_admin
datetime,
reception_admin
varchar(20),
comment_admin
varchar(150),
subscribed_admin
int(1),
included_admin
int(1),
include_sources_admin
varchar(50),
info_admin
varchar(150),
profile_admin
enum('privileged','normal'),
PRIMARY KEY (list_admin, user_admin, robot_admin, role_admin),
INDEX (list_admin, user_admin,robot_admin,role_admin)
);
CREATE TABLE netidmap_table (
netid_netidmap
varchar (100) NOT NULL,
serviceid_netidmap
varchar (100) NOT NULL,
robot_netidmap
varchar (80) NOT NULL,
email_netidmap
varchar (100),
PRIMARY KEY (netid_netidmap, serviceid_netidmap, robot_netidmap)
);
CREATE TABLE logs_table (
id_logs
bigint(20) NOT NULL,
date_logs
int(11) NOT NULL,
robot_logs
varchar(80),
list_logs
varchar(50),
action_logs
varchar(50) NOT NULL,
parameters_logs
varchar(100),
target_email_logs
varchar(100),
user_email_logs
varchar(100),
msg_id_logs
varchar(255),
status_logs
varchar(10) NOT NULL,
error_type_logs
varchar(150),
client_logs
varchar(100),
daemon_logs
varchar(10) NOT NULL,
PRIMARY KEY (id_logs)
);
F(
(
1
CREATE TABLE user_table (
email_user
varchar (100) NOT NULL,
gecos_user
varchar (150),
password_user
varchar (40),
cookie_delay_user
integer,
lang_user
varchar (10),
attributes_user
varchar(255),
PRIMARY KEY (email_user)
);
CREATE TABLE subscriber_table (
list_subscriber
varchar (50) NOT NULL,
63 sur 189
user_subscriber
varchar (100) NOT NULL,
robot_subscriber
varchar (80) NOT NULL,
date_subscriber
timestamp NOT NULL,
update_subscriber
timestamp,
visibility_subscriber
varchar (20),
reception_subscriber
varchar (20),
topics_subscriber
varchar (200),
bounce_subscriber
varchar (35),
bounce_address_subscriber
varchar (100),
comment_subscriber
varchar (150),
subscribed_subscriber
boolean,
included_subscriber
boolean,
include_sources_subscriber varchar(50),
bounce_score_subscriber integer,
PRIMARY KEY (list_subscriber, user_subscriber, robot_subscriber)
);
CREATE INDEX subscriber_idx ON subscriber_table (user_subscriber,list_subscriber,robot_subscriber);
CREATE TABLE admin_table (
list_admin
varchar(50) NOT NULL,
user_admin
varchar(100) NOT NULL,
robot_admin
varchar(80) NOT NULL,
role_admin
varchar(15) NOT NULL,
date_admin
timestamp NOT NULL,
update_admin
timestamp,
reception_admin
varchar(20),
comment_admin
varchar(150),
subscribed_admin
boolean,
included_admin
boolean,
include_sources_admin
varchar(50),
info_admin
varchar(150),
profile_admin
varchar(15),
PRIMARY KEY (list_admin, user_admin, robot_admin, role_admin)
);
CREATE
INDEX admin_idx ON admin_table(list_admin, user_admin, robot_admin, role_admin);
CREATE TABLE netidmap_table (
netid_netidmap
varchar (100) NOT NULL,
serviceid_netidmap
varchar (100) NOT NULL,
robot_netidmap
varchar (80) NOT NULL,
email_netidmap
varchar (100),
PRIMARY KEY (netid_netidmap, serviceid_netidmap, robot_netidmap)
);
CREATE
INDEX netidmap_idx ON netidmap_table(netid_netidmap, serviceid_netidmap, robot_netidmap);
CREATE TABLE logs_table (
id_logs
integer NOT NULL,
date_logs
integer NOT NULL,
robot_logs
varchar(80),
list_logs
varchar(50),
action_logs
varchar(50) NOT NULL,
parameters_logs
varchar(100),
target_email_logs
varchar(100),
user_email_logs
varchar(100),
msg_id_logs
varchar(255),
status_logs
varchar(10) NOT NULL,
error_type_logs
varchar(150),
client_logs
varchar(100),
daemon_logs
varchar(10) NOT NULL,
PRIMARY KEY (id_logs)
);
CREATE
INDEX logs_idx ON logs_table(id_logs);
)
F(
1
-- PostgreSQL Database creation script
CREATE DATABASE sympa;
-- Connect to DB
\connect sympa
DROP TABLE user_table;
CREATE TABLE user_table (
email_user
varchar (100) NOT NULL,
gecos_user
varchar (150),
64 sur 189
cookie_delay_user
int4,
password_user
varchar (40),
lang_user
varchar (10),
attributes_user
varchar (255),
CONSTRAINT ind_user PRIMARY KEY (email_user)
);
DROP TABLE subscriber_table;
CREATE TABLE subscriber_table (
list_subscriber
varchar (50) NOT NULL,
user_subscriber
varchar (100) NOT NULL,
robot_subscriber
varchar (80) NOT NULL,
date_subscriber
timestamp with time zone NOT NULL,
update_subscriber
timestamp with time zone,
visibility_subscriber
varchar (20),
reception_subscriber
varchar (20),
topics_subscriber
varchar (200),
bounce_subscriber
varchar (35),
bounce_score_subscriber int4,
bounce_address_subscriber
varchar (100),
comment_subscriber
varchar (150),
subscribed_subscriber
smallint,
included_subscriber
smallint,
include_sources_subscriber varchar(50),
CONSTRAINT ind_subscriber PRIMARY KEY (list_subscriber, user_subscriber, robot_subscriber)
);
CREATE INDEX subscriber_idx ON subscriber_table (user_subscriber,list_subscriber,robot_subscriber);
DROP TABLE admin_table;
CREATE TABLE admin_table (
list_admin
varchar(50) NOT NULL,
user_admin
varchar(100) NOT NULL,
robot_admin
varchar(80) NOT NULL,
role_admin
varchar(15) NOT NULL,
date_admin
timestamp with time zone NOT NULL,
update_admin
timestamp with time zone,
reception_admin
varchar(20),
comment_admin
varchar(150),
subscribed_admin
smallint,
included_admin
smallint,
include_sources_admin
varchar(50),
info_admin
varchar(150),
profile_admin
varchar(15),
CONSTRAINT ind_admin PRIMARY KEY (list_admin, user_admin, robot_admin, role_admin)
);
CREATE
INDEX admin_idx ON admin_table(list_admin, user_admin,robot_admin, role_admin);
DROP TABLE netidmap_table;
CREATE TABLE netidmap_table (
netid_netidmap
varchar (100) NOT NULL,
serviceid_netidmap
varchar (100) NOT NULL,
robot_netidmap
varchar (80) NOT NULL,
email_netidmap
varchar (100),
CONSTRAINT ind_netidmap PRIMARY KEY (netid_netidmap, serviceid_netidmap, robot_netidmap)
);
CREATE
INDEX netidmap_idx ON netidmap_table(netid_netidmap, serviceid_netidmap, robot_netidmap);
DROP TABLE logs_table;
CREATE TABLE logs_table (
id_logs
bigint NOT NULL,
date_logs
int4 NOT NULL,
robot_logs
varchar (80),
list_logs
varchar (50),
action_logs
varchar (50) NOT NULL,
parameters_logs
varchar (100),
target_email_logs
varchar (100),
user_email_logs
varchar (100),
msg_id_logs
varchar (255),
status_logs
varchar (10) NOT NULL,
error_type_logs
varchar (150),
client_logs
varchar (100),
daemon_logs
varchar (10) NOT NULL,
CONSTRAINT ind_logs PRIMARY KEY (id_logs)
);
CREATE
INDEX logs_idx ON logs_table(id_logs);
65 sur 189
1
/* Sybase Database creation script 2.5.2 */
/* Thierry Charles <[email protected]> */
/* 15/06/01 : extend password_user */
/* sympa database must have been created */
/* eg: create database sympa on your_device_data=10 log on your_device_log=4 */
use sympa
go
create table user_table
(
email_user
varchar(100)
not null,
gecos_user
varchar(150)
null
,
password_user
varchar(40)
null
,
cookie_delay_user
numeric
null
,
lang_user
varchar(10)
null
,
attributes_user
varchar(255)
null
,
constraint ind_user primary key (email_user)
)
go
create index email_user_fk on user_table (email_user)
go
create table subscriber_table
(
list_subscriber
varchar(50)
not null,
user_subscriber
varchar(100)
not null,
robot_subscriber
varchar(80)
not null,
date_subscriber
datetime
not null,
update_subscriber
datetime
null,
visibility_subscriber varchar(20)
null
,
reception_subscriber
varchar(20)
null
,
topics_subscriber
varchar(200)
null,
bounce_subscriber
varchar(35)
null
,
bounce_score_subscriber numeric
null
,
comment_subscriber
varchar(150)
null
,
subscribed_subscriber numeric
null
,
included_subscriber
numeric
null
,
include_sources_subscriber varchar(50)
null
,
constraint ind_subscriber primary key (list_subscriber, user_subscriber, robot_subscriber)
)
go
create index list_subscriber_fk on subscriber_table (list_subscriber)
go
create index user_subscriber_fk on subscriber_table (user_subscriber)
go
create index robot_subscriber_fk on subscriber_table (robot_subscriber)
go
create table admin_table
(
list_admin
varchar(50)
not null,
user_admin
varchar(100)
not null,
robot_admin
varchar(80)
not null,
role_admin
varchar(15)
not null,
date_admin
datetime
not null,
update_admin
datetime
null,
reception_admin
varchar(20)
null,
comment_admin
varchar(150)
null,
subscribed_admin
numeric
null,
included_admin
numeric
null,
include_sources_admin
varchar(50)
null,
info_admin
varchar(150)
null,
profile_admin
varchar(15)
null,
constraint ind_admin primary key (list_admin, user_admin,robot_admin,role_admin)
)
go
create index list_admin_fk on admin_table (list_admin)
go
create index user_admin_fk on admin_table (user_admin)
go
create index robot_admin_fk on admin_table (robot_admin)
66 sur 189
go
create index role_admin_fk on admin_table (role_admin)
go
create table netidmap_table
(
netid_netidmap
varchar (100) NOT NULL,
serviceid_netidmap
varchar (100) NOT NULL,
robot_netidmap
varchar (80) NOT NULL,
email_netidmap
varchar (100),
constraint ind_netidmap primary key (netid_netidmap, serviceid_netidmap, robot_netidmap)
)
go
create index netid_netidmap_fk on netidmap_table (netid_netidmap)
go
create index serviceid_netidmap_fk on netidmap_table (serviceid_netidmap)
go
create index robot_netidmap_fk on netidmap_table (robot_netidmap)
go
CREATE TABLE logs_table (
id_logs
numeric NOT NULL,
date_logs
numeric NOT NULL,
robot_logs
varchar(80),
list_logs
varchar(50),
action_logs
varchar(50) NOT NULL,
parameters_logs
varchar(100),
target_email_logs
varchar(100),
user_email_logs
varchar(100),
msg_id_logs
varchar(255),
status_logs
varchar(10) NOT NULL,
error_type_logs
varchar(150),
client_logs
varchar(100),
daemon_logs
varchar(10) NOT NULL,
constraint ind_logs primary key (id_logs)
)
go
create index id_logs_fk on logs_table (id_logs)
go
1
## Oracle Database creation script
## Fabien Marquois <[email protected]>
/Bases/oracle/product/7.3.4.1/bin/sqlplus loginsystem/passwdoracle <<-!
create user SYMPA identified by SYMPA default tablespace TABLESP
temporary tablespace TEMP;
grant create session to SYMPA;
grant create table to SYMPA;
grant create synonym to SYMPA;
grant create view to SYMPA;
grant execute any procedure to SYMPA;
grant select any table to SYMPA;
grant select any sequence to SYMPA;
grant resource to SYMPA;
!
/Bases/oracle/product/7.3.4.1/bin/sqlplus SYMPA/SYMPA <<-!
CREATE TABLE user_table (
email_user
varchar2(100) NOT NULL,
gecos_user
varchar2(150),
password_user
varchar2(40),
cookie_delay_user
number,
lang_user
varchar2(10),
attributes_user
varchar2(500),
CONSTRAINT ind_user PRIMARY KEY (email_user)
);
CREATE TABLE subscriber_table (
list_subscriber
varchar2(50) NOT NULL,
user_subscriber
varchar2(100) NOT NULL,
robot_subscriber
varchar2(80) NOT NULL,
date_subscriber
date NOT NULL,
update_subscriber
date,
67 sur 189
visibility_subscriber
varchar2(20),
reception_subscriber
varchar2(20),
topics_subscriber
varchar2(200),
bounce_subscriber
varchar2 (35),
bounce_score_subscriber number,
bounce_address_subscriber
varchar2 (100),
comment_subscriber
varchar2 (150),
subscribed_subscriber
number NULL
constraint cons_subscribed_subscriber CHECK (subscribed_subscriber
included_subscriber
number NULL
constraint cons_included_subscriber CHECK (included_subscriber in
include_sources_subscriber varchar2(50),
CONSTRAINT ind_subscriber PRIMARY KEY (list_subscriber,user_subscriber,robot_subscriber)
);
CREATE TABLE admin_table (
list_admin
varchar2(50) NOT NULL,
user_admin
varchar2(100) NOT NULL,
robot_admin
varchar2(80) NOT NULL,
role_admin
varchar2(20) NOT NULL,
date_admin
date NOT NULL,
update_admin
date,
reception_admin
varchar2(20),
comment_admin
varchar2(150),
subscribed_admin
number NULL
constraint cons_subscribed_admin CHECK (subscribed_admin in (0,1))
included_admin
number NULL
constraint cons_included_admin CHECK (included_admin in (0,1)),
include_sources_admin
varchar2(50),
info_admin
varchar2(150),
profile_admin
varchar2(20),
CONSTRAINT ind_admin PRIMARY KEY (list_admin,user_admin,robot_admin,role_admin)
);
CREATE TABLE netidmap_table (
netid_netidmap
varchar2 (100) NOT NULL,
serviceid_netidmap
varchar2 (100) NOT NULL,
robot_netidmap
varchar2 (80) NOT NULL,
email_netidmap
varchar2 (100),
CONSTRAINT ind_netidmap PRIMARY KEY (netid_netidmap, serviceid_netidmap, robot_netidmap)
);
CREATE TABLE logs_table (
id_logs
number NOT NULL,
date_logs
number NOT NULL,
robot_logs
varchar2 (80),
list_logs
varchar2 (50),
action_logs
varchar2 (50) NOT NULL,
parameters_logs
varchar2 (100),
target_email_logs
varchar2 (100),
user_email_logs
varchar2 (100),
msg_id_logs
varchar2 (255),
status_logs
varchar2 (10) NOT NULL,
error_type_logs
varchar2 (150),
client_logs
varchar2 (100),
daemon_logs
varchar2 (10) NOT NULL,
CONSTRAINT ind_admin PRIMARY KEY (id_logs)
);
!
$
F(<<<
:$1
# mysql
< create_db.mysql
!
db_user
db_passwdsympa.conf
'F(1
68 sur 189
grant all on sympa.* to sympa@localhost identified by 'your_password';
flush privileges;
$!! ;
$
-
$
-
1
-
-
7
8-
+4
:$1
## Data to be imported
## email
gecos
[email protected]
[email protected]
John - accountant
Mary - secretary
&
1
cat /tmp/my_import_file | sympa.pl --import=my_list
7 8
;
-
;
subscribers-7
# #8
&
-
7
<
8
file
database/
;
subscribers-
+
H;$
7
-idle-timeout
FastCgiServer-
8 ;
load_subscribers.pl
Ginclude2
<
76*9'(*)
L
-
8
*9+7include8
7include28 &
1
78
'$
7V8
9
69 sur 189
7
6:?;:8
$
;
%' !!
-
$
-
$
:(:&<
'
-
7
8
-sympa.conf7A
AA-A
AA-8
!
&logs_table
" . &*9
30
G
/
3
3
&
/
&logs_table
*9,
&
-
A$
A
9
-
logs_table
1
A1
A1
A1
;
-
A1
;
-
-
7
8
A1
-
:
7
8 &
-
Log.pm
A1
;
4
AA1
-
AA1
/
;
the target_email_logs-
A1;)
AA1'4;*
A1
/
1successerror
A
A1;
-
-
A1
;
bouncedsympa
wwsympa
0
&
-
70 sur 189
-
G
1
db_typedb_namedb_hostdb_userdb_passwd
;
1
@ db_name
;*
# G
ORACLE_HOME environment
variable through the db_env
sympa.conf parameter All your lists are now configured to use the
database, unless you set the list parameter A
A to - or
. Sympa will now extract and store user information for this list
using the database instead of the file. Note however that
subscriber information is dumped to at every shutdown,
to allow a manual rescue restart (by renaming to
and changing the A
AGG
8
:
))6!
G
.(
;
sympa.confG &
:%&'(
H;
-7&
-
8 &
,
4
,
&
):6(H;
wwsympa.fcgi &
-
+
H;/
H;
H; &<
user_table/
Crypt::CipherSaber
6J $
;
&
%&&)
&
%&&)
-
/
<
&
*
!6(
N
G
1
@ %&&)/
# G
<
/
. <
/
71 sur 189
J /
" %&'(
-
)!
9
-wwsympa.fcgi
3
archived.plbounced.plsympa.pl &N
*
!
" .1
)
&
;G
–enable_secure-
wwsympa.fcgi
!;*
$
wwsympa.fcgi %$7
81
#include <unistd.h>
#define WWSYMPA ''/home/sympa/bin/wwsympa.fcgi''
int main(int argn, char **argv, char **envp) {
argv[0] = WWSYMPA;
execve(WWSYMPA,argv,envp);
}
" J1
&
" J
& 4 [
[
)
78
!sudo
wwsympa.fcgisympa -
wwsympa_sudo_wrapper.pl
wwsympa.fcgi /etc/sudoers-
7
visudo81
apache ALL = (sympa)
NOPASSWD: /home/sympa/bin/wwsympa.fcgi
57L
sudoers-
-1
#Defaults
requiretty
72 sur 189
#Defaults
env_reset
requiretty
/
env_reset
!6(<
*
6
sympa.sympa 7
apache.apache8/
:$
!
sympa.sympa /
$ 9
$-
!;*3H;*
:>: +
100 !;*
7H;*8
@BB$
!;*3H;* 133
33$ \
2
133
33$ \
5
&!H
+
/
;
;
$G
" .7 8 &
wwsympa.fcgi *
-
1
;
wwsympa.fcgi
wwsympa_sudo_wrapper.pl/
;
" J
wwsympa.fcgi
wwsympa-wrapper.fcgi
-
7
8
:$1
Alias /static-sympa /home/sympa/static_content
;
wwsympa.fcgiH;
:$1
ScriptAlias /sympa /home/sympa/bin/wwsympa.fcgi
6+
H;
7
133 3
334 2
133 3
334 58
;1
LoadModule fcgid_module modules/mod_fcgid.so
<IfModule mod_fcgid.c>
IPCCommTimeout 120
MaxProcessCount 2
</IfModule>
<Location /sympa>
SetHandler fcgid-script
73 sur 189
</Location>
ScriptAlias /sympa /home/sympa/bin/wwsympa.fcgi
;1
LoadModule fastcgi_module modules/mod_fastcgi.so
FastCgiServer /home/sympa/bin/wwsympa.fcgi -processes 2
<Location /sympa>
SetHandler fastcgi-script
</Location>
ScriptAlias /sympa /home/sympa/bin/wwsympa.fcgi
;
+
78
&
-
-
-
;
$
&-
: R
2
1O#BO"9
O"*O#BO#BO"9
O"*O#BO#BO"9
O"*O#B5
&
$2
133$ 35$ ,
" . .1
server {
listen
server_name
80;
my.domain.org;
location / {
fastcgi_pass
fastcgi_param
fastcgi_param
fastcgi_param
fastcgi_param
fastcgi_param
fastcgi_param
fastcgi_param
fastcgi_param
}
unix:/var/run/sympa/wwsympa.socket;
QUERY_STRING
$query_string;
REQUEST_METHOD
$request_method;
CONTENT_TYPE
$content_type;
CONTENT_LENGTH
$content_length;
PATH_INFO
$fastcgi_script_name;
REQUEST_URI
$request_uri;
REMOTE_ADDR
$remote_addr;
SERVER_NAME
$server_name;
location /static-sympa {
alias /usr/local/sympa/static_content;
}
}
=
<
A
;
A
A
;
]
A
<
A
;
&-
' *
2
1O#BO"9
O"*O#BO#BO"9
O"*O#BO#BO"9
O"*O#B
5
%-
7
133 2
133 58
74 sur 189
-
<
,
H
server.modules += ("mod_fastcgi")
alias.url += ( "/static-sympa/icons/" => "/usr/share/sympa/icons/" )
alias.url += ( "/static-sympa/" => "/var/spool/sympa/static_content/" )
$HTTP["url"] =~ "^/sympa" {
fastcgi.server = ( "/sympa" =>
((
"check-local"
"bin-path"
"socket"
"max-procs"
"idle-timeout"
=>
=>
=>
=>
=>
"disable",
"/usr/libexec/sympa/wwsympa-wrapper.fcgi",
"/var/run/lighttpd/sympa.sock",
2,
20,
))
)
}
!+
H;
+
H;2
133 35$
H;
H; ;
$
&
3
<
+
H;7
A
A4@-
8
&
+
H;
1
&FCGI)7
AAAA8
+
H;
#
1
A
2
133 35
historical =
$
# 2
133 33D"5
A2
133
35
&N
mod_fastcgi
-
<
1
A
7*
1/home/httpd/html/arc8
%&'( &
archived.pl ;
%-
A
A$
4
7*
1thrd8
&
$,
1
75 sur 189
A-
7*
1archived.pid8
&-
);*archived.pl
A
7*
1/var/bounce8
6
74
8 &
bounced.pl
A-
7*
1bounced.pid8
&-
);*bounced.pl
A$
7*
108
(
7
8%&&) &
$
A
7*
1localhost8
*
%&&) ;
7.8
-
-
:$1
cookie_domain cru.fr
cookie is available for host 'cru.fr'
cookie_domain .cru.fr
cookie is available for any host within 'cru.fr' domain
&
G
A
7*
1home8
,
;
home7
,
8lists7
8
A
7*
1/icons8
!6(G
76 sur 189
A
*
G
-
7*
1/usr/bin/mhonarc8
)
78'2
133 333 5 6<
%&'(
A
7*
1undefined8
6
!6(
78%&'(
%&'( ;
K
%&'(
;
%&'(
%&'(
1
133 30
3
4
2
133 30
3
4
5
A
I
7*
1insensitive8
;
insensitiveG
&
(*)
+
. $$
&
4
7*
1Mailing List Service8
&
;
&
A
ABI@
7*
118
+
H; 133
2
133
5+
H;
G
@B 6
133 2
133 5
-
+
H;
*!0
6*9'76
*
'
8
); 'F( 2
133 < 35
F(
2
133<
35)
F( 2
133 < 352
133 3
35
77 sur 189
2
133 3$A 5
&
/
7
script8
!
78
User
!
6J
cookie
&
7
8
$
'
sympa.conf7robot.conf8
listmaster-
7 8 =
7sympa.conf8
-
7
8
&
-7
%&#8 &
sympa.conf/
-
Send me a password
-
Preferences
=
sympa.pl
/
:
$
(
/
,
7
8 )-
H=!
$
2
133 3
3
$
3\&
5
*
1
133
3
2
133
35
7
J @ $8
>)HJ
4- &,
<-
loc
&&#-
:$1
[%|loc%]User Email[% END %]
[%|loc(list.name,user.email)%]You have subscribed to list %1 with email address %2[% END %]
78 sur 189
@"
$
&
)-
"
;
*0
0
&
,
-N
N
&
ll_CC
web_tt2mail_tt2
:$1
/web_tt2/home.tt2
/web_tt2/de_DE/home.tt2
/web_tt2/fr_FR/home.tt2
&
comment.tt2-
locale
41
:$1
[% IF locale == 'fr_FR' %]
Personnalisation
[% ELSE %]
Customization
[% END %]
"
&-topics.conf- ;
-
N
&
!
" .G
74PP"D4@+
4P
K 8
4P $
-
!&+4P
1-
-
,
)-
=
7
8-F4
&
:
79 sur 189
&7G
8 %
G6
1
7*
1http://<host>/wws/rss8
:$1https://my.server/wws/rss
&
6<
6
1
7latest_lists8/
7active_lists8/
7active_arc8/
7latest_d_read8
7
&
:$1http://my.server/wws/rss/latest_lists?for=3&count=6
&
C
. :$1http://my.server/wws/rss/latest_lists/computing?count=6
&
C
computing )
1
for1
7$8 &H;
;
forcount<
count1$$
&H;
;
forcount<
1
7$
computing8 &
7
&
7
8
:$1http://my.server/wws/rss/active_lists?for=3&count=6
&
C
. :$1http://my.server/wws/rss/active_lists/computing?count=6
&
C
computing )
1
for1
7$8 &H;
;
forcount<
count1$$
&H;
;
forcount<
1
7$
8 &
80 sur 189
7
&
:$1http://my.server/wws/rss/latest_arc/mylist?for=3&count=6
&
C
. )
1
1
&
for1
7$8 &H;
;
forcount<
count1$$
&H;
;
forcount<
7 7
&
:$1http://my.server/wws/rss/latest_d_read/mylist?for=3&count=6
&
C
. )
1
1
&
for1
7$8 &H;
;
forcount<
count1$$
&H;
;
forcount<
:
.
$ )2
133 . 3#BB#335
7%&&)8
!
)
)
>'(
&)G);)*
G
&)
A
$
,
N
&
1
&
<
sympa-user
&
sympa-user%&&) &
&)
getUserEmailByCookieRequest
81 sur 189
&
<
)
authenticateAndRun)
&
$
,
,
&
-
-
trusted_applications.conf &
;
,
&)
)11(
2
133 35) &
7
+
H;8
)<
7$8
=
)
G
&
)1
1
*9
(1
$
61)
G
%&&)/
<
6
61<
$
7
A
A
8
1
7
,
8
$(
1
$
1
1
$1
$
;1
1
1
N1
1
7
8
1
7
8
(
1
7<
8
(
1
7
8
=
<
%
AAA
);
)!
819
AA
AA4 4
4
82 sur 189
/:$
)
!
" .
%httpd.conf
)-1
FastCgiServer /home/sympa/bin/sympa_soap_server.fcgi -processes 1
ScriptAlias /sympasoap /home/sympa/bin/sympa_soap_server.fcgi
<Location /sympasoap>
SetHandler fastcgi-script
</Location>
?" J
%httpd.conf
)-
1
FastCgiServer /home/sympa/bin/sympa_soap_server-wrapper.fcgi -processes 1
ScriptAlias /sympasoap /home/sympa/bin/sympa_soap_server-wrapper.fcgi
<Location /sympasoap>
SetHandler fastcgi-script
</Location>
&
sympa.conf3robot.conf-
soap_url
-
!6(
)
-
&
)!6(
*(-7-
);8
)
?
%
)<
7)
8
"
&)authenticateRemoteAppAndRun
<
$
;
$
&-
-trusted_applications.conf
etc/
/home/sympa/etc
7
-trusted_applications.conf
soap
8 &-
trusted_application trusted_applications.conf-
:-
31
name1
!
/
remote_application_name
,
/
md5password1
'*"
1
83 sur 189
sympa.pl -md5_digest=<the password>
proxy_for_variables1
)
,
;
USER_EMAIL
remote_host
)
sympa_soap_client.pl
1
/home/sympa/bin/sympa_soap_client.pl --soap_url=http://my.server/sympasoap --service=createList --trusted_applic
/home/sympa/bin/sympa_soap_client.pl --soap_url=http://myserver/sympasoap --service=add --trusted_application=my
9)
)7!96;9:8
A
1
my $soap = new SOAP::Lite();
$soap->uri('urn:sympasoap');
$soap->proxy('http://myserver/sympasoap');
my $response = $soap->authenticateRemoteAppAndRun('myTestApp', 'myTestAppPwd', '[email protected]', '
2
1O#BO"9
O"*O#BO#BO"9O"*O#BO#BO"9
O"*O#B5
)%)&
")* %
*(-
1
<?xml version=''1.0''?>
<definitions name=''Sympa''
xmlns:xsd=''http://www.w3.org/2001/XMLSchema''
xmlns:soap=''http://schemas.xmlsoap.org/wsdl/soap/''
targetNamespace="[% conf.wwsympa_url %]/wsdl"
xmlns:tns="[% conf.wwsympa_url %]/wsdl"
xmlns=''http://schemas.xmlsoap.org/wsdl/''
xmlns:xsdl="[% conf.soap_url %]/wsdl">
<!-- types part -->
<types>
<schema targetNamespace="[% conf.wwsympa_url %]/wsdl"
xmlns:SOAP-ENC=''http://schemas.xmlsoap.org/soap/encoding/''
xmlns:wsdl=''http://schemas.xmlsoap.org/wsdl/''
xmlns=''http://www.w3.org/2001/XMLSchema''>
<complexType name=''ArrayOfLists''>
<complexContent>
<restriction base=''SOAP-ENC:Array''>
<attribute ref=''SOAP-ENC:arrayType'' wsdl:arrayType=''tns:listType[]''/>
</restriction>
</complexContent>
</complexType>
<complexType name=''ArrayOfString''>
<complexContent>
<restriction base=''SOAP-ENC:Array''>
<attribute ref=''SOAP-ENC:arrayType'' wsdl:arrayType=''string[]''/>
</restriction>
</complexContent>
</complexType>
<complexType name=''listType''>
84 sur 189
<all>
<element
<element
<element
<element
<element
<element
</all>
</complexType>
</schema>
</types>
name=''listAddress'' minOccurs=''1'' type=''string''/>
name=''homepage'' minOccurs=''0'' type=''string''/>
name=''isSubscriber'' minOccurs=''0'' type=''boolean''/>
name=''isOwner'' minOccurs=''0'' type=''boolean''/>
name=''isEditor'' minOccurs=''0'' type=''boolean''/>
name=''subject'' minOccurs=''0'' type=''string''/>
<!-- message part -->
<message name=''infoRequest''>
<part name=''listName'' type=''xsd:string''/>
</message>
<message name=''infoResponse''>
<part name=''return'' type=''tns:listType''/>
</message>
<message name=''complexWhichRequest''>
</message>
<message name=''complexWhichResponse''>
<part name=''return'' type=''tns:ArrayOfLists''/>
</message>
<message name=''whichRequest''>
</message>
<message name=''whichResponse''>
<part name=''return'' type=''tns:ArrayOfString''/>
</message>
<message name=''amIRequest''>
<part name=''list'' type=''xsd:string''/>
<part name=''function'' type=''xsd:string''/>
<part name=''user'' type=''xsd:string''/>
</message>
<message name=''amIResponse''>
<part name=''return'' type=''xsd:boolean''/>
</message>
<message name=''reviewRequest''>
<part name=''list'' type=''xsd:string''/>
</message>
<message name=''reviewResponse''>
<part name=''return'' type=''tns:ArrayOfString''/>
</message>
<message name=''signoffRequest''>
<part name=''list'' type=''xsd:string''/>
<part name=''email'' type=''xsd:string'' xsd:minOccurs=''0''/>
</message>
<message name=''signoffResponse''>
<part name=''return'' type=''xsd:boolean''/>
</message>
<message name=''subscribeRequest''>
<part name=''list'' type=''xsd:string''/>
<part name=''gecos'' type=''xsd:string'' xsd:minOccurs=''0''/>
</message>
<message name=''addRequest''>
<part name=''list'' type=''xsd:string''/>
<part name=''email'' type=''xsd:string''/>
85 sur 189
<part name=''gecos'' type=''xsd:string'' xsd:minOccurs=''0''/>
<part name=''quiet'' type=''xsd:boolean'' xsd:minOccurs=''0''/>
</message>
<message name=''addResponse''>
<part name=''return'' type=''xsd:boolean''/>
</message>
<message name=''delRequest''>
<part name=''list'' type=''xsd:string''/>
<part name=''email'' type=''xsd:string''/>
<part name=''quiet'' type=''xsd:boolean'' xsd:minOccurs=''0''/>
</message>
<message name=''delResponse''>
<part name=''return'' type=''xsd:boolean''/>
</message>
<message name=''createListRequest''>
<part name=''list'' type=''xsd:string''/>
<part name=''subject'' type=''xsd:string''/>
<part name=''template'' type=''xsd:string''/>
<part name=''description'' type=''xsd:string''/>
<part name=''topics'' type=''xsd:string''/>
</message>
<message name=''createListResponse''>
<part name=''return'' type=''xsd:boolean''/>
</message>
<message name=''closeListRequest''>
<part name=''list'' type=''xsd:string''/>
</message>
<message name=''closeListResponse''>
<part name=''return'' type=''xsd:boolean''/>
</message>
<message name=''subscribeResponse''>
<part name=''return'' type=''xsd:boolean''/>
</message>
<message name=''loginRequest''>
<part name=''email'' type=''xsd:string''/>
<part name=''password'' type=''xsd:string''/>
</message>
<message name=''loginResponse''>
<part name=''return'' type=''xsd:string''/>
</message>
<message name=''getUserEmailByCookieRequest''>
<part name=''cookie'' type=''xsd:string''/>
</message>
<message name=''getUserEmailByCookieResponse''>
<part name=''return'' type=''xsd:string''/>
</message>
<message name=''authenticateAndRunRequest''>
<part name=''email'' type=''xsd:string''/>
<part name=''cookie'' type=''xsd:string''/>
<part name=''service'' type=''xsd:string''/>
<part name=''parameters'' type=''tns:ArrayOfString'' xsd:minOccurs=''0''/>
</message>
<message name=''authenticateAndRunResponse''>
<part name=''return'' type=''tns:ArrayOfString'' xsd:minOccurs=''0''/>
</message>
<message name=''authenticateRemoteAppAndRunRequest''>
86 sur 189
<part
<part
<part
<part
<part
</message>
name=''appname'' type=''xsd:string''/>
name=''apppassword'' type=''xsd:string''/>
name=''vars'' type=''xsd:string''/>
name=''service'' type=''xsd:string''/>
name=''parameters'' type=''tns:ArrayOfString'' xsd:minOccurs=''0''/>
<message name=''authenticateRemoteAppAndRunResponse''>
<part name=''return'' type=''tns:ArrayOfString'' xsd:minOccurs=''0''/>
</message>
<message name=''casLoginRequest''>
<part name=''proxyTicket'' type=''xsd:string''/>
</message>
<message name=''casLoginResponse''>
<part name=''return'' type=''xsd:string''/>
</message>
<message name=''listsRequest''>
<part name=''topic'' type=''xsd:string'' xsd:minOccurs=''0''/>
<part name=''subtopic'' type=''xsd:string'' xsd:minOccurs=''0''/>
</message>
<message name=''listsResponse''>
<part name=''listInfo'' type=''xsd:string''/>
</message>
<message name=''complexListsRequest''>
</message>
<message name=''complexListsResponse''>
<part name=''return'' type=''tns:ArrayOfLists''/>
</message>
<message name=''checkCookieRequest''>
</message>
<message name=''checkCookieResponse''>
<part name=''email'' type=''xsd:string''/>
</message>
<!-- portType part -->
<portType name=''SympaPort''>
<operation name=''info''>
<input message=''tns:infoRequest'' />
<output message=''tns:infoResponse'' />
</operation>
<operation name=''complexWhich''>
<input message=''tns:complexWhichRequest'' />
<output message=''tns:complexWhichResponse'' />
</operation>
<operation name=''which''>
<input message=''tns:whichRequest'' />
<output message=''tns:whichResponse'' />
</operation>
<operation name=''amI''>
<input message=''tns:amIRequest'' />
<output message=''tns:amIResponse'' />
</operation>
<operation name=''add''>
<input message=''tns:addRequest'' />
<output message=''tns:addResponse'' />
</operation>
<operation name=''del''>
<input message=''tns:delRequest'' />
<output message=''tns:delResponse'' />
</operation>
<operation name=''createList''>
<input message=''tns:createListRequest'' />
87 sur 189
<output message=''tns:createListResponse'' />
</operation>
<operation name=''closeList''>
<input message=''tns:closeListRequest'' />
<output message=''tns:closeListResponse'' />
</operation>
<operation name=''review''>
<input message=''tns:reviewRequest'' />
<output message=''tns:reviewResponse'' />
</operation>
<operation name=''subscribe''>
<input message=''tns:subscribeRequest'' />
<output message=''tns:subscribeResponse'' />
</operation>
<operation name=''signoff''>
<input message=''tns:signoffRequest'' />
<output message=''tns:signoffResponse'' />
</operation>
<operation name=''login''>
<input message=''tns:loginRequest'' />
<output message=''tns:loginResponse'' />
</operation>
<operation name=''casLogin''>
<input message=''tns:casLoginRequest'' />
<output message=''tns:casLoginResponse'' />
</operation>
<operation name=''getUserEmailByCookie''>
<input message=''tns:getUserEmailByCookieRequest'' />
<output message=''tns:getUserEmailByCookieResponse'' />
</operation>
<operation name=''authenticateAndRun''>
<input message=''tns:authenticateAndRunRequest'' />
<output message=''tns:authenticateAndRunResponse'' />
</operation>
<operation name=''authenticateRemoteAppAndRun''>
<input message=''tns:authenticateRemoteAppAndRunRequest'' />
<output message=''tns:authenticateRemoteAppAndRunResponse'' />
</operation>
<operation name=''lists''>
<input message=''tns:listsRequest'' />
<output message=''tns:listsResponse'' />
</operation>
<operation name=''complexLists''>
<input message=''tns:complexListsRequest'' />
<output message=''tns:complexListsResponse'' />
</operation>
<operation name=''checkCookie''>
<input message=''tns:checkCookieRequest'' />
<output message=''tns:checkCookieResponse'' />
</operation>
</portType>
<!-- Binding part -->
<binding name=''SOAP'' type=''tns:SympaPort''>
<soap:binding style=''rpc'' transport=''http://schemas.xmlsoap.org/soap/http''/>
<operation name=''info''>
<soap:operation soapAction=''urn:sympasoap#info''/>
<input>
<soap:body use=''encoded''
namespace=''urn:sympasoap''
encodingStyle=''http://schemas.xmlsoap.org/soap/encoding/''/>
</input>
<output>
<soap:body use=''encoded''
namespace=''urn:sympasoap''
encodingStyle=''http://schemas.xmlsoap.org/soap/encoding/''/>
</output>
</operation>
<operation name=''complexWhich''>
<soap:operation soapAction=''urn:sympasoap#complexWhich''/>
88 sur 189
<input>
<soap:body use=''encoded''
namespace=''urn:sympasoap''
encodingStyle=''http://schemas.xmlsoap.org/soap/encoding/''/>
</input>
<output>
<soap:body use=''encoded''
namespace=''urn:sympasoap''
encodingStyle=''http://schemas.xmlsoap.org/soap/encoding/''/>
</output>
</operation>
<operation name=''which''>
<soap:operation soapAction=''urn:sympasoap#which''/>
<input>
<soap:body use=''encoded''
namespace=''urn:sympasoap''
encodingStyle=''http://schemas.xmlsoap.org/soap/encoding/''/>
</input>
<output>
<soap:body use=''encoded''
namespace=''urn:sympasoap''
encodingStyle=''http://schemas.xmlsoap.org/soap/encoding/''/>
</output>
</operation>
<operation name=''amI''>
<soap:operation soapAction=''urn:sympasoap#amI''/>
<input>
<soap:body use=''encoded''
namespace=''urn:sympasoap''
encodingStyle=''http://schemas.xmlsoap.org/soap/encoding/''/>
</input>
<output>
<soap:body use=''encoded''
namespace=''urn:sympasoap''
encodingStyle=''http://schemas.xmlsoap.org/soap/encoding/''/>
</output>
</operation>
<operation name=''createList''>
<soap:operation soapAction=''urn:sympasoap#createList''/>
<input>
<soap:body use=''encoded''
namespace=''urn:sympasoap''
encodingStyle=''http://schemas.xmlsoap.org/soap/encoding/''/>
</input>
<output>
<soap:body use=''encoded''
namespace=''urn:sympasoap''
encodingStyle=''http://schemas.xmlsoap.org/soap/encoding/''/>
</output>
</operation>
<operation name=''review''>
<soap:operation soapAction=''urn:sympasoap#review''/>
<input>
<soap:body use=''encoded''
namespace=''urn:sympasoap''
encodingStyle=''http://schemas.xmlsoap.org/soap/encoding/''/>
</input>
<output>
<soap:body use=''encoded''
namespace=''urn:sympasoap''
encodingStyle=''http://schemas.xmlsoap.org/soap/encoding/''/>
</output>
</operation>
<operation name=''subscribe''>
<soap:operation soapAction=''urn:sympasoap#subscribe''/>
<input>
<soap:body use=''encoded''
namespace=''urn:sympasoap''
encodingStyle=''http://schemas.xmlsoap.org/soap/encoding/''/>
</input>
<output>
89 sur 189
<soap:body use=''encoded''
namespace=''urn:sympasoap''
encodingStyle=''http://schemas.xmlsoap.org/soap/encoding/''/>
</output>
</operation>
<operation name=''signoff''>
<soap:operation soapAction=''urn:sympasoap#signoff''/>
<input>
<soap:body use=''encoded''
namespace=''urn:sympasoap''
encodingStyle=''http://schemas.xmlsoap.org/soap/encoding/''/>
</input>
<output>
<soap:body use=''encoded''
namespace=''urn:sympasoap''
encodingStyle=''http://schemas.xmlsoap.org/soap/encoding/''/>
</output>
</operation>
<operation name=''login''>
<soap:operation soapAction=''urn:sympasoap#login''/>
<input>
<soap:body use=''encoded''
namespace=''urn:sympasoap''
encodingStyle=''http://schemas.xmlsoap.org/soap/encoding/''/>
</input>
<output>
<soap:body use=''encoded''
namespace=''urn:sympasoap''
encodingStyle=''http://schemas.xmlsoap.org/soap/encoding/''/>
</output>
</operation>
<operation name=''casLogin''>
<soap:operation soapAction=''urn:sympasoap#casLogin''/>
<input>
<soap:body use=''encoded''
namespace=''urn:sympasoap''
encodingStyle=''http://schemas.xmlsoap.org/soap/encoding/''/>
</input>
<output>
<soap:body use=''encoded''
namespace=''urn:sympasoap''
encodingStyle=''http://schemas.xmlsoap.org/soap/encoding/''/>
</output>
</operation>
<operation name=''getUserEmailByCookie''>
<soap:operation soapAction=''urn:sympasoap#getUserEmailByCookie''/>
<input>
<soap:body use=''encoded''
namespace=''urn:sympasoap''
encodingStyle=''http://schemas.xmlsoap.org/soap/encoding/''/>
</input>
<output>
<soap:body use=''encoded''
namespace=''urn:sympasoap''
encodingStyle=''http://schemas.xmlsoap.org/soap/encoding/''/>
</output>
</operation>
<operation name=''authenticateAndRun''>
<soap:operation soapAction=''urn:sympasoap#authenticateAndRun''/>
<input>
<soap:body use=''encoded''
namespace=''urn:sympasoap''
encodingStyle=''http://schemas.xmlsoap.org/soap/encoding/''/>
</input>
<output>
<soap:body use=''encoded''
namespace=''urn:sympasoap''
encodingStyle=''http://schemas.xmlsoap.org/soap/encoding/''/>
</output>
</operation>
<operation name=''authenticateRemoteAppAndRun''>
90 sur 189
<soap:operation soapAction=''urn:sympasoap#authenticateRemoteAppAndRun''/>
<input>
<soap:body use=''encoded''
namespace=''urn:sympasoap''
encodingStyle=''http://schemas.xmlsoap.org/soap/encoding/''/>
</input>
<output>
<soap:body use=''encoded''
namespace=''urn:sympasoap''
encodingStyle=''http://schemas.xmlsoap.org/soap/encoding/''/>
</output>
</operation>
<operation name=''lists''>
<soap:operation soapAction=''urn:sympasoap#lists''/>
<input>
<soap:body use=''encoded''
namespace=''urn:sympasoap''
encodingStyle=''http://schemas.xmlsoap.org/soap/encoding/''/>
</input>
<output>
<soap:body use=''encoded''
namespace=''urn:sympasoap''
encodingStyle=''http://schemas.xmlsoap.org/soap/encoding/''/>
</output>
</operation>
<operation name=''complexLists''>
<soap:operation soapAction=''urn:sympasoap#complexLists''/>
<input>
<soap:body use=''encoded''
namespace=''urn:sympasoap''
encodingStyle=''http://schemas.xmlsoap.org/soap/encoding/''/>
</input>
<output>
<soap:body use=''encoded''
namespace=''urn:sympasoap''
encodingStyle=''http://schemas.xmlsoap.org/soap/encoding/''/>
</output>
</operation>
<operation name=''checkCookie''>
<soap:operation soapAction=''urn:sympasoap#checkCookie''/>
<input>
<soap:body use=''encoded''
namespace=''urn:sympasoap''
encodingStyle=''http://schemas.xmlsoap.org/soap/encoding/''/>
</input>
<output>
<soap:body use=''encoded''
namespace=''urn:sympasoap''
encodingStyle=''http://schemas.xmlsoap.org/soap/encoding/''/>
</output>
</operation>
</binding>
<!-- service part -->
<service name=''SympaSOAP''>
<port name=''SympaPort'' binding=''tns:SOAP''>
<soap:address location="[% conf.soap_url %]"/>
</port>
</service>
</definitions>
/
#
))%) &)
!)
K
7$8 &)%))
1
133 3
91 sur 189
2
133 3
5
*
)
)7
))11(
8-
*(
7
)%)K$8 $
*(
&*(
G
!6(1
133 33
=
1
login()
%&&) ;
,
)
authenticateAndRun()
<
K
$
+
0
4$7
133 3$2
133 3$58
0
$7S@ @8
()&% &1
$ 0/
0 0/
4 0/
4 0/
$; 0/
0$ 0/
$4 0/
0 0/
J0 0/
0
=$
K-
*(!6( !
1
java org.apache.axis.wsdl.WSDL2Java -av WSDL_URL
+$1
java org.apache.axis.wsdl.WSDL2Java -av
http://demo.sympa.org/sympa/wsdl
:$
K-1
Parsing XML file: http://demo.sympa.org/sympa/wsdl
Generating org/sympa/demo/sympa/msdl/ListType.java
Generating org/sympa/demo/sympa/msdl/SympaPort.java
Generating org/sympa/demo/sympa/msdl/SOAPStub.java
Generating org/sympa/demo/sympa/msdl/SympaSOAP.java
Generating org/sympa/demo/sympa/msdl/SympaSOAPLocator.java
;
7
40
$8
1
java org.apache.axis.wsdl.WSDL2Java -h
&1
133 3$303 2
133 3$303 5
92 sur 189
&&
$
&0
)
$
%K
casLogin()which()
)1
SympaSOAP loc = new SympaSOAPLocator();
((SympaSOAPLocator)loc).setMaintainSession(true);
SympaPort tmp = loc.getSympaPort();
String _value = tmp.casLogin(_ticket);
String _cookie = tmp.checkCookie();
String[] _abonnements = tmp.which();
:
7
8
7
,
8
<
<
V
(*)
.
(
From:'&)- <
-3
&
3';':7
3';':
8
78
JN
7
8 *
G
;(*)
7
8
-
3(*) 0
/
2
133 3
3
35
7
!
8
%&&)>"BD
-
&
,
7
,
8
&
,
/
<
1-
7
8<
7
8/3';':
<
%&&)
-
:
,
<
7smtpmd5
smime8/
<
<
&$% ""
!3';':
3';':
OpenSSL
3';':
-
1
3>"BD-
%&&)
VA(
<
H;
-
%&&)<>"BD
-
%-
1
SSLEngine on
93 sur 189
SSLVerifyClient optional
SSLVerifyDepth 10
...
<Location /sympa>
SSLOptions +StdEnvVars
SetHandler fastcgi-script
</Location>
;
0
=
$
-
mod_ssl $
$
4(4>"BD)= -
-1
SSLOptions +ExportCertData
*
9 1
$
&(*)
&N
ldap_uid
alternate_email
(*)
(*)
ldap_uid
alternate_email -
G*=
*=
Gldap_password
E
&
ldap_password ;
7*=A8
:$1
Dn:cn=Fabrice Rafart,
ou=Siege ,
o=MyCompany,
c=FR Objectclass:
person Cn: Fabrice Rafart
Title: Network Responsible
O: Siege
Or: Data processing
Telephonenumber: 01-00-00-00-00
Facsimiletelephonenumber:01-00-00-00-00
L:Paris
Country: France
uid: frafart
mail: [email protected]
alternate_email: [email protected]
alternate:[email protected]
+6
1
+ 6
Y' Y' 6
Y' +6'-
+ 6
Y' &
1
:.
94 sur 189
&
-
2
133
# 35;
#G
4
9
-!6(
7
8 %httpd.conf
4
!6(1
...
<Location /sympa/sso_login/inqueue>
AuthType shibboleth
require mail ~ @
</Location>
...
;
;
-
(*)
7
-
8
&generic_sso7
8auth.conf-
-7A8 user_table*9
7
8
2A
5
,
76-
8
2O
O5
/! !
(
-
78auth.conf ;
non_blocking_redirection
;
;*
&
(*)
;
;*
1
&/home/sympa/etc/auth.conf-
-
4 ;
-
wwsympa.fcgi
&/home/sympa/etc/auth.conf, :
<
G
(*)
$
47
8
user_table
&
#1
user_table
negative_regexp
regexp negative_regexpregexp-
user_table
95 sur 189
&
$
:
casldapuser_table
&/home/sympa/etc/auth.conf-
1
paragraphs
keyword value
paragraphs
keyword value
#
:
-
&
:$1
#Configuration file auth.conf for the LDAP authentification
#Description of parameters for each directory
cas
base_url
non_blocking_redirection
auth_service_name
ldap_host
ldap_get_email_by_uid_filter
ldap_timeout
ldap_suffix
ldap_scope
ldap_email_attribute
https://sso-cas.cru.fr
on
cas-cru
ldap.cru.fr:389
(uid=[uid])
7
dc=cru,dc=fr
sub
mail
## The URL corresponding to the service_id should be protected by the SSO (Shibboleth in the exampl)
## The URL would look like http://yourhost.yourdomain/sympa/sso_login/inqueue in the following example
generic_sso
service_name
InQueue Federation
service_id
inqueue
http_header_prefix HTTP_SHIB
email_http_header HTTP_SHIB_EMAIL_ADDRESS
## The email address is not provided by the user home institution
generic_sso
service_name
Shibboleth Federation
service_id
myfederation
http_header_prefix
HTTP_SHIB
netid_http_header
HTTP_SHIB_EMAIL_ADDRESS
internal_email_by_netid
1
force_email_verify
1
ldap
regexp
host
timeout
suffix
get_dn_by_uid_filter
get_dn_by_email_filter
email_attribute
alternative_email_attribute
scope
use_ssl
ssl_version
univ-rennes1\.fr
ldap.univ-rennes1.fr:389
30
dc=univ-rennes1,dc=fr
(uid=[sender])
(|(mail=[sender])(mailalternateaddress=[sender]))
mail
mailalternateaddress,ur1mail
sub
1
sslv3
96 sur 189
ssl_ciphers
MEDIUM:HIGH
host
timeout
bind_dn
bind_password
suffix
get_dn_by_uid_filter
get_dn_by_email_filter
alternative_email_attribute
email_attribute
scope
authentication_info_url
ldap.univ-nancy2.fr:392,ldap1.univ-nancy2.fr:392,ldap2.univ-nancy2.fr:392
20
cn=sympa,ou=people,dc=cru,dc=fr
sympaPASSWD
dc=univ-nancy2,dc=fr
(uid=[sender])
(|(mail=[sender])(n2atraliasmail=[sender]))
n2atrmaildrop
mail
sub
http://sso.univ-nancy2.fr/
ldap
user_table
negative_regexp
((univ-rennes1)|(univ-nancy2))\.fr
A
&user_table
;
&
regexpnegative_regexp)$
regexpnegative_regexp
user_table17
8
$
-
(*)
host
& ;
$
:$1
host ldap.univ-rennes1.fr:389
host ldap0.university.com:389,ldap1.university.com:389,ldap2.university.com:389
timeout
;
$
7
8 B7
8
<
suffix
&
*;&7*
;
&8 &*=
0
:$1dc=university,dc=fr
bind_dn
;
(*)*=
bind_password
&
bind_dn
get_dn_by_uid_filter
*-
-
ldap_uid 76+##"J
8 ;
97 sur 189
-
G25G ;
7
alternate_email 8 :$1
(Login = [sender])
(|(ID = [sender])(UID = [sender]))
get_dn_by_email_filter
*-
-
7
4
6+
##"J
8 ;
-
G25G ;
7uidalternate_email 8 :$1
Dn:cn=Fabrice Rafart,
ou=Siege ,
o=MaSociete ,
c=FR Objectclass:
person Cn: Fabrice Rafart
Title: Network Responsible
O: Siege
Or: Data processing
Telephonenumber: 01-00-00-00-00
Facsimiletelephonenumber:01-00-00-00-00
L:Paris
Country: France
uid: frafart
mail: [email protected]
alternate_email: [email protected]
alternate:[email protected]
&-
1
(mail = [sender]) (| (mail = [sender])(alternate_email = [sender]) )
(| (mail = [sender])(alternate_email = [sender])(alternate = [sender]) )
email_attribute
&
1
mail
canonic_emailcanonic_address ;
$
mail
alternative_email_attribute
&
1
alternate_email
mailalternateaddress 1
(*)
<
user_tablesubscriber_table
scope7*
1sub8
9
-0
&
1
base1
0
one1
0
sub1
0
&
authentication_info_url
*-
!6(
(*)
G
98 sur 189
(*)
!6(
use_ssl
;
1
(*)(7(*)8
ssl_version
&-
(3&(
*
=
11(*)
sslv2/3
sslv2sslv3tlsv1
A
(
&
=
11(*)ALL
W
A
service_name
&
N
service_id
&;*
7
8 !6(
/
!6(
http://yourhost.yourdomain/sympa/sso_login/inqueue
service_id
inqueue
http_header_prefix
&
user_table*9
,
7
8 --$
email_http_header
&
-
G
logout_url
&
!6( ;-
!6(
&
-
1
internal_email_by_netid
;
1
netidmap
=
;*
netid_http_header
&
-
G
- &
force_email_verify
;
1
G ;
<
&
-
/
email_http_header 0 99 sur 189
ldap_host
&(*)
&ldap_host
ldap_bind_dn
&*=
-
ldap_bind_password
&
ldap_suffix
&(*)E$
ldap_scope
& )subbaseone
ldap_get_email_by_uid_filter
&-
;
:$1
ldap_get_email_by_uid_filter
(mail=[SSL_CLIENT_S_DN_Email])
ldap_email_attribute
&
;
-
(*)
ldap_timeout
&
ldap_use_ssl
;
1
(*)(7(*)8
ldap_ssl_version
&-
(3&(
*
=
11(*)
sslv2/3
sslv2sslv3tlsv1
ldap_ssl_ciphers
-
(
&
=
11(*)ALL
W
=
*
$
$ "BD
-
&
-
/
-
-
-
auth_service_name
&
host79(:&:8
&
!7
base_url
&!6(
non_blocking_redirection
&
-
)onoff
on &
100 sur 189
H;
gateway=1
-
!6(
0
;
N
login_uri79(:&:8
&
login_path
login_path7)&;=(8
&
check_uri79(:&:8
&
service_validate_path
service_validate_path7)&;=(8
&
logout_uri79(:&:8
&
logout_path
logout_path7)&;=(8
&
proxy_path7)&;=(8
&$
)
proxy_validate_path7)&;=(8
&$
)
ldap_host
&(*)
&
ldap_host
ldap_bind_dn
&*=
-
ldap_bind_password
&
ldap_suffix
&(*)E$
ldap_scope
& )subbaseone
ldap_get_email_by_uid_filter
&-
ldap_email_attribute
&
;
-
(*)
ldap_timeout
&
ldap_use_ssl
;
1
(*)(7(*)8
ldap_ssl_version
&-
(3&(
*
=
11(*)
sslv2/3
sslv2sslv3tlsv1
ldap_ssl_ciphers
-
(
&
=
11(*)ALL
W
101 sur 189
))6
;
%&&)
G
&
&
1
*
;
H;
((
6G
&
1
sympauser=<user_email>:<checksum>
<user_email>
G
4<checksum>
P
'*"
<user_email>Vcookie-
cookie
%&&)
/
Gloginrequest
!6(
%%&'(1
<A HREF=''/sympa/loginrequest/referer''>Login page</A>
%&'(
wwsympa.fcgiH; ;
referer
!6; failure_referer
N
!6;
!G%&&)
&
%&&)
'*" cookie-
;
&
1
<FORM ACTION=''http://listes.cru.fr/sympa'' method=''post''>
<input type=''hidden'' name=''previous_action'' value=''arc'' />
Access web archives of list
<select name=''previous_list''>
<option value=''sympa-users'' >sympa-users</option>
</select><br/>
<input type=''hidden'' name=''action'' value=''login'' />
<label for=''email''>email address:
<input type=''text'' name=''email'' id=''email'' size=''18'' value='''' /></label><br />
<label for=''passwd'' >password:
<input type=''password'' name=''passwd'' id=''passwd'' size=''8'' /></label> <br/>
<input class=''MainMenuLinks'' type=''submit'' name=''action_login'' value="Login and access web archives"
</FORM>
&$
&previous_actionprevious_list-
102 sur 189
:
(
,
-
<
,
&
L$
-
,
<
(
-
(
N
,
+
$1
send private
send.private &
,
,
-
/home/sympa/expl/<list>/scenari ;
-
-
-
/home/sympa/etc/my.domain.org/scenari
G-
/home/sympa/etc/scenari-/home/sympa/bin/etc/scenari
'-
,
G
333
$
7
333
8 /
$
--
9-
-
&-
-
&
$
4
&
0
$
1
Restricted to subscribers
;
,1
title.gettext Restricted to subscribers
&
title.gettext
,
6
:
,
1
103 sur 189
1
;
sender
Glist
&
smtpmd5smime &
$
smtp
'&)From:
md5<'*"
<
smime7-
,3';':
8/
$
:$1
del.auth
title.us deletion performed only by list owners, need authentication
title.fr suppression r\'eserv\'ee au propri\'etaire avec authentification
title.es eliminacin reservada slo para el propietario, necesita autentificacin
is_owner([listname],[sender])
is_listmaster([sender])
true()
smtp
smtp
md5,smime
-> request_auth
-> request_auth
-> do_it
6-
,
-
6-
1
<rule> ::= <condition> <auth_list> -> <action>
<condition> ::= [!] <condition
| true ()
| equal (<var>, <var>)
| match (<var>, /perl_regexp/)
| search (<named_filter_file>)
| is_subscriber (<listname>, <var>)
| is_owner (<listname>, <var>)
| is_editor (<listname>, <var>)
| is_listmaster (<var>)
| older (<date>, <date>)
# true if first date is anterior to the second date
| newer (<date>, <date>)
# true if first date is posterior to the second date
| CustomCondition::<package_name> (<var>*)
<var> ::= [email] | [sender] | [user-><user_key_word>] | [previous_email]
| [remote_host] | [remote_addr] | [user_attributes-><user_attributes_keyword>]
| [subscriber-><subscriber_key_word>] | [list-><list_key_word>] | [env-><env_var>]
| [conf-><conf_key_word>] | [msg_header-><smtp_key_word>] | [msg_body]
| [msg_part->type] | [msg_part->body] | [msg_encrypted] | [is_bcc] | [current_date]
| [topic-auto] | [topic-sender,] | [topic-editor] | [topic] | [topic-needed]
| [custom_vars-><custom_var_name>] | <string>
[is_bcc] ::= set to 1 if the list is neither in To: nor Cc:
[sender] ::= email address of the current user (used on web or mail interface). Default value is 'nobody'
[previous_email] ::= old email when changing subscription email in preference page.
[msg_encrypted] ::= set to 'smime' if the message was S/MIME encrypted
[topic-auto] ::= topic of the message if it has been automatically tagged
[topic-sender] ::= topic of the message if it has been tagged by sender
[topic-editor] ::= topic of the message if it has been tagged by editor
104 sur 189
[topic]
::= topic of the message (this variable has a value if any of the previous [topic-*] variable has a val
[topic-needed] ::= the message has not got any topic and message topic are required for the list
/perl_regexp/ ::= a perl regular expression. Don't forget to escape special characters (^, $, \{, \(, ...)
Check http://perldoc.perl.org/perlre.html for regular expression syntax.
<date> ::= '<date_element> [ +|- <date_element>]'
<date_element> ::= <epoch_date> | <var> | <date_expr>
<epoch_date> ::= <integer>
<date_expr> ::= <integer>y<integer>m<integer>d<integer>h<integer>min<integer>sec
<custom_var_name> ::= name of the custom parameter you want to use.
<listname> ::= [listname] | <listname_string>
<auth_list> ::= <auth>,<auth_list> | <auth>
<auth> ::= smtp|md5|smime
<action> ::=
|
|
|
|
|
do_it [,notify]
| do_it [,quiet]
reject(reason=<reason_key>) [,quiet]
reject(tt2=<tpl_name>) [,quiet]
| request_auth
| owner
editor
editorkey[,quiet]
listmaster
<reason_key> ::= match a key in mail_tt2/authorization_reject.tt2 template corresponding to
an information message about the reason of the reject of the user
notify ::= sends a notification to list owner
<tpl_name> ::= corresponding template (<tpl_name>.tt2) is send to the sender
<user_key_word> ::= email | gecos | lang | password | cookie_delay_user
| <additional_user_fields>
<user_attributes_key_word> ::= one of the user attributes provided by the SSO system via environment variables.
<subscriber_key_word> ::= email | gecos | bounce | reception
| visibility | date | update_date
| <additional_subscriber_fields>
<list_key_word> ::= name | host | lang | max_size | priority | reply_to |
status | subject | account | total
<conf_key_word> ::= domain | email | listmaster | default_list_priority |
sympa_priority | request_priority | lang | max_size
<named_filter_file> ::= filename ending with .ldap , .sql or .txt
<package_name> ::= name of a perl package in /etc/custom_conditions/ (small letters)
76
&
-
8
&
custom_vars
perl_regexp
2
57
8 &
[msg_header-><smtp_key_word>]
'&)
,
;
$
<
105 sur 189
[msg_part->type][msg_part->body]
';':
4
/
';':
$
3$$$
&N
editoreditorkey
editor
editorkey
0
)
editorkey
,
/
-
9
,
;
,
&
,
/home/sympa/bin/etc/scenari/
*
<command>.default
-
,
/home/sympa/etc/scenari
&
-
7
/home/sympa/etc/<robot>/scenari8
7/home/sympa/expl/<robot>/<list>/scenari8 0
!
! ;1
:$1
scenari/subscribe.rennes11
equal([sender], '[email protected]') smtp,smime -> reject
match([sender], /univ-rennes1\.fr$/) smtp,smime -> do_it
true()
smtp,smime -> owner
,
-
-$1
subscribe rennes1
2 =+
,
&
,
,
<
(*)
F(
L
$
-
,
=
$
725
2
58
(*)=+
*-
)
(*)-
--
- &-
$
G G ;
/home/sympa/etc/search_filters/
(*)=+
1
host
106 sur 189
1
(*)
7
8
suffix
*-
7
(*)8
filter
*-
(*)-
76+##"J
8 9
-
-
1(mail_attribute = [sender])
$ mail_attribute
-
-
scope
9
-0
&
1
base1
0
one1
0
sub1
0
&
bind_dn
;
(*)*=
bind_password
&
bind_dn
example.ldap1
!
6@+1
host
suffix
filter
scope
ldap.univ-rennes1.fr:389,ldap2.univ-rennes1.fr:390
dc=univ-rennes1.fr,dc=fr
(&(canonic_mail = [sender])(EmployeeType = prof)(subject = math))
sub
F(=+
*-
)
F(-
--
- &-
$
G <G ;
/home/sympa/etc/search_filters/
&
F(=+
-F(
sympa.conf N
*
$
)
*
$
%
sql_named_filter_query
db_type
+
1db_type mysql|SQLite|Pg|Oracle|Sybase/*
'
db_host
*
'
db_name
=
< '
statement
'
&F(
$
,
&
B
&SELECT COUNT(*)...
<
&
F(<
G
107 sur 189
)
sympa.conf
db_user
db_password
db_options
db_env
db_port
db_timeout
example.sql1
!
6@+1
sql_named_filter_query
db_type
mysql
db_name
people
db_host
dbserver.rennes1.fr
db_user
sympa
db_passwd
pw_sympa_mysqluser
statement
SELECT count(*) as c FROM users WHERE mail=[sender] AND EmployeeType='PROFESSOR' AND depa
&
,
&
$
1
search(example.ldap)
search(blacklist.txt)
smtp,smime,md5
smtp,smime,md5
-> do_it
-> do_it
&search
(*)-
-
$
=
(*)
F(/
G $
G-$
-
7
8 :
*
&
79
8
&
1
include commonreject
match([sender], /cru\.fr$/)
true()
smtp,smime -> do_it
smtp,smime -> owner
;
include.commonreject
&
108 sur 189
-
include.<action>.header
=
--
+
;
+
use_blacklist7A
8
1
search(blacklist.txt)
smtp,md5,pgp,smime -> reject,quiet
&
<
&
-
/
; )
;
$
7< 8 ;
)
CustomCondition
1
undef
,
&)1
custom_conditions
etc
/
-
/
CustomCondition/
verify
/
+$
1
/home/sympa/etc/custom_conditions/yes.pm :
#!/usr/bin/perl
package CustomCondition::yes;
use strict;
use Log; # optional : we log parameters
sub verify {
my @args = @_;
foreach my $arg (@args) {
do_log ('debug3', 'arg: ', $arg);
}
# I always say 'yes'
return 1;
}
## Packages must return true.
1;
1
109 sur 189
CustomCondition::yes(,,)
true()
smtp,smime,md5
-> do_it
smtp,smime -> reject
=
,,
yes.pm
6
CustomCondition
;
undef
G
G ;
1
GG
0
9
-
7
8 &-
-
:ignoreE$ *
-
:$1
/home/sympa/etc/my.domain.org/scenari/send.intranetorprivate:ignore
&intranetorprivatesend7
8
:
,
-
-
%&&) :
'
-
-
$
7
'&)
8
&
-
-
-
;
=
#
7
8N
;
" #
sympa.pl
K
-
-
"*2
-
-$7'>8
787=':8
-
-"7
-$$ 8
:$7
81
110 sur 189
[email protected]:
"| /home/sympa/bin/queue [email protected]"
[email protected]: "| /home/sympa/bin/queue [email protected]"
bounce+*@your.virtual.domain:
"| /home/sympa/bin/bouncequeue [email protected]"
*-
""* &
-
%&&)*
:$1
FastCgiServer /home/sympa/bin/wwsympa.fcgi -processes 3 -idle-timeout 120
.....
<VirtualHost 195.215.92.16>
ServerAdmin [email protected]
DocumentRoot /var/www/your.virtual.domain
ServerName your.virtual.domain
<Location /sympa>
SetHandler fastcgi-script
</Location>
ScriptAlias /sympa /home/sympa/bin/wwsympa.fcgi
Alias /static-sympa /home/sympa/your.virtual.domain/static_content
</VirtualHost>
/home/sympa/etc/your.virtual.domain/robot.conf-
-
;
sympa.conf
$
/
robot.conf
/home/sympa/expl/your.virtual.domain/
&
sympa
# su sympa -c 'mkdir /home/sympa/expl/your.virtual.domain'
# chmod 750 /home/sympa/expl/your.virtual.domain
!1
Gmy.domain.org-
/home/sympa/etc/my.domain.org &
robot.conf- &-
/etc/sympa.conf7
robot.conf
8 -
1
http_host
&
SERVER_NAME
wwsympa.fcgi
?
%
:$1
http_host
http_host
myhost.mydom
myhost.mydom/sympa
host
&
<
hostsympa.conf
&
7 8/
wwsympa_url
&!6(/
soap_url
&!6(G)7
/8/
cookie_domain/
111 sur 189
email/
title/
default_home/
create_list/
lang/
supported_lang/
log_smtp/
listmaster/
max_size/
css_path/
css_url/
static_content_path/
static_content_url/
pictures_feature/
pictures_max_size/
logo_html_definition/
color_0A@ A@"/
-
1dark_colorlight_colortext_colorbg_color
error_colorselected_colorshaded_color
&
<
-/etc/sympa.conf
my.domain.org
/
listmaster
?
6
&
http_host
SERVER_NAME
,
?
,
)+
<
L
<
<
-
logo_html_definition
robot.conf-
-
*
,
-
%
G
$
<
0
0
Alias /static-sympa {path to your sympa installation directory}/static-content
sympa.confrobot.conf1
static_content_urlstatic_content_pathcss_urlcss_pathpictures_url
pictures_path
112 sur 189
:
^W
%
,-
+
&
static_content_urlcss_urlpictures_url-!6(
static_content_pathcss_pathpictures_path-
-
;
!6(
-
*_url
*_path
&static_content_*
css_*
pictures_*
-
-
+$css_pathG
-
static_content_path/css
-sympa.confrobot.conf
-
H
robot.conf
sympa.conf
&
N
-
- vhost.com
;
robot.conf
sympa.conf A
1<!1
T
433
T T33
T
77
=>!> T33
T
7
=>!>
TT
77
=>> 7
=>>
TT
T33
T
TT
T33
T
TT
A
1<!1
77=
>>
7=
>>
U_
`3
4
33
T
T33
T
TT
77=
>!>
T33
T
T33
T
TT
7=>!>
TT
T33
T
TT
A
1<!1
T
43
3T T3
3T
77
=>!> T3
3T
77
=>> 7
=>>
T3
3T
TT
TT
113 sur 189
7
=>!>
TT
T3
3T
TT
=
G
pictures_urlrobot.conf
!6(
4-
A
1<!1
77=
>>
7=
>>
U_
`3
4
3
3T
T3
3T
TT
77=
>!>
T3
3T
T3
3T
TT
7=>!>
TT
T3
3T
TT
=
G
pictures_pathrobot.conf
4-
,
;
,
-
-
css.tt2
-
-
;
-
css_pathcss_url
0
!A
A
-css_path
-
-css_url
!6( # # # # # # # css_path # ! '# &
-
sympa.conf-
robot.conf
!
,
,
;
,
,
&/home/sympa/etc/my.domain.org/web_tt2/
/home/sympa/etc/my.domain.org/mail_tt2/
/home/sympa/etc/my.domain.org/scenari/
/home/sympa/etc/home/sympa/bin/etc &
-
N
N
H!;?
%
114 sur 189
;
#
/home/sympa/expl/my.domain.org/
&-
-
-
7
,
8
&
/home/sympa/expl/my.domain.org/
/home/sympa/etc/my.domain.org/
/
,
hosthttp_host
wwsympa_url
/home/sympa/etc/my.domain.org/robot.conf
7-sympa.confwwsympa.conf-8
:
$! )
G6
))6
G
$
1
$
-/
/
(*)
A
A
&
-
-
-
G
,
7
A
AA-A
AA-8
*
-
!!
115 sur 189
&
$
<
subscriber_count
:$1
http://my.server/wws/subscriber_count/mylist
:
/(&))
"
0
&
-
&&#
2
133 # 5
-
&&#
$
1&&1#1
?&&1#1@
;
&&#
2
133 335*
%
-
1
6
)
?A
A@
:$1
[%|loc(list.name,list.host)%]Welcome to list %1 %2[%END%]
+$
-
-/
&&#
INCLUDE_PATH
-
-
3
&5 -
'&)-
F4 :$1
[% FILTER qencode %]Message à modérer[%END%]
N
-N
tt2
:$1/mail_tt2/fr_FR/helpfile.tt2
,a#BBb3BC3##@b1BDa Y 0
&- &-
78
&&#
/-1#$
&
-
-
7<list>
-<action>
<lang>
81
@
#
.
/home/sympa/expl/<list>/mail_tt2/<lang>/<action>.tt2
/home/sympa/expl/<list>/mail_tt2/<action>.tt2
/home/sympa/etc/my.domain.org/mail_tt2/<lang>/<action>.tt2
116 sur 189
J
"
C
b
P
/home/sympa/etc/my.domain.org/mail_tt2/<action>.tt2
/home/sympa/etc/mail_tt2/<lang>/<action>.tt2
/home/sympa/etc/mail_tt2/<action>.tt2
/home/sympa/bin/etc/mail_tt2/<lang>/<action>.tt2
/home/sympa/bin/etc/mail_tt2/<action>.tt2
;
-
+1
7
8
'&) -
$
3
&
-1
2OO514
/
2O
A
O516
4)
'&)
/
2O
O51+'&)
/
2O
O5164&'&)
/
2OO51';':
/
2O
AO51
-
host
/
2O
O51
/
2O
O51
/
2O
O51
/
2O
O51
/
2O
0
O51
0
/
2O
O51
/
2O
O51&
G-
/
2O O51
/
2O O51
/
2O O51G
/
2O <
O51
74<
8/
2O O51
G/
2O AO51G
!6(/
2O O51%
/
2O AO51
G4
/
2O O51 (/
2O O51/
2O O51/
2O O51-738/
2O O51/
2O O51
/
2O A
O51
3-/
2O O51G
/
2O -
AO51
3-
- #
&-
HELP 1
2OAO51TRUE
/
2OA
O51TRUE
117 sur 189
#
+
LISTS 1
2O
O51
$
G0
7
visibility
8
:$1
These are the public lists for [conf->email]@[conf->domain]
[% FOREACH l = lists %]
[% l.key %]@[% l.value.host %] : [% l.value.subject %] ([% l.value.topics.0 %])
[% END %]
A #
&-
REMIND
1
* 78
42O
O51
:$1
This is a subscription reminder.
You are subscribed to the following lists:
[% FOREACH l = lists %]
[% l %]: [% conf.wwsympa\_url \%]/info/[% l %]
[% END %]
Your subscriber e-mail: [% user.email %]
Your password: [% user.password %]
A
A #
&
7
8
)!
0
-
-N
-
-
-
/home/sympa/expl/mylist/web_tt2
~/home/sympa/etc/web_tt2
,
A$
118 sur 189
-
=
T
U
-
$
-G'-7
8
M
color_011
color_5 ;
color_5
color_111
7
''(8
color_21
1
:$
Q&*3S/$
color_311
$
$
color_411
7
$
8
7
'(
8
color_511
$
AB
color_611
7$
8
'(
color_711
0
color_81
1
color_91
7$
8
7
8
color_101
6 *G
color_111
1
119 sur 189
%#
7
'(
8
color_121+
=
color_13191
7
$
8
7
''(8
color_141!
color_151!
0
M
%
-
&
0
0
'
&N
1
&1color_4/
K
&$1color_5/&
$
&
$
1color_3/
$
&
&
1color_13/&
7
$
8
9
&
G0
1
/
!
;/
;/
*
color_1
% color_13
color_4
color_6
*
color_2
color_2
%
color_1
color_11
*
color_2
color_2
%
color_2
color_2
(
%
$
$
1
@ &
color_8
# color_11
'
120 sur 189
&
1
+;
+ *
color_2
None
None
% color_11 color_6
color_9
color_2
color_9
color_6
color_2
color_6
color_9
'
=
1
@ ''(
'(/
# $
''(
#
color_11/
. 7;:
- 8
0
/0
1style.cssprint.cssprint-preview.css
fullPage.css
;
<
9
1css_path
css_url
A
A
css_path-
wwsympa-
-/
css_url-
!6(
<
&
robot.conf-
sympa.conf
4
4;css_pathG
-
1${static_content_path}/css static_content_path
-
;
static_content_path-sympa.confrobot.conf
1
sympa_home_dir/static_content 4;css_urlG
-
1
${static_content_url}/css static_content_url
-
;static_content_url-sympa.confrobot.conf
1/static-sympa
&1
1sympa_home_dir/static_content/css/style.css
!6(
1
http://host.name/static-sympa/css/style.css
121 sur 189
[http://host.name/static-sympa/css/style.css]
&sympa_wizard.pl
static_content_path
static_content_url
M
@1
-css_path$
css_url
-
-
#1
G
$
css_url
css
7 http://url.to.wwsympa/css/ [http://url.to.wwsympa/css/]8
&
/B1
0
-
!6( ;
css_path
;
css_path
-
wwsympa ;
- wwsympa
#
G
%&&)<
&
/#1
css wwsympa-css.tt2
-
web_tt2
L
;
<
wwsympa
&
@
css.tt2
&
$
!
&
#
1
@ -
L<
@ H
-
-
css_path
&
T;
U
&-
<
&$
7
4
8 9
-
/
-
sympa.confrobot.conf &
$
,
+
robot.conf
sympa.conf
wwsympa
<
&
-
-
wwsympa
122 sur 189
/-css.tt2
-7sympa_home/bin/etc/web_tt28
sympa_home/etc/web_tt2sympa_home/etc/robot_dir/web_tt2
;
33
N
!
=
-
<
!6(
css_url
N
css_path &
style.css-
-G
$
&
G
color_x
-
robot.conf3sympa.conf- ;
css.tt2
$
(
'(
' :
=(
7
>)HJ
8 (
lang
=
G
;
1
133 3
2
133 3
5
,
:
&
/home/sympa/locale
&
lang
sympa.conf
(
,
&lang
-
;
,
G
;
G
!
,
&
&4
3 &
,
3
-
"
G
&
123 sur 189
N
Gtopics-
&
N
msg_topic
&
-
topics.conf-
-
/home/sympa/etc
&
-1
<topic1_name>
title <topic1 title>
title.fr <topic french title>
visibility <topic1 visibility>
....
<topicn_name/subtopic_name>
title <topicn title>
title.de <topicn german title>
3 &
7B4@4,4c87A8 &
G &visibility-
;
topics_visibility
,
-topics.conf
sample
/==:
41default &
-
(
,
/
,
&
-
-
' ) * ) +
&
C7D
&-
-
1
1
$[custom_vars→your_custom_var_name]
1
$custom_vars.your_custom_var_name
:$
-
1
1sisterList
1math-teachers
1
1
$[custom_vars→sisterList]
T
4
U
124 sur 189
1
$custom_vars.sisterList
T
4
U
'
+
0
7
From:
-8
X-Loop-
;
7X-Loop-
8
&
';*
;*
+
7 4
8 &
1
@
#
.
J
"
>
>
>
4
(
.
7
8
&
1
;
7-
loop_command_sampling_delay
8
;
$
loop_command_max
:
,
loop_command_decrease_factor
";
:
0
&
'
125 sur 189
00
&-
-
mylist
/home/sympa/expl/my.domain.org/mylist/config7
/home/sympa/expl/mylist/config
-8 - &-
$
;
cache_list_configsympa.conf
7A
A-8
-7/home/sympa/expl/my.domain.org/mylist/config.bin
7
8
9
-W
--
-
sample
(
-
(
-
%'
00
&-
$
1
subject First example (an open list)
visibility noconceal
owner
email [email protected]
send public
review public
&$
1
subject Second example (a moderated list)
visibility noconceal
owner
email [email protected]
editor
email [email protected]
send editor
subscribe auth
review owner
reply_to_header
value list
cookie 142cleliste
&
$
'&
126 sur 189
owner
email [email protected]
editor
email [email protected]
send editor
subscribe owner
review owner
reply_to_header
value list
digest 1,4 12:00
!!0
+
1. . C6*9'<
+
-
$
-
-
includedatabaseuser_data_source
&/home/sympa/expl/mylist/subscribers-
;
;
- '
1
email
:
gecos
;
7
-
8&
reception | nomail | digest | summary | notice | txt | html | urlize |
not_me
nomail
digestsummarynoticetxthtmlurlizenot_me ;
;
:&(;&=':!''6
:&(;&=':=';(
visibilityconceal
REVIEW
;
REVIEW =
1
N
REVIEW :&(;&=':=:(
$0
/home/sympa/expl/mylist/info
$
INFO ;
-
0
/home/sympa/expl/mylist/homepage
%&'(
$
127 sur 189
*
0
:-
$
'
-
owner_include
editor_include
-
-7
$
87(
-
8 &-
-
1
@
#
.
/home/sympa/expl/mylist/data_sources/<file>.incl/
/home/sympa/etc/data_sources/<file>.incl/
/home/sympa/etc/my.domain.org/data_sources/<file>.incl
&-
1
-!7-
8 ;
$
F((*)<
-
?
include_fileinclude_remote_fileinclude_list
include_remote_sympa_listinclude_sql_queryinclude_ldap_2level_query
include_ldap_query &
(
-
-
7param8 &
source_parameterowner_include
editor_inlude
:$1
-
-/home/sympa/expl/mylist/config1
owner_include
source myfile
source_parameters mysql,rennes1,stduser,mysecret,studentbody,student
/home/sympa/etc/data_sources/myfile.incl1
include_sql_query
db_type [% param.0 %]
host sqlserv.admin.univ-[% param.1 %].fr
user [% param.2 %]
passwd [% param.3 %]
db_name [% param.4 %]
sql_query SELECT DISTINCT email FROM [% param.5 %]
1
include_sql_query
db_type mysql
host sqlserv.admin.univ-rennes1.fr
user stduser
passwd mysecret
db_name studentbody
sql_query SELECT DISTINCT email FROM student
0
&-SUBADDSIGDELREJECT 128 sur 189
&-
78
/-
#
$
&
-
-
1
@
#
.
/home/sympa/expl/mylist/mail_tt2/<file>.tt2/
/home/sympa/etc/mail_tt2/<file>.tt2/
/home/sympa/bin/etc/mail_tt2/<file>.tt2
;
-
From:
7
8
'&) -
$
3
&
-1
[% conf.email %]1
/
[% conf.domain %]1G
/
[% conf.sympa %]1G
/
[% conf.wwsympa_url %]1G
!6(/
[% conf.listmaster %]1
G/
[% list.name %]1
/
[% list.host %]1
7
8/
[% list.lang %]1
/
[% list.subject %]1
0
/
[% list.owner %]1
/
[% user.email %]1/
[% user.gecos %]1-738/
[% user.password %]1/
[% user.lang %]1/
[% execution_date %]1
$
-
[%
INSERT %]
:$1
Dear [% user.email %],
Welcome to list [% list.name %]@[% list.host %].
Presentation of the list:
[% INSERT 'info' %]
The owners of [% list.name %] are:
[% FOREACH ow = list.owner %]
[% ow.value.gecos %] <[% ow.value.email %]>
[% END %]
#
&
,
129 sur 189
#
SIGNOFF
#
&
7
DELETE8
0
#
0
0
;
-$
REJECT
QUIET
0
#
&
7
INVITE8
[% requested_by %]1
INVITE/
[% url %]1
1!6(
#
&-
6:';=*
#
&
7
8
:&(;&=':!''6
A #
&
-
;
alias_manager
2
7#&
! 1
0
/home/sympa/expl/mylist/stats
$
-
*
1
>4</
130 sur 189
>
/
>/
>>
/
/
7
8
*9
#
0
&-
- &
78
&
:7
remind.tt28
$ :
G
/home/sympa/expl/mylist/message.header
/home/sympa/expl/mylist/message.footer- &
4
7footer_type
mime8
-
message.header.mimemessage.footer.mime
&footer_type
-
3
';':
7$
3
8
7
$
3
8
!
=&3
1
if message is not multipart/signed
if footer_type==append
if message is text/plain
append header/footer to it
else if message is multipart AND first part is text/plain
append header/footer to first part
if footer_type==mime
if message is not multipart/alternative
add header/footer as a new MIME part
&/home/sympa/expl/mylist/archives/
/ &-
<-
archive
131 sur 189
:
&
1
;
7
8
sympa.pl
-
;
'
1
7pendingopen8
-
Gconfig-7
-
-8 <
'
N
N
N
!
E
-
-
- &
-
--78
;
$
, # # # - &&&
*
&
<1
1
/
!-10
7
8/
CD1
-
3-
;
-
owner
email< +-
owner_include
source<
-
/
1
-
<
&
-
-1
>'(-
>'(-
&>'(-
1
132 sur 189
/
/
-
/
7
sympa.pl/
$
-
8
%$>'(
$
1
<?xml version="1.0" ?>
<list>
<listname>example</listname>
<type>my_profile</type>
<subject>a list example</subject>
<description/>
<status>open</status>
<shared_edit>editor</shared_edit>
<shared_read>private</shared_read>
<language>fr</language>
<owner multiple="1">
<email>[email protected]</email>
<gecos>C.R.U.</gecos>
</owner>
<owner multiple="1">
<email>[email protected]</email>
</owner>
<owner_include multiple="1">
<source>my_file</source>
</owner_include>
<sql>
<type>oracle</type>
<host>sqlserv.admin.univ-x.fr</host>
<user>stdutilisateur</user>
<pwd>monsecret</pwd>
<name>les_etudiants</name>
<query>SELECT DISTINCT email FROM etudiant</query>
</sql>
</list>
subject [% subject %]
status [% status %]
[% IF topic %]
topics [% topic %]
[% END %]
visibility noconceal
send privateoreditorkey
Web_archive
access public
subscribe open_notify
shared_doc
d_edit [% shared_edit %]
d_read [% shared_read %]
lang [% language %]
[% FOREACH o = owner %]
owner
email [% o.email %]
profile privileged
[% IF o.gecos %]
133 sur 189
gecos [% o.gecos %]
[% END %]
[% END %]
[% IF moderator %]
[% FOREACH m = moderator %]
editor
email [% m.email %]
[% END %]
[% END %]
[% IF sql %]
include_sql_query
db_type [% sql.type %]
host [% sql.host %]
user [% sql.user %]
passwd [% sql.pwd %]
db_name [% sql.name %]
sql_query [% sql.query %]
[% END %]
ttl 360
&>'(-
1
&
<list>
>'(
1<listname>
&
$
7T
0
3A U8
<type>1
sympa.pl ;
$
<description>1
$
info-7
*&
8
+
:
multiple
1$1
<owner multiple="1">
+
4
:$
owner
1
<email><gecos>
<owner>
<
-
>'(
-
1
<owner multiple="1"> <email> ... </email> </owner>
<owner_include multiple="1"> <source> ... </source> </owner_include>
(
1
&
%
1
sympa.pl -create_list -robot my.domain.org-input_file /path/to/my_file.xml
&
my_robot
-my_file.xml &>'(
134 sur 189
->'(-
9
open
&
-7
8
&
-
>'(
<type>
(
-
/home/sympa/etc/create_list_templates
/home/sympa/bin/etc/create_list_templates7
8
-7
8 ;-$
/home/sympa/etc/create_list_templates
/home/sympa/bin/etc/create_list_templates
-
/ )!
&
-
&
-
(
(
-
-
&
-sympa.conf
-
9
<
&
0
-
,
7list_rejected.tt2list_created.tt28
&-
A
sympa.conf
&
create_list
,
;
<
-
&
,
257 8
rejectdo_itlistmaster
,
create_list
,
create
;
do_it
;
listmaster
pending
&
pending list
server admin
&
-
135 sur 189
-
-
G
0
9
>'(- -
&
-7
8 - -
create_list.conf-7
-
/home/sympa/bin/etc
,/home/sympa/etc8 &-
:$1
## This sample hides the public_anonymous create_list template
public_anonymous hidden
defaults read
(
+
7
/home/sympa/etc/edit_list.conf
-
-8
/
/home/sympa/bin/etc/edit_list.conf
:
.-
<Parameter> <Population> <Privilege>
<Population>: <listmaster|privileged_owner|owner>
<Privilege>: <write|read|hidden>
-
7
.
G G
7$11
!7158 # &
-
- $
+$listmaster
ownerprivileged_owner
:$1
# only listmaster can edit user_data_source, priority, ...
user_data_source listmaster write
priority
priority
owner,privileged_owner
listmaster
# only privileged owner can modify
editor privileged_owner write
send
send
read
write
editor parameter, send, ...
owner
privileged_owner,listmaster
read
write
# other parameters can be changed by simple owners
default
owner
write
)-
Gconfig-1
owner
email [email protected]
profile privileged
&1
136 sur 189
profile privileged
7$
-8
&
)
3
3
)
G7
G8
-
7
custom_subject
8
7
user_data_sources8
<
G
$
$
78
sympa.pl
$1
sympa.pl -close_list=mylist@mydomain
)
6
/
subscribers.closed.dump-
:
,
- ;
-
+
1
N
'
-
*
;
-
1
-
-
-/
1
free7
8controlled7
-
8fixed7
8 &
,
/
-
1-
,
137 sur 189
%
1
-
1-
,
/
1
-
$
&
-
>'(
/
-
1-
&-
N
$
<
/
1
/
/
/
3
*-
+-
7
8 G
families
1
:$1
/home/sympa/etc/families/my_family
/home/sympa/etc/my_robot/families/my_family
;
-1
config.tt27
8/
param_constraint.conf7
8/
edit_list.conf/
,-
- #
&
-
;
&-
-
-78
;
$
(
-&
-
:$1
subject [% subject %]
status [% status %]
[% IF topic %]
topics [% topic %]
[% END %]
visibility noconceal
send privateoreditorkey
138 sur 189
web_archive
access public
subscribe open_notify
shared_doc
d_edit [% shared_edit %]
d_read [% shared_read %]
lang [% language %]
[% FOREACH o = owner %]
owner
email [% o.email %]
profile privileged
[% IF o.gecos %]
gecos [% o.gecos %]
[% END %]
[% END %]
[% IF moderator %]
[% FOREACH m = moderator %]
editor
email [% m.email %]
[% END %]
[% END %]
[% IF sql %]
include_sql_query
db_type [% sql.type %]
host [% sql.host %]
user [% sql.user %]
passwd [% sql.pwd %]
db_name [% sql.name %]
sql_query [% sql.query %]
[% END %]
ttl 360
A
&-
;
-
&
1
free
1
param_constraint.conf-
controlled
1
param_constraint.conf-
fixed
1
param_constraint.conf-
&
)2$2:1
1msg_topic.keywords
74
8owner_include.source_parameter7A8
editor_include.source_parameter7
A8 digest
7
8
:$1
lang
archive.period
visibility
fr,us
days,week,month
conceal,noconceal
139 sur 189
shared_doc.d_read
shared_doc.d_edit
public
editor
A
&
- ;
-
3-
(
;
-
-
7
-$
$
8 =
family_name
,-
+
,
7
,
8
7
-8
7
-8 -
1
:$
1
/home/sympa/etc/families/myfamily/mail_tt2/
/home/sympa/etc/families/myfamily/mail_tt2/bye.tt2
/home/sympa/etc/families/myfamily/mail_tt2/welcome.tt2
;
;
>'(-
familylist
(
>'(-
:
N
%
1
sympa.pl --instantiate\_family my_family --robot \samplerobot --input\_file /path/to/my\_file.xml
&
my_family
my_robot
-my_file.xml -
>'(-
:
>'(-
E
7;
-
E5
&*!&
:$1
<?xml version="1.0" ?>
<family>
<list>
<listname>liste1</listname>
<subject>a list example</subject>
<description/>
<status>open</status>
<shared_edit>editor</shared_edit>
<shared_read>private</shared_read>
<language>fr</language>
<owner multiple="1">
<email>[email protected]</email>
<gecos>C.R.U.</gecos>
</owner>
140 sur 189
<owner multiple="1">
<email>[email protected]</email>
</owner>
<owner_include multiple="1">
<source>my_file</source>
</owner_include>
<sql>
<type>oracle</type>
<host>sqlserv.admin.univ-x.fr</host>
<user>stdutilisateur</user>
<pwd>monsecret</pwd>
<name>les_etudiants</name>
<query>SELECT DISTINCT email FROM etudiant</query>
</sql>
</list>
<list>
<listname>liste2</listname>
<subject>a list example</subject>
<description/>
<status>open</status>
<shared_edit>editor</shared_edit>
<shared_read>private</shared_read>
<language>fr</language>
<owner multiple="1">
<email>[email protected]</email>
<gecos>C.R.U.</gecos>
</owner>
<owner multiple="1">
<email>[email protected]</email>
</owner>
<owner_include multiple="1">
<source>my_file</source>
</owner_include>
<sql>
<type>oracle</type>
<host>sqlserv.admin.univ-x.fr</host>
<user>stdutilisateur</user>
<pwd>monsecret</pwd>
<name>les_etudiants</name>
<query>SELECT DISTINCT email FROM etudiant</query>
</sql>
</list>
...
</family>
:
1
1
/
-
1
$
>'(-
/
1
;
;
family_closed
>'(-
-
-
1
fixed
1
/
controlled
1
/
free
1
;-
78
,
1
141 sur 189
7@81
-7
8
config_changes-
-
-
1
fixed
1
controlled
1
free
1
/
7#81
-
-
/
7.81
-
-
=
1
+
7-
8
error_config
- &
+
$
family_closed
-
+
,
-
'-
&
- &-
N
$
)2$2:1&-
0
error_config
7
8
1
family_closed
*97
8
%
1
sympa.pl --close_family my_family --robot \samplerobot
&
&>'(-
<list> (
(
%
1
sympa.pl --add\_list my\_family --robot \samplerobot
--input\_file /path/to/my\_file.xml
6
1
family_closed
*97
8
142 sur 189
%
7
81
sympa.pl --close_list my_list@\samplerobot
'
'-
&
7
8
-
-
&>'(-
<list> (
(
%
1
sympa.pl --modify\_list my\_family --robot \samplerobot --input\_file /path/to/my\_file.xml
:
$
-edit_list.conf
(
9
$
,
1
=
1
,
-7
8
config_changes-
-
(
-
7
8
,
'
-
&
&
1
-'&
<
/
-
/
-
-'&
&<
7
-$8
&
-'&
-
&
,
queue
familyqueue
+$
auto-
143 sur 189
familyqueue$
#
1
7
queue
$
8
=
G
1
4
$
&-
[email protected]
&
(*)
7
1F(- 8 age-occupation
+
-'&
'auto-*G
familyqueue
age-occupation
/etc/postfix/main.cf
...
transport_maps = regexp:/etc/postfix/transport_regexp
/etc/postfix/transport_regexp
/^.*+owner\@lists\.domain\.com$/
/^auto-.*\@lists\.domain\.com$/
/^.*\@lists\.domain\.com$/
sympabounce:
sympafamily:
sympa:
/etc/postfix/master.cf
sympa
unix n
n
pipe
flags=R user=sympa argv=/home/sympa/bin/queue ${recipient}
sympabounce unix n
n
pipe
flags=R user=sympa argv=/home/sympa/bin/bouncequeue ${user}
sympafamily unix n
n
pipe
flags=R user=sympa argv=/home/sympa/bin/familyqueue ${user} age-occupation
[email protected]<
/home/sympa/spool/automatic-
queueautomaticsympa.conf
7<
8 &-
sympa.pl
&4
7
8
;G
-$G
-$
14
&
K4''
,
2
1KO#BO"9O"*O#B'O#BO"9
O"*O#B'
O#BO"9
O"*O#BO#BO"9
O"*O#B5
,
G
;
<
+
G
&
1
;
4
1
13304 34
3
2
13304 34
35
1tar
xzvf sympa-milter-0.6.tgz
&
1
144 sur 189
#
#
#
#
cd sympa-milter-0.6/
./configure
make
make install
&
/usr/local/sympa-milter/7
–prefix-
8
&
/etc/init.d/sympa-milter G
/etc/rc3.d ;G+($
/sbin/chkconfig
/sbin/chkconfig sympa-milter on
-
-sympa-milter.conf --
-/usr/local/sympa-milter/etc
&-
>'(4
;
-
<1
parameters_name parameter_value
<general></general>
-
$
;
1
A7
81
4
/
A
7
81
/
A
7
1381;
syslog
[ID
local6.info]
000000
7
81
/
-'&/
A7
81
automatic
[http://www.sympa.org/wiki/manual/organization#spools]
/
A-7
81
-7
d
/usr/local/sympa-milter/var/sympa-milter.pid8/
AA7
8
$
4
7
dsympa
configure
8/
/
AA
$
4
7
dsympa
configure
8/
/
-
<families></families>
-
$4
&
$1
family
recipient_regular_expression
TU7
8
$
%$sympa-milter.conf-4
1
#
# Section general
#
145 sur 189
<general>
log_level
log_facility
log_severity
10
local6
yes
socket
inet:2030@localhost
spool_dir
/usr/local/sympa-milter/var
pid_file
/usr/local/sympa-milter/var/sympa-milter.pid
run_as_user
run_as_group
</general>
#
# Section families
#
<families>
# Syntax :
#
family
#
joe
toto
best
</families>
sympa
sympa
recipient regular expression
^joe+.*@one.domain.com
^[email protected]
^best.*@another.domain.com
2;
$
TeU &
G
4
$
-
'&
1
'&
4
1
O InputMailFilters=sympa-milter
Xsympa-milter, S=inet:2030@localhost, T=C:2m;S:20s;R:20s;E:5m
-
7
8
G
$
;
T
U$
1
auto
: /dev/null
auto
: "some_file"
6'&- W
*-
etc/families/age-occupation/config.tt2 &&#
-4
4L
(*)
&&#
/home/sympa/etc/families/age-occupation/config.tt2
...
user_data_source include2
[%
146 sur 189
occupations = {
cto = { title=>"chief technical officer", abbr=>"CHIEF TECH OFF" },
coo = { title=>"chief operating officer", abbr=>"CHIEF OPER OFF" },
cio = { title=>"chief information officer", abbr=>"CHIEF INFO OFF" },
}
nemes = listname.split('-');
THROW autofamily "SYNTAX ERROR: listname must begin with 'auto-' " IF (nemes.size != 2 || nemes.0 != 'auto')
tokens = nemes.1.split('\.');
THROW autofamily "SYNTAX ERROR: wrong listname syntax" IF (tokens.size != 2 || ! occupations.${tokens.0} ||
age = tokens.1 div 10;
%]
custom_subject [[% occupations.${tokens.0}.abbr %] OF [% tokens.1 %]]
subject Every [% tokens.1 %] years old [% occupations.${tokens.0}.title %]
include_ldap_query
attrs mail
filter (&(objectClass=inetOrgPerson)(employeeType=[% occupations.${tokens.0}.abbr %])(personAge=[% age %]*))
name ldap
port 389
host ldap.domain.com
passwd ldap_passwd
suffix dc=domain,dc=com
timeout 30
user cn=root,dc=domain,dc=com
scope sub
select all
&
listname
$
-
=
&
1
automatic_list_feature
on-
automatic_list_creation7
A
A
8/
queueautomaticsympa.conf
7
N
/home/sympa/spool/msg8
,
/
automatic_list_removal
if_empty
/home/sympa/etc/sympa.conf
...
automatic_list_feature on
automatic_list_creation public
queueautomatic
/home/sympa/spool/automatic
automatic_list_removal
if_empty
automatic_list_creation
1
/
4
/
smtpsmime
7
<
"8 '
do_itreject
=
4 JB
4
"B
L
G
G
$
,
147 sur 189
:
0
&-
-
:
-
&
<owner7owner_include8subject -
9(=R(;=:=(W
!
,
1
(
-
/
3
/
)/
/
9
/
*
/
:
0
0
subject
//#/
&
0
LISTS &0
$
7*
1conceal8
&visibility
-
,
7
,
8
&
LISTS
visibilityconceal72
133 3
3
33
33
58
visibilityintranet72
133 3
3
33
33
58
visibilitynoconceal7
2
133 3
3
33
33
58
visibilitysecret72
133 3
3
33
33
58
&config-
owner ;
-
+
148 sur 189
-
A
:$1
owner
email [email protected]
gecos C.R.U.
info Tel: 02 99 76 45 34
reception nomail
&
,
ADDDELETE7
8
-
$
SUBSCRIBE<
&
/
owner
&owner
G
1
email
G4/
reception nomail
!
-
1
,
reception nomail
/
visibility 0 ff*-
gecos
)
/
info
# . )
/
profile privileged | normal
# . " )-
&
A
&config-
owner_include
-7*
- ;
-
1$
+
-
4
:$1
owner_include
source myfile
source_parameters a,b,c
reception nomail
profile normal
&owner_include
78
1
source myfile
149 sur 189
&
-1
-myfile.incl &-
;
source_parameter =
source
=&
&-$
/
myfile.incl-
data_sources
source_parameters a,b,c
;
N
param
-7*
-8 &
reception nomail
78
visibility 0 ff*-
profile privileged | normal
)-
78
&config-
editor
7
8 ;
-
+-
A
:$1
editor
email [email protected]
gecos Pierre paul (Computer center director)
,
editor
editorkeyeditorkeyonly &editor
7privateoreditorkey8
&
$
-
A
&config-
editor_include
-7*
-8 ;
-
1$
+
-
:$1
editor_include
reception mail
source myfile
source_parameters a,b,c
&
$
AGG
-
topics
3
3
&
-
-
150 sur 189
G
&
N
msg_topic
7*
1domain
robot parameter8
host
/1
//
*
robot.conf--
/etc/sympa.conf
7*
1lang
robot parameter8
:$1
lang en_US
&
-
;
,G/
$
;
,
A
&
:$1
family_name my_family
A
&
:$1
latest_instantiation
email [email protected]
date 27 jui 2004 at 09:04:38
date_epoch 1090911878
:
7*
1private8
&send
-
,
7
,
8
151 sur 189
&
-
?
sendclosed72
133 3
3
33
33 58
sendeditorkey72
133 3
3
33
33 58
sendeditorkeyonly72
133 3
3
33
33 58
sendeditorkeyonlyauth7
2
133 3
3
33
33 58
sendintranet72
133 3
3
33
33 58
sendintranetorprivate7
2
133 3
3
33
33 58
sendnewsletter72
133 3
3
33
33 58
sendnewsletterkeyonly7
2
133 3
3
33
33 58
sendprivate72
133 3
3
33
33 58
sendprivate_smime72
133 3
3
33
33 A58
sendprivateandeditorkey7
2
133 3
3
33
33 58
sendprivateandnomultipartoreditorkey7
2
133 3
3
33
33 58
sendprivatekey72
133 3
3
33
33 58
sendprivatekeyandeditorkeyonly7
2
133 3
3
33
33 58
sendprivateoreditorkey7
2
133 3
3
33
33 58
sendprivateorpublickey7
2
133 3
3
33
33 58
sendpublic72
133 3
3
33
33 58
sendpublic_nobcc72
133 3
3
33
33 A58
sendpublickey72
133 3
3
33
33 58
sendpublicnoattachment7
2
133 3
3
33
33 58
sendpublicnomultipart7
2
133 3
3
33
33 58
digest#
1
*-
digest ;
3
';':
'
Daylist
7B
C
8
:$1
digest 1,2,3,4,5 15:30
152 sur 189
;
$
.1.B)''
+
)2$2:1
7 8
&
#.1BB
= 9 1;
$
digest
A$A,
7*
1258
'$
;
$
AA
&available_user_options
-
reception
7*
1reception
mail,notice,digest,summary,nomail,txt,html,urlize,not_me8
7mailnoticedigestsummarynomailtxthtmlurlizenot_metopics8
;
-
-
default_user_options
:$1
## Nomail reception mode is not available
available_user_options
reception
digest,mail
AA
&default_user_options
-
-
&-3
;
default_user_options
$
reception notice | digest | summary | nomail | mail
'
visibility conceal | noconceal
?
REVIEW
:$1
default_user_options
reception
digest
visibility
noconceal
153 sur 189
A
&msg_topic
-
+
-7'
8
:$1
msg_topic
name os
keywords linux,mac-os,nt,xp
title Operating System
)
msg_topic.namemsg_topic.title
msg_topic.title
7other
msg_topic.name
8 &
msg_topic.keywords
= 9 1
$
msg_topic.keywords
A
AAA
&msg_topic_keywords_apply_on
-
7'
8
:$1
msg_topic_key_apply_on subject
;
1subjectbodysubject_and_body
A
A
&msg_topic_tagging
<
7'
8
:$1
msg_topic_tagging optional
;
T
UT<A
UT<AU <
<
A
A
&reply_to_header
-
Reply-To:
'&)-
value sender | list | all | other_email7*
1sender8
&
Reply-To:-
7sender8
7list8
7all8
7-
154 sur 189
other_email
8
=
1
list :$
&
<
other_email
;value
other_email
apply respect | forced7*
1respect8 &
78
$
Reply-To:'&)- ;
forced
Reply-To:'&)-
:$1
reply_to_header
value other_email
other_email [email protected]
apply forced
A
anonymous_sender!
;
'&)
From:
anonymous_sender
?
-7Received:Reply-To:Sender:X-Sender:
Message-id:Resent-From:
A
custom_header#/:!
&
&-
@ # #
-
-
:$1
custom_header X-url: http://www.cru.fr/listes/apropos/sedesabonner.faq.html
#.CDAA-
rfc2369_header_fields#2#!7*
1rfc2369_header_fieldssympa.conf
8
6+#.CD
-7(
4$$$8
&4-
'!G
A
155 sur 189
7*
1remove_headerssympa.conf
8
-
'&)-
<
A
A
7*
1remove_outgoing_headerssympa.conf
8
-
'&)-
<
A0
custom_subject!
&
;
-
0
7
8 &
G25G
&
0
72O
<O5
$8
:$1
custom_subject sympa-users
$1
custom_subject newsletter num [%list.sequence%]
A
footer_type mime | append7*
1mime8
&
(
&
-
3
footer_typemime
&
3';':
;
3
7
<
';':
8
footer_typeappend
';':
3
/home/sympa/expl/mylist/message.footer.mime %3
$
3
:
&-
156 sur 189
7*
1open8
&subscribe
-
,
7
,
8
&subscribe
-
)-
,
1
subscribeauth72
133 3
3
33
33 58/
subscribeauth_notify7
2
133 3
3
33
33 A
58/
subscribeauth_owner7
2
133 3
3
33
33 A58/
subscribeclosed72
133 3
3
33
33 58/
subscribeintranet72
133 3
3
33
33 58/
subscribeintranetorowner7
2
133 3
3
33
33 58/
subscribeopen72
133 3
3
33
33 58/
subscribeopen_notify7
2
133 3
3
33
33 A
58/
subscribeopen_quiet7
2
133 3
3
33
33 A<
58/
subscribeowner72
133 3
3
33
33 58/
subscribesmime72
133 3
3
33
33 58/
subscribesmimeorowner7
2
133 3
3
33
33 58
7*
1open8
&unsubscribe
-
,
7
,
8
&
-
!open_notifyauth_notify
-
)-
,
1
unsubscribeauth72
133 3
3
33
33 58/
unsubscribeauth_notify7
2
133 3
3
33
33 A
58/
unsubscribeclosed72
133 3
3
33
33 58/
unsubscribeopen72
133 3
3
33
33 58/
unsubscribeopen_notify7
2
133 3
3
33
33 A
58/
unsubscribeowner72
133 3
3
33
33 58
157 sur 189
7*
1owner8
add
-
,
7
,
8
&
-
,
ADD )-
,
1
addauth72
133 3
3
33
33 58/
addclosed72
133 3
3
33
33 58/
addowner72
133 3
3
33
33 58/
addowner_notify72
133 3
3
33
33 A
58
7*
1owner8
&del
-
,
7
,
8
&
-
,
DEL )-
,
1
delauth72
133 3
3
33
33 58/
delclosed72
133 3
3
33
33 58/
delowner72
133 3
3
33
33 58/
delowner_notify72
133 3
3
33
33 A
58
7*
1owner8
&
;
add
&
-
&-
7*
1owner8
review
-
,
7
,
8
&
-REVIEW7!8
<
)-
,
1
reviewclosed72
133 3
3
33
33 58/
reviewintranet72
133 3
3
33
33 58/
reviewlistmaster72
133 3
3
33
33 58/
reviewowner72
133 3
3
33
33 58/
reviewprivate72
133 3
3
33
33 58/
reviewpublic72
133 3
3
33
33 58
158 sur 189
7*
1owner8
&remind
-
,
7
,
8
&
-
,
remind )-
,
1
remindlistmaster72
133 3
3
33
33 58/
remindowner72
133 3
3
33
33 58
A
&-
A
7*
1private8
&d_read
-
,
7
,
8
&
-
7
Gshared
8
)-
,
1
d_readowner72
133 3
3
33
33A 58/
d_readprivate72
133 3
3
33
33A 58/
d_readp72
133 3
3
33
33A 58/
d_readpublic72
133 3
3
33
33A 58
A
7*
1owner8
&d_edit
-
,
7
,
8
&
-
Gshared
7 -
8
)-
,
1
d_editeditor72
133 3
3
33
33A
58/
d_editowner72
133 3
3
33
33A
58/
d_editprivate72
133 3
3
33
33A
58/
d_editp72
133 3
3
33
33A
58/
d_editpublic72
133 3
3
33
33A
58
:$1
shared_doc
d_read
d_edit
public
private
159 sur 189
<
quota
//3
&
-
<
;<
$-
:
;
" #
'
/home/sympa/expl/mylist/archives/
7
8
-T U7
A
?" #
;
T-U-
TU
:$1
archive
period week
access private
;
archive
-
GET
$
INDEX7
LAST8
period day | week | month | quarter | year
&
-,1dayweekmonthquarteryear H
<
7/home/sympa/expl/mylist/archives/8
access private | public | owner | closed
&
-
,
GETLASTINDEX
A
;
config-
web_archive
queueoutgoing ;
G%&'(
&
:$1
web_archive
access private
quota 10000
160 sur 189
A &access_web_archive
-
,
7
,
8
)-
,
1
accessclosed72
133 3
3
33
33AA 58/
accessintranet7
2
133 3
3
33
33AA 58/
accesslistmaster7
2
133 3
3
33
33AA 58/
accessowner72
133 3
3
33
33AA 58/
accessprivate7
2
133 3
3
33
33AA 58/
accesspublic72
133 3
3
33
33AA 58
A <
quota
//3
&
-
<
G
&
G
default_archive_quotasympa.conf
;<
$
- D"O
A $A
T$A
U
$
A
A
7*
1cleartext8
archive_crypted_msg cleartext | decrypted
&
-G3';':
;
cleartext
/
decrypted
=
:
+
&-
1
161 sur 189
warn_rate
7*
1bounce_warn_rate robot parameter8
&
7
8
$
halt_rate
7*
1bounce_halt_rate robot parameter8
T=&!:*:&U
;
halt_rate
<
$
expire_bounce_task
7*
1daily8
=
!
;
R task_manager.pl
:$1
## Owners are warnt with 10% bouncing addresses
## message distribution is halted with 20% bouncing rate
bounce
warn_rate
10
halt_rate
20
A@
rate
7*
1default_bounce_level1_rate 8
:7B
@BB8 &
-
@ +$
J"b"
@
action remove_bouncers | notify_bouncers | none
7*
1notify_bouncers8
&
-
@1$
@
notification none | owner | listmaster
7*
1owner8
@
-
&
A#
rate
7*
1default_bounce_level2_rate 8
:7B
@BB8 &
-
# +$
b"@BB
#
action remove_bouncers | notify_bouncers | none
162 sur 189
7*
1remove_bouncers8
&
-
#1$
#
notification none | owner | listmaster
7*
1owner8
#
-
&
:$1
## All bouncing adresses with a score between 75 and 100
## will be unsubscribed, and listmaster will receive an email
Bouncers level 2
rate:75 Points
action: remove\_bouncers
Notification: Listmaster
A
A
welcome_return_path unique | owner
7*
1welcome_return_path robot parameter8
;
unique
<
A
A
A
A
remind_return_path unique | owner
7*
1remind_return_path robot parameter8
welcome_return_path
A
A
A
7*
1verp_rate host parameter8
?:6)
?:6)
verp_rate?:6)
/verp_rate@BBO?:6)
?:6)<
VX
:
*
A
A
7*
1include26*9'8
user_data_source file | database | include | include2
163 sur 189
81F1'include include218191'include2
1
+; 1$ # 456+ 7 subscribers & # # - # 456+ & 8# #
9
9 & # 99 9
9 # 9
:9&
8# # ! # 9
9 #! # # &
# ;&<&- # 9
9 9
:9 #! ! # 99 99 # ! ! & 8# # ;&= # 9
:9& # # &
!
$
-
$
7
L
-
(*)F(<8
user_data_sourcefile
--
subscribers
sympa.conf &
user_data_sourcedatabase
&
&
%&&)
;
'F(
#BBBBB $
- ;
L
)
user_data_sourceinclude
%
--!7
8
!
7-
8 ;$
F((*)<
-
?78include_file
include_listinclude_remote_sympa_listinclude_sql_query
include_ldap_query
user_data_sourceinclude2
&
;
*9+
&
7'
8 &
7*
136008
ttldelay_in_seconds
$
include_xx-
&&&(
7
4
48
&
.CBB
A
distribution_ttldelay_in_seconds
164 sur 189
9
G
4
4
&
$
,
-
,
G
&
1
A
include_listlistname
listname
<include_listlistname
/
user_data_source-
-
9
A
B
B
A
-
:$1
include_list local-list
$1
include_list other-local-list@other-local-robot
A
AA
include_remote_sympa_list
%&&)
<
include_remote_sympa_list
9
-
+
&
,
+
-
!6;
remote_host#/
port7*
JJ.8/
path
#7
3338
9%&&)N
%&&)
1
-
7
8
1
certlist
&
-
-
7
-
0
8 &
-
certrobot
165 sur 189
&
-
1
-
0
[email protected]
etc
/
/home/sympa/etc
A<A<
include_sql_query
;
-
F(<
1
db_type
&
7<F(
)? 8 &
-
)*
9
*7*9*8
4
host#
&*
db_port
;
6*9'
db_name
&
user
&
passwd &user
sql_query 1
&F(<
=-
<W
connect_options>?-@:?
&
-
6*9' &
:$1
include_sql_query
db_type mysql
host sqlserv.admin.univ-x.fr
user stduser
passwd mysecret
db_name studentbody
sql_query SELECT DISTINCT email FROM student
connect_options mysql_connect_timeout=5
$
"
db_env!
&
/
6*9'78 &G/G
:$1
db_env
ORACLE_TERM=vt100;ORACLE_HOME=/var/hote/oracle/7.3.4
name# &
;
4
;
6:?;:
0
7
166 sur 189
8
f_dir!!
&
;
?
?
?-
:$1
include_sql_query
db_type oracle
host sqlserv.admin.univ-x.fr
user stduser
passwd mysecret
db_name studentbody
sql_query SELECT DISTINCT email FROM student
AA<
include_ldap_query
&-
(*)<
&
<
Net::LDAP78):6(
host#
=
(*)
1
&
(*)
:$1
host ldap.cru.fr:389,backup-ldap.cru.fr:389
port79(:&:8
)
*
user
!
(*)
passwd5',
)user
use_ssl0
;
yes
(*)
ssl_version!:0!<07*
1sslv38
;(
-
(&(
ssl_ciphers# 7*
1ALL8
;(
-
(
&
=
11(*)ALL
W
suffix *-
7
(*)8
timeout
&
filter#
*-
(*)-
76+##"J
8
attrs
7*
1mail8
&
78
0
167 sur 189
select | 7*
1first8
*-
-
scope | | 7*
1sub8
9
-0
&
1
!1
0
1
0
!1
0
:$1
include_ldap_query
host ldap.cru.fr
suffix dc=cru, dc=fr
timeout 10
filter (&(cn=aumont) (c=fr))
attrs mail
select first
scope one
AA#A<
include_ldap_2level_query
&-
4(*)<
!
-
4<
*=
4<
*=
&user_data_source
include &
<
Net::LDAP78)
host#
=
(*)
1
&
(*)
:$1
host ldap.cru.fr:389,backup-ldap.cru.fr:389
port79(:&:8
)
*
7
-
-
8
user
!
(*)
passwd5',
)user
use_ssl0
;
yes
(*)
ssl_version!:0!<07*
1sslv38
;(
-
(&(
ssl_ciphers# 7*
1ALL8
;(
-
(
&
=
11(*)ALL
W
168 sur 189
suffix1 *-
-
47
(*)8
timeout1
&
-
4<
filter1#
*-
(*)-
-
4<76+##"J
8
attrs1
&
0
4< &
$[attrs1]
select1 | | -7*
1first8
*-
-
$
regex1
-7*
18
&)$
select1
regex
scope1 | | 7*
1sub8
9
-
4
-0
&
1
!1
0
1
0
!1
0
suffix2 *-
47
(*)
8 &[attrs1]
$
-
4<
timeout2
&
4<
filter2#
*-
(*)-
4<76+##"J
8 &[attrs1]
$
-
4<
attrs2
7*
1mail8
&
78
0
4<
select2 | | -7*
1first8
*-
-
$
4<
regex2
-7*
18
&)$
select2
regex
scope2 | | 7*
1sub8
9
4
-0
&
#
1
!1
0
1
0
!1
0
:$1
(cn=testgroup,dc=cru,dc=fr should be a groupOfUniqueNames here)
169 sur 189
include_ldap_2level_query
host ldap.univ.fr
port 389
suffix1 ou=Groups,dc=univ,dc=fr
scope1 one
filter1 (&(objectClass=groupOfUniqueNames) (| (cn=cri)(cn=ufrmi)))
attrs1 uniquemember
select1 all
suffix2 [attrs1]
scope2 base
filter2 (objectClass=n2pers)
attrs2 mail
select2 first
A-
include_filepath_to_file
&-
7
G\G8
-1
## Data for Sympa member import
[email protected] John Smith - math department
[email protected] Sarah Hanrahan - physics department
A
A-
include_remote_file
&
7,8
include_file
$
- !
-
&
1
url
&
!6(
-
user
&
;
%&&)
<
-
passwd
&
;
%&&)
<
-
:$1
include_remote_file
url
http://www.myserver.edu/myfile
user
john_netid
passwd john_passwd
:
/ A
170 sur 189
7*
1
8
&
remind
remind
:$1
remind_task annual
$A
7*
1
8
&
expire
expire
7
8
;
:$1
expire_task annual
7*
1owner8
&review
-
,
7
,
8
&
-
REVIEW7!8
<
)-
,
1
reviewclosed72
133 3
3
33
33 58/
reviewintranet72
133 3
3
33
33 58/
reviewlistmaster72
133 3
3
33
33 58/
reviewowner72
133 3
3
33
33 58/
reviewprivate72
133 3
3
33
33 58/
reviewpublic72
133 3
3
33
33 58
$A,
7*
1max_size
robot parameter8
max_size
//
'$,P4
&
/etc/sympa.conf-
A
A$
171 sur 189
7*
1loop_prevention_regex
sympa.conf parameter8
loop_prevention_regex/00!000
&$
;
$
0
&
A
7*
1pictures_feature
robot parameter8
pictures_feature 0 A
&
7*
1cookie
robot parameter8
cookie/
//
&
-
7ADDDELETE
8 &
&
auth
78
:$1
cookie secret22
7*
1default_list_priority
robot parameter8
priorityB/C
&
&
B
&
10...9
-
7
8
z z
# . @
A
7*
1spam_protection
robot parameter8
172 sur 189
&
?
spam_protection
web_archive_spam_protection
)1
javascript1
K
!K
at1
GYG
G&G
none1
AAA
7*
1web_archive_spam_protection
robot parameter8
&spam_protection
1
cookie
&
:
-
7
N
8 !
1
'
-
-
+
msg_topic
-
;
-
-7A
8 &-
-
msg_topic_keywords_apply_on
7
A
AAA8 &
<
A
A
&
normal &
other &
7subscriber_table
8
'
+
msg_topic.keywords-
&
,
1
editorkey7$
173 sur 189
send.editorkey8
;
request_auth7$send.privatekey8
&
,
1topic
topic-sendertopic-editortopic-autotopic-needed7
,
8 ;
<
&
-
/home/sympa/spool/topic/ ;
'4;* +
X-Sympa-Topic-
-
&
;
"G""
;
G
4
3
:
N
,
G
;
4 ;
-
-
;
<
N
N
&
!6(
%&'(
7
)
8
-W
;
-
1
G
/home/sympa/expl/mylist/shared
&
Create shared
shared_doc
;G
shared_doc
create_list_templates/xx/config.tt2-
&
1
/
/
-
/
/
-
&
174 sur 189
1
/
/
&
;
7
4
,
TU8
;
-
-7--#8
&
;
1
/
-/
-,/
7
8/
$
-/
7-
8
*
&N
<
!
,
-
!
,
-
&
&
;
=
,
<
-
)
63:
&
&
-
&
7
8
-
-
.desc-$
&
-
mydirectory/mysubdirectory
mydirectory/mysubdirectory/.desc &
--
mydirectory/mysubdirectory/myfile.myextension
mydirectory/mysubdirectory/.desc.myfile.myextension
175 sur 189
-
&
7-
8
- !
-
title
<description of the file in a few words>
creation
email
date_epoch
<email of the owner of the document>
<date_epoch of the creation of the document>
access
read <access rights for read>
edit <access rights for edit>
&$
title
module C++ which uses the class List
creation
email [email protected]
date_epoch 998698638
access
read private
edit owner
&-
,
&
&public
;
78
&
&private
:
,
&private
shared
&-
-
-
&
&owner
7
8
&owner
&
&editor
:
9
0
176 sur 189
*
78
&
-
-
;0
&
(
&
&
&
;
;
shared
7
8
&
-
-
- - ,
G-
shared
H
mydirectory/mysubdirectory/myfile
G
7
8
&
1
6
&
,
mydirectory/mysubdirectory/myfileG
,
/
3
myfile7
,
-myfile
do_itG8
mysubdirectorymydirectory8 ;
mydirectory/mysubdirectory/myfile
myfilemysubdirectorymydirectory &
,1
X can read <a/b/c>
if
(X can read <c>
AND X can read <b>
AND X can read <a>)
OR
(X owner of <c>
OR X owner of <b>
OR X owner of <a>)
177 sur 189
:
&
1
X can edit <a/b/c>
if
(X can edit <c>
AND X can edit <b>
AND X can edit <a>)
OR
(X owner of <c>
OR X owner of <b>
OR X owner of <a>)
&
7
8
1
X can control <a/b/c>
if
(X owner of <c>
OR X owner of <b>
OR X owner of <a>)
&
D_ADMIN
&d_admin
G D_READ
6
;
;
-
;
-indexindex.htm
$ &d_read
G
D_CREATE_DIR
&
&
D_DESCRIBE
*
D_DELETE
*
;
D_UPLOAD
!-
D_UNZIP
!,-
&-
c;)-
D_OVERWRITE
-
&
-
D_EDIT_FILED_SAVE_FILE
178 sur 189
:
-
&
-
D_CHANGE_ACCESS
7
8
,
D_SET_OWNER
, &
&
&
-
&
-
A #
&
;-
78
;
N
;
-
;
c;)-
- ;
A
- #
&
- ;
$
-
&
-
A
#
&
A #
&
-
-$
A
#
&
-
:
+
74
8
&
7@
8
$ 0
9
mylist-owner7
-ownerE$
,
179 sur 189
A
AE$8
bouncequeue
1
samplelist-owner: "|/home/sympa/bin/bouncequeue samplelist"
bouncequeue798
/home/sympa/spool/bounce/
9
bounced.pl &
-
;
G
7subscriber_table8 '
bounce_path/mylist/email7bounce_path
-wwsympa.conf
8 =
OTHER/
,
-
1
&
eval_bouncer &
B
@BB
-
7@#8 $
process_bouncers
&
1
Bounces count1
Type rate1-
;
mailbox is full7 J # #
8
B "
7" $ $8
<
@
Regularity rate1
E &
E
msg_count-
&1
Score = bounce_count * type_rate * regularity_rate
&7 -8
1
&
minimum_bouncing_count7
AA
8
&
minimum_bouncing_period7AA8
9
$
&
@B
,
expire_bounce
7$AA
8
-
0
+7A@8 &
-
7A@8 :
-
7
A@8
,%
180 sur 189
?:6)7?:6
)
8
;?:6)
78
&
?:6)
%
?:6)-
?:6)<
,
;
-
?:6)
?:6)
;
$
verp_rate7A
8@BO
@B
?:6) (
?:6)
,
?:6)
;?:6)
1
Return-Path: <bounce+user==a==userdomain==listname@listdomain>
=
VX76
8
6+7+6
+
8
;
(
(
9
6+
;
-
6+
;
1
1
abuse-feedback-report:
"| /home/sympa/bin/bouncequeue sympa@samplerobot"
&
;)7$(8 &
4
4
4
;
!,
:
$
;
antivirus_pathantivirus_args-
7
A4 '3+3?)&'3?
+$
';':
/home/sympa/spool/tmp/antivirus
&*!&
your_infected_msg.tt2
&GG
7$
8
:
3*
181 sur 189
(*)
4
(*)
1
(*)
7
8/
-
,
7=+
8/
(*)$
7A
A8/
(*)$
7*
-8/
(*)78
:
&$% ""
3';':
';':>"BD
-
9
3';':
738
1
S/MIMESecure MIME &
Simple
&
3';':
-
;
3';':
$W6+#.@@#.@##C.##C..#C.J
3';':
)R\b)R;
;
# b
-
3';':
4
!
=
< 78
3';':
';':
:'0
W';':
&
7'
8
3&$%!
3';':
3';':
-
&
3';': 3';':
'
3';':
W&
1$
7$Subject:Date:
To:
3';':
Subject:-
-subscribe-unsubscribe
3&$%
3
S/MIME Symmetric Key Distribution
&
<
182 sur 189
3
;
>"BD
-
G
-
&
-
&
# P
&0
;
&<
(7
133 2
133 58B D " ($
7
-$8
7$ 8
'
-
!
-
3';':
-
&-
)R;
1
-
)R;
-
7(*)8
&
G
-
-
-
):'-
/home/sympa/expl/X509-user-certs/
+
Y YY Y7
@enc@signE$
-
8 =
-
-
-
&3-
;
(
;
(
&<
-
-
(
-
-
&
openSSL
capath3cafile
openssl1
(-/usr/local/ssl/bin/openSSL/
cafile7capath81
7
8
-
&-
~/home/sympa/bin/etc/cabundle.crt
&cafile-7
capath
8
VA-
&<G
-
A
/
key_password1
183 sur 189
-
,3';':
OpenSSL
sympa.conf-3
3';':
,
7
,
8
,
;
smtp
smime
;
,
,
<
0
<
,
# b
(-
,
7
8
smime
&$
send.private_smime
3
1
title.us restricted to subscribers check SMIME signature
title.fr limité aux abonnés, vérif de la signature SMIME
is_subscriber([listname],[sender])
is_owner([listname],[sender])
smime
smime
-> do_is_editor([listname],[sender])
-> do_it
smime
;
$
,
&
$send.private_key<
'*"
3';':
1
title.us restricted to subscribers with previous MD5 authentication
title.fr réservé aux abonnés avec authentification MD5 préalable
is_subscriber([listname],[sender]) smtp
true()
md5,smime
-> request_auth
-> do_it
;
3
&
3';':
3
3';':
M;
>"BD
-
<
G
&
-
<
&
3
&3
&
>"BD
-
-
<
-
&
-
$ 3
-
/home/sympa/bin/p12topem.pl
&
)R\@#-
-
;
7
133 2
133 583)R;G
-
184 sur 189
4 -
G
cafile-
capath-
&
-/home/sympa/expl/mylist/private_key -
password
sympa.conf
!
>"BD
-
;>"BD
-
1',
:$
-
$
-
%
-
1
H
-
-
-
:$
-
&
=
pkcs#12 -
\@#-
):'-1cert.pemprivate_key
/home/sympa/bin/p12topem.pl
!p12topem.pl -help
9
cert.pemprivate_key
r
-
-
G
0;
-
&
6
A
A$
A
A
A
sympa.conf
-
A
A$
chk_cert_expiration.daily.task
$
-
/home/sympa/expl/X509-user-certs/
&
daily_cert_expiration
3
-
$
$
A
crl_update.daily.task
-
:
3 !
<
7
8
&
<
185 sur 189
<
&
Subject:
&To:
Sympadomain
,
listservdomain
:$1
From: [email protected]
To: [email protected]
LISTS
INFO Sympa-users
REVIEW Sympa-users
QUIT
'
4
7 REV
REVIEW8
3 HELP
)
&
helpfile.tt2
-
INFO
)
-7
8
&
~welcome[.mime]
LISTS
)
&
visibility
7?
8 &lists.tt2
-
LISTS
REVIEW
)
,
-
-
,
(
!!
WHICH
6
-
7*;H:&=';(!''6=:(8
STATS
)
-
1
&
stats- review
INDEX
)$
- GET
GET#!
&
78 REVIEW LAST
&
78 GET
186 sur 189
SUBSCRIBE 6<
4
-
&
;
-
7
8
INVITE %# ;
- &
&
ADD
-
SIGNOFF2
%#5
6<
-
SIGNOFF *
SETDIGEST
)
;
&
3
&
:&(;&=':';(
Q9R'6R1
ASSETSUMMARY
)
summary
;
&
*;H:&
&
Q9R'6R1
ASSETNOMAIL
)
nomail
&
&
:&(;&=':';(
SETTXT
)
txt
&
$
3
$
3
$
3
SETHTML
)
html
&
$
3
$
3
$
3
SETURLIZE
)
urlize
&
- &
-!6(
-
SETNOT_ME
)
not_me
&
3
Q9R'6R1
ASSETMAIL
)
normal7
8
&
nomailsummarydigest ;
nomail
:&(;&=':=';(
'
7'
8
Q9R'6R1
ASSETCONCEAL
)
conceal
&
187 sur 189
REVIEW
:&(;&=':==:(
?
Q9R'6R1
ASSETNOCONCEAL
)
noconceal7
8
&
REVIEW
&conceal
:&(;&=':=:(
?
QUIT
:
&
$
G7'!8
CONFIRM
;
send
privatekeypublickeyprivateorpublickey
4
78 +
<
CONFIRM
QUIET
&
7
81
-$
QUIET
. <
&
<
&1
ADD %# SUBSCRIBE -
QUIET-$7 1
QUIET ADD8
DELETE %#
*
SIGNOFF -
QUIET-$7 1
QUIET DELETE8
Q9R'6R1ASREMIND
REMIND
&
remind.tt2-
REMIND *
REMIND *
3
;
global_remind.tt2- +
-
7
8 9
)
W
&-$
QUIET
;
7
8
'
DISTRIBUTE
;
send
editorkeyeditorkeyonly<
188 sur 189
7<8
&
REJECT
&
MODINDEX
&
<
&
$
,
:
3
$
a(
-1#BBb3B#3#B@"1BJ7$
8
189 sur 189