SlideShare a Scribd company logo
1 of 27
Download to read offline
List service
What is Sympa ?
Like mailman, phplist, listserv, etc.
●
Sympa = SYstème de MultiPostage Automatique
●
It's was a mailing list manager
●
GPLv2, writen in perl
●
First version : 1st April 1997
●
large organizations have special needs
Tracking
Listes
auto
Custom
conditions
UTF 8
Named
filters
2007
5.3
Full
V. hosts
VERP
2006
5.2
RSS
2005
5.0
SSO
SOAP
2003
4.0
Antivirus
2001
3.2
S/MIME
HTTPS
Shared
2000
3.0
Archives
Modération
Scénarios
1997
0.001 6.
2
Web
1999
2.3
DKIM
XSS
Merge
2010
6.1
Bulk.pl
Mot de passe
MD5
Autotools
CSS
2009
6.0
Sessions
Custom
attributes
2008
5.4
BD
Inclusions
Bounces
2.2
1998
V. hosts
Task
manager
Auth
LDAP
3.3
2002
TT2
Familles
2004
4.2
sympa userbase
●
Serveurs : 3 500
●
Listes : ………………….. 1 300 000
●
Utilisateurs : …………. 35 000 000
●
Abonnements : ……. 130 000 000
●
Messages entrants : … 1 200 000
●
Messages sortants : .. 17 000 000
big ones
Biggest list : 1,6 millions subscribers
Most lists on a single server : 32 000
Most virtual hosts on a single server : 30 000
Most subscribers on a server : 3 millions
Users :
●
Research and education : 90 % of organizations in France
●
French ministries (defense, foreign affairs, finances, etc.)
●
Private companies (Illiad, Orange, Atos)
●
Hosting services (Infomaniak)
●
(Riseup.net, queernet)
●
NASA, UNESCO, CGT, etc.
●
Majority of users out of France (fully translated to a dozen languages, 30
other on their way...)
☺
sympa management
1997
CRU
2011
RENATER
2016
RENATER
2017
Communauté
RENATER
State nowaday
●
IS integration (produce/consume)
●
List management industrialization
●
Expressive authorization mechanism
●
Group management
●
Heavily customizable
●
And so many more, but I only have 50
minutes...
Sending mails
●
Bulk mailing :
– Group mails by domain
– Performance management (don't become a spammer but get mail out
anyway)
●
S/MIME (signing and crypting)
●
state of art (VERP,DMARC, DKIM, ARC)
●
Bounce automatic management
●
(privacy respecting) mail tracking
●
Web archives – controlled access
That's the basic purpose after all
spool
msg
bounce
task
outgoing
arc
config
bounced.pl
sympa.pl
task_manager.pl
archived.pl bulk.pl
Incoming
MTA
Incoming
MTA
Outgoing
MTA
Outgoing
MTA
bulk.pl bulk.pl
Sending workflow
MTA DB
Web serverAuthentication
Referential
IS integration
MTA
●
Sendmail
●
Postfix
●
Exim
IS integration
DB
●
MySQL
●
Postgres
●
Oracle
●
SQLite
●
Sybase
IS integration
Web server
●
Apache
●
Lighthttpd
●
Nginx
IS integration
Referential
●
Database
●
LDAP
●
Files
●
Web service
IS integration
Authentication
●
Native
●
CAS
●
LDAP
●
Shibboleth
IS integration
MTA DB
Web serverAuthentication
Referential
Sympa alone
Is useless...
IS integration
Industrialisation
Key1 val1
Key2 val2
Key3 val3
Key1 val1
Key2 val2
Key3 val3
Key4 val4
Key5 val5
Key1 [% key1 %]
Key2 [% key2 %]
Key3 [% key3 %]
Key4 val9
Web form
General
configuration
(defines defaults)
List template
Key1 val1
Key2 val2
Key3 val3
Key4 val9
Key5 val5
List configuration file
Manual creation
Industrialisation
Key1 val1
Key2 val2
Key3 val3
Key4 val4
Key5 val5
Key1 [% key1 %]
Key2 [% key2 %]
Key3 [% key3 %]
Key4 val9
XML document
General
configuration
(defines defaults)
List template
Key1 val1
Key2 val2
Key3 val3
Key4 val9
Key5 val5
Lists configuration files
List families <list>
<Key1>val1</Key1>
</list>
<list>
<Key1>val3</Key1>
</list>
Key1 val3
Key2 val2
Key3 val3
Key4 val9
Key5 val5
Industrialisation
●
Automatic lists = List families ++
●
Large number of potential lists – very few actually used
●
Example :
– Three categories : rank, location, unit.
– 20 values per category
– => 8000 potential lists
●
Solution : preparing a family but create lists only the first
time they're used.
●
The name of the list contains the values normally provided
by the XML file
●
Example : auto+engineer-sofia-research@domain.tld
Industrialisation
Key1 val1
Key2 val2
Key3 val3
Key4 val4
Key5 val5
Key1 [% key1 %]
Key2 [% key2 %]
Key3 [% key3 %]
Key4 val9
Mail to
auto+val3@domain.tld
General
configuration
(defines defaults)
List template
Key1 val3
Key2 val2
Key3 val3
Key4 val9
Key5 val5
List configuration files
Automatic lists
Listname
analysis Key1 = val3
Industrialisation
●
Automatic lists on the web
●
Automatic lists : difficult because you need
to remember :
– The structure of the list names : prefix+field1-field2...
– The values these fields can take
●
Sympa evolved to integrate them to its web
interface
Industrialisation
Authorization
●
Authorizations are handled by scenarios
●
File named <action>.<scenario>
– <action> :
●
what the user tries to do : send, web_archives, review, etc.
●
The name of the parameter to use in configuration
– <scenario> :
●
whatever you want to identify the scenario
●
The value to set for the parameter <action>
●
Example :
– Config : « send subscribers »
– Scenario used : « send.subscribers »
is_subscriber([listname],[sender]) smime -> do_it
is_subscriber([listname],[sender]) smtp -> request_auth
is_editor([listname],[sender]) smime -> do_it
is_owner([listname],[sender]) smime -> do_it
Authorization
A scenario looks like this :
General structure :
<test> <authentication method> -> <decision>
Senario evaluated from top to bottom. It stops at the first test that returns true
Authorization
Decision :
●
do_it : do the requested action (send the message, grant access to archives, etc.)
●
reject : don't execute the action
●
owner : request moderation from the list owner
●
etc.
Authentication method :
●
smime : request from a message containing a vlid S/MIME signature
●
smtp : no authentication except the From field
●
md5 : message confirmed by mail or request from an authenticated user from the web
interface
●
dkim : DKIM signed message
Tests :
●
is_subscriber : check whether the user is subscrbed to a given list
●
is_owner : check whether the user is owner of a given list
●
match : checks a string against a regexp
●
etc.
●
If none fits your need, just use custom_condition that uses your own module...
List service
SOAP service
Third party
application
request
Sympa groups
Group manager
List = group
Lists can be merged
to form larger lists
Manage groups :
●
Manually (manual subscription)
●
Automatically (from external data sources)
●
Both...
Customization
●
You can modify most Sympa behaviours :
– At the server level,
– At the virtual host level,
– At the list level
●
What can you customize ?
– Web interface,
– Service messages,
– List creation templates,
– Scenario (and create new conditions or scenarios),
– Create your own list parameters,
– Add new attributes to users (in addition to email),
– Tasks
– Default list and virtual hosts configuration,
– You name it...
but
●
lack of documentation
●
installing is hard
●
need of more commercial support
●
hard to get new regular contributors
●
i hope smtp to be back

More Related Content

Similar to Sympa project presented at OW2con'19, June 12-13, Paris.

Trouble shoot with linux syslog
Trouble shoot with linux syslogTrouble shoot with linux syslog
Trouble shoot with linux syslog
ashok191
 
User management through administration process 2307
User management through administration process 2307User management through administration process 2307
User management through administration process 2307
Hansraj Mali
 
Do The Right Thing! How LDAP servers should help LDAP clients
Do The Right Thing! How LDAP servers should help LDAP clientsDo The Right Thing! How LDAP servers should help LDAP clients
Do The Right Thing! How LDAP servers should help LDAP clients
LDAPCon
 

Similar to Sympa project presented at OW2con'19, June 12-13, Paris. (20)

Central LogFile Storage. ELK stack Elasticsearch, Logstash and Kibana.
Central LogFile Storage. ELK stack Elasticsearch, Logstash and Kibana.Central LogFile Storage. ELK stack Elasticsearch, Logstash and Kibana.
Central LogFile Storage. ELK stack Elasticsearch, Logstash and Kibana.
 
Nmon Analysis - Performance monitoring tool for LINUX and AIX
Nmon Analysis - Performance monitoring tool for LINUX and AIXNmon Analysis - Performance monitoring tool for LINUX and AIX
Nmon Analysis - Performance monitoring tool for LINUX and AIX
 
Welcome Webinar Slides
Welcome Webinar SlidesWelcome Webinar Slides
Welcome Webinar Slides
 
Unix Administration 5
Unix Administration 5Unix Administration 5
Unix Administration 5
 
Useful Terms Related to cPanel & WHM
Useful Terms Related to cPanel & WHMUseful Terms Related to cPanel & WHM
Useful Terms Related to cPanel & WHM
 
Trouble shoot with linux syslog
Trouble shoot with linux syslogTrouble shoot with linux syslog
Trouble shoot with linux syslog
 
User management through administration process 2307
User management through administration process 2307User management through administration process 2307
User management through administration process 2307
 
Getting Started with the OpenNTF Domino API
Getting Started with the OpenNTF Domino APIGetting Started with the OpenNTF Domino API
Getting Started with the OpenNTF Domino API
 
Nzitf Velociraptor Workshop
Nzitf Velociraptor WorkshopNzitf Velociraptor Workshop
Nzitf Velociraptor Workshop
 
Overview of RedDatabase 2.5
Overview of RedDatabase 2.5Overview of RedDatabase 2.5
Overview of RedDatabase 2.5
 
Top 10 Tricks and Tools of an Oracle EPM Administrator
Top 10 Tricks and Tools of an Oracle EPM AdministratorTop 10 Tricks and Tools of an Oracle EPM Administrator
Top 10 Tricks and Tools of an Oracle EPM Administrator
 
Monitoring active-directory
Monitoring active-directoryMonitoring active-directory
Monitoring active-directory
 
Monitoring active-directory
Monitoring active-directoryMonitoring active-directory
Monitoring active-directory
 
AD102 - Break out of the Box
AD102 - Break out of the BoxAD102 - Break out of the Box
AD102 - Break out of the Box
 
Using OpenLDAP
Using OpenLDAPUsing OpenLDAP
Using OpenLDAP
 
24 Hours Of Exchange Server 2007 ( Part 10 Of 24)
24  Hours Of  Exchange  Server 2007 ( Part 10 Of 24)24  Hours Of  Exchange  Server 2007 ( Part 10 Of 24)
24 Hours Of Exchange Server 2007 ( Part 10 Of 24)
 
High Performance Mysql
High Performance MysqlHigh Performance Mysql
High Performance Mysql
 
Massive emailing with Linux, Postfix and Ruby on Rails
Massive emailing with Linux, Postfix and Ruby on RailsMassive emailing with Linux, Postfix and Ruby on Rails
Massive emailing with Linux, Postfix and Ruby on Rails
 
Do The Right Thing! How LDAP servers should help LDAP clients
Do The Right Thing! How LDAP servers should help LDAP clientsDo The Right Thing! How LDAP servers should help LDAP clients
Do The Right Thing! How LDAP servers should help LDAP clients
 
XMPP Intro 1101 - 2008
XMPP Intro 1101 - 2008XMPP Intro 1101 - 2008
XMPP Intro 1101 - 2008
 

More from OW2

OW2 Association Européenne aux racines grenobloises, transformer l'industrie ...
OW2 Association Européenne aux racines grenobloises, transformer l'industrie ...OW2 Association Européenne aux racines grenobloises, transformer l'industrie ...
OW2 Association Européenne aux racines grenobloises, transformer l'industrie ...
OW2
 
Enabling DevOps for IoT software development, powered by Open Source, OW2onli...
Enabling DevOps for IoT software development, powered by Open Source, OW2onli...Enabling DevOps for IoT software development, powered by Open Source, OW2onli...
Enabling DevOps for IoT software development, powered by Open Source, OW2onli...
OW2
 

More from OW2 (20)

OW2 and RIOS teaming up to boost the open source impact, Nov. 2022 in Roma
OW2 and RIOS teaming up to boost the open source impact, Nov. 2022 in RomaOW2 and RIOS teaming up to boost the open source impact, Nov. 2022 in Roma
OW2 and RIOS teaming up to boost the open source impact, Nov. 2022 in Roma
 
The Open Source Good Governance Initiative presented at RIOS OS Week, Nov. 20...
The Open Source Good Governance Initiative presented at RIOS OS Week, Nov. 20...The Open Source Good Governance Initiative presented at RIOS OS Week, Nov. 20...
The Open Source Good Governance Initiative presented at RIOS OS Week, Nov. 20...
 
GLPi v.10, les fonctionnalités principales et l'offre cloud
GLPi v.10, les fonctionnalités principales et l'offre cloudGLPi v.10, les fonctionnalités principales et l'offre cloud
GLPi v.10, les fonctionnalités principales et l'offre cloud
 
Centreon: superviser le Cloud et le Legacy à partir d'une même plateforme, po...
Centreon: superviser le Cloud et le Legacy à partir d'une même plateforme, po...Centreon: superviser le Cloud et le Legacy à partir d'une même plateforme, po...
Centreon: superviser le Cloud et le Legacy à partir d'une même plateforme, po...
 
FusionIAM : la gestion des identités et des accés open source
FusionIAM : la gestion des identités et des accés open sourceFusionIAM : la gestion des identités et des accés open source
FusionIAM : la gestion des identités et des accés open source
 
OW2 Association Européenne aux racines grenobloises, transformer l'industrie ...
OW2 Association Européenne aux racines grenobloises, transformer l'industrie ...OW2 Association Européenne aux racines grenobloises, transformer l'industrie ...
OW2 Association Européenne aux racines grenobloises, transformer l'industrie ...
 
SFScon'20 Bringing the User into the Equation
SFScon'20 Bringing the User into the EquationSFScon'20 Bringing the User into the Equation
SFScon'20 Bringing the User into the Equation
 
Towards a sustainable solution to open source sustainability, OW2online20, Ju...
Towards a sustainable solution to open source sustainability, OW2online20, Ju...Towards a sustainable solution to open source sustainability, OW2online20, Ju...
Towards a sustainable solution to open source sustainability, OW2online20, Ju...
 
Advanced proactive and polymorphing cloud application adaptation with MORPHEM...
Advanced proactive and polymorphing cloud application adaptation with MORPHEM...Advanced proactive and polymorphing cloud application adaptation with MORPHEM...
Advanced proactive and polymorphing cloud application adaptation with MORPHEM...
 
Open Source governance and the Eclipse Foundation, OW2online, June 2020
Open Source governance and the Eclipse Foundation, OW2online, June 2020Open Source governance and the Eclipse Foundation, OW2online, June 2020
Open Source governance and the Eclipse Foundation, OW2online, June 2020
 
Open source contribution policies, OW2online, June 2020
Open source contribution policies, OW2online, June 2020Open source contribution policies, OW2online, June 2020
Open source contribution policies, OW2online, June 2020
 
Software development at scale, pandemic lockdown and oss ecosystems, OW2onlin...
Software development at scale, pandemic lockdown and oss ecosystems, OW2onlin...Software development at scale, pandemic lockdown and oss ecosystems, OW2onlin...
Software development at scale, pandemic lockdown and oss ecosystems, OW2onlin...
 
Overview of the OpenChain Reference Tooling Work Group, OW2online20, June 2020
Overview of the OpenChain Reference Tooling Work Group, OW2online20, June 2020Overview of the OpenChain Reference Tooling Work Group, OW2online20, June 2020
Overview of the OpenChain Reference Tooling Work Group, OW2online20, June 2020
 
Open Source Compliance at Orange, OW2online, June 2020
Open Source Compliance at Orange, OW2online, June 2020Open Source Compliance at Orange, OW2online, June 2020
Open Source Compliance at Orange, OW2online, June 2020
 
Ideas, methods and tools for OSS Compliance assessment, OW2online, June 2020
Ideas, methods and tools for OSS Compliance assessment, OW2online, June 2020Ideas, methods and tools for OSS Compliance assessment, OW2online, June 2020
Ideas, methods and tools for OSS Compliance assessment, OW2online, June 2020
 
Intelligent package management with FASTEN, OW2online, June 2020
Intelligent package management with FASTEN, OW2online, June 2020Intelligent package management with FASTEN, OW2online, June 2020
Intelligent package management with FASTEN, OW2online, June 2020
 
DECODER, a Smarter Environment for DevOps Teams , OW2online, June 2020
DECODER, a Smarter Environment for DevOps Teams , OW2online, June 2020DECODER, a Smarter Environment for DevOps Teams , OW2online, June 2020
DECODER, a Smarter Environment for DevOps Teams , OW2online, June 2020
 
Enabling DevOps for IoT software development, powered by Open Source, OW2onli...
Enabling DevOps for IoT software development, powered by Open Source, OW2onli...Enabling DevOps for IoT software development, powered by Open Source, OW2onli...
Enabling DevOps for IoT software development, powered by Open Source, OW2onli...
 
Upcoming Challenges in Artificial Intelligence Research and Development, OW2o...
Upcoming Challenges in Artificial Intelligence Research and Development, OW2o...Upcoming Challenges in Artificial Intelligence Research and Development, OW2o...
Upcoming Challenges in Artificial Intelligence Research and Development, OW2o...
 
Cacti and Big Data at Orange France, OW2online, June 2020
Cacti and Big Data at Orange France, OW2online, June 2020Cacti and Big Data at Orange France, OW2online, June 2020
Cacti and Big Data at Orange France, OW2online, June 2020
 

Recently uploaded

Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
UXDXConf
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
panagenda
 

Recently uploaded (20)

Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
 
TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
 
How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdf
 
Syngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdf
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe
 
Designing for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastDesigning for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at Comcast
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
 
Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform Engineering
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
 
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 
What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024
 
AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System Strategy
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 Warsaw
 
ECS 2024 Teams Premium - Pretty Secure
ECS 2024   Teams Premium - Pretty SecureECS 2024   Teams Premium - Pretty Secure
ECS 2024 Teams Premium - Pretty Secure
 
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
 

Sympa project presented at OW2con'19, June 12-13, Paris.

  • 1. List service What is Sympa ? Like mailman, phplist, listserv, etc. ● Sympa = SYstème de MultiPostage Automatique ● It's was a mailing list manager ● GPLv2, writen in perl ● First version : 1st April 1997 ●
  • 2. large organizations have special needs Tracking Listes auto Custom conditions UTF 8 Named filters 2007 5.3 Full V. hosts VERP 2006 5.2 RSS 2005 5.0 SSO SOAP 2003 4.0 Antivirus 2001 3.2 S/MIME HTTPS Shared 2000 3.0 Archives Modération Scénarios 1997 0.001 6. 2 Web 1999 2.3 DKIM XSS Merge 2010 6.1 Bulk.pl Mot de passe MD5 Autotools CSS 2009 6.0 Sessions Custom attributes 2008 5.4 BD Inclusions Bounces 2.2 1998 V. hosts Task manager Auth LDAP 3.3 2002 TT2 Familles 2004 4.2
  • 3. sympa userbase ● Serveurs : 3 500 ● Listes : ………………….. 1 300 000 ● Utilisateurs : …………. 35 000 000 ● Abonnements : ……. 130 000 000 ● Messages entrants : … 1 200 000 ● Messages sortants : .. 17 000 000
  • 4. big ones Biggest list : 1,6 millions subscribers Most lists on a single server : 32 000 Most virtual hosts on a single server : 30 000 Most subscribers on a server : 3 millions Users : ● Research and education : 90 % of organizations in France ● French ministries (defense, foreign affairs, finances, etc.) ● Private companies (Illiad, Orange, Atos) ● Hosting services (Infomaniak) ● (Riseup.net, queernet) ● NASA, UNESCO, CGT, etc. ● Majority of users out of France (fully translated to a dozen languages, 30 other on their way...) ☺
  • 6. State nowaday ● IS integration (produce/consume) ● List management industrialization ● Expressive authorization mechanism ● Group management ● Heavily customizable ● And so many more, but I only have 50 minutes...
  • 7. Sending mails ● Bulk mailing : – Group mails by domain – Performance management (don't become a spammer but get mail out anyway) ● S/MIME (signing and crypting) ● state of art (VERP,DMARC, DKIM, ARC) ● Bounce automatic management ● (privacy respecting) mail tracking ● Web archives – controlled access That's the basic purpose after all
  • 15. MTA DB Web serverAuthentication Referential Sympa alone Is useless... IS integration
  • 16. Industrialisation Key1 val1 Key2 val2 Key3 val3 Key1 val1 Key2 val2 Key3 val3 Key4 val4 Key5 val5 Key1 [% key1 %] Key2 [% key2 %] Key3 [% key3 %] Key4 val9 Web form General configuration (defines defaults) List template Key1 val1 Key2 val2 Key3 val3 Key4 val9 Key5 val5 List configuration file Manual creation
  • 17. Industrialisation Key1 val1 Key2 val2 Key3 val3 Key4 val4 Key5 val5 Key1 [% key1 %] Key2 [% key2 %] Key3 [% key3 %] Key4 val9 XML document General configuration (defines defaults) List template Key1 val1 Key2 val2 Key3 val3 Key4 val9 Key5 val5 Lists configuration files List families <list> <Key1>val1</Key1> </list> <list> <Key1>val3</Key1> </list> Key1 val3 Key2 val2 Key3 val3 Key4 val9 Key5 val5
  • 18. Industrialisation ● Automatic lists = List families ++ ● Large number of potential lists – very few actually used ● Example : – Three categories : rank, location, unit. – 20 values per category – => 8000 potential lists ● Solution : preparing a family but create lists only the first time they're used. ● The name of the list contains the values normally provided by the XML file ● Example : auto+engineer-sofia-research@domain.tld
  • 19. Industrialisation Key1 val1 Key2 val2 Key3 val3 Key4 val4 Key5 val5 Key1 [% key1 %] Key2 [% key2 %] Key3 [% key3 %] Key4 val9 Mail to auto+val3@domain.tld General configuration (defines defaults) List template Key1 val3 Key2 val2 Key3 val3 Key4 val9 Key5 val5 List configuration files Automatic lists Listname analysis Key1 = val3
  • 20. Industrialisation ● Automatic lists on the web ● Automatic lists : difficult because you need to remember : – The structure of the list names : prefix+field1-field2... – The values these fields can take ● Sympa evolved to integrate them to its web interface
  • 22. Authorization ● Authorizations are handled by scenarios ● File named <action>.<scenario> – <action> : ● what the user tries to do : send, web_archives, review, etc. ● The name of the parameter to use in configuration – <scenario> : ● whatever you want to identify the scenario ● The value to set for the parameter <action> ● Example : – Config : « send subscribers » – Scenario used : « send.subscribers »
  • 23. is_subscriber([listname],[sender]) smime -> do_it is_subscriber([listname],[sender]) smtp -> request_auth is_editor([listname],[sender]) smime -> do_it is_owner([listname],[sender]) smime -> do_it Authorization A scenario looks like this : General structure : <test> <authentication method> -> <decision> Senario evaluated from top to bottom. It stops at the first test that returns true
  • 24. Authorization Decision : ● do_it : do the requested action (send the message, grant access to archives, etc.) ● reject : don't execute the action ● owner : request moderation from the list owner ● etc. Authentication method : ● smime : request from a message containing a vlid S/MIME signature ● smtp : no authentication except the From field ● md5 : message confirmed by mail or request from an authenticated user from the web interface ● dkim : DKIM signed message Tests : ● is_subscriber : check whether the user is subscrbed to a given list ● is_owner : check whether the user is owner of a given list ● match : checks a string against a regexp ● etc. ● If none fits your need, just use custom_condition that uses your own module...
  • 25. List service SOAP service Third party application request Sympa groups Group manager List = group Lists can be merged to form larger lists Manage groups : ● Manually (manual subscription) ● Automatically (from external data sources) ● Both...
  • 26. Customization ● You can modify most Sympa behaviours : – At the server level, – At the virtual host level, – At the list level ● What can you customize ? – Web interface, – Service messages, – List creation templates, – Scenario (and create new conditions or scenarios), – Create your own list parameters, – Add new attributes to users (in addition to email), – Tasks – Default list and virtual hosts configuration, – You name it...
  • 27. but ● lack of documentation ● installing is hard ● need of more commercial support ● hard to get new regular contributors ● i hope smtp to be back