installation de Sympa sous Debian Jessie/GNU Linux (listes de diffusion) sur un VPS (virtual private server) avec signatures SPF,DMARC et DKIM

Cette installation permettra de créer des listes dans le domaine listes.mondomaine.fr

Elles seront de la forme maliste@listes.mondomaine.fr.
L’objectif poursuivi est de pouvoir envoyer des messages à des listes de diffusion, il n’est pas de mettre en place une messagerie complète (avec son serveur IMAP). Cela peut être ajouté mais ne fait pas partie de cette procédure pour le moment.

Sympa peut être configuré, et nous le ferons, pour embarquer les signatures DMARC et DKIM dans les messages qu’il envoie aux membres des listes, ce qui permet d’avoir des taux de réussite des envois élevés, et peu de fichier dans les dossiers spam ou autres indésirables.
Nous protégerons le serveur web en utilisant Let’s Encrypt.
Notre utilisation de ces listes est essentiellement pour des newsletters (listes privées, ou les membres ne peuvent répondre à la liste, mais on peut faire tous types de listes), nous ne mettons donc pas en place d’ antivirus (pour le moment)

Avertissement: Pour mener à bonne fin cette procédure, il est nécessaire de connaître GNU/Linux, en particulier sur la manipulation des fichiers de configuration et maîtriser la modification de zones DNS auprès de son Registrar ainsi que les commandes host et dig. Il faut aussi avoir la patience d’attendre et de vérifier que les zones DNS sont bien propagées et à jour. Elle s’adresse plutôt à des informaticiens professionnels.

Ajouts:

  • le 8 Mai 2017 (paragraphe 11 bis)  l’envoi de messages cryptés (SSL/TLS) en utilisant le certificat LetsEncrypt du serveur Web
  • le 11 Juillet 2017: après plusieurs mois d’utilisation, plus aucun message envoyé par les listes ne pose problème. Toutes les signatures paraissent connectes, les messages n’arrivent plus en spam chez hotmail, yahoo, aol, gmail, outlook.fr, ….

1 – Prérequis:

– pour les blacklists: https://mxtoolbox.com/blacklists.aspx et http://www.dnsbl.info/dnsbl-database-check.php par exemple. Bien regarder si l’IP n’est sur aucune liste.

    • Si votre IP est blacklistée par une ou quelques listes, ou a mauvaise réputation au village, arrêtez vous là, vous serez embêtés essentiellement par yahoo, hotmail et consorts (voir à la fin de la page un petit témoignage). Les messages partiront, mais vous n’aurez que les logs de postfix pour vous prévenir que les messages ne sont pas délivrés, autant dire que vous ne vous apercevrez pas. Il faut changer de serveur ou d’interface pour changer d’IP, en espérant que la prochaine adresse attribuée au serveur ne sera pas blacklistée. Vous pouvez aussi faire des demandes de delist, mais c’est compliqué et souvent très lent.
    • Malgré tout, même avec les signatures correctement configurées, en regardant les signatures dans le message arrivé, vous pourrez avoir des messages qui arriveront en spam, sans que l’on sache pourquoi…(voir un exemple à la fin de cette page)
    • reconfigurer les locales du serveur
dpkg-reconfigure locales

Choisir fr_FR-UTF8 dans la liste (mettre une * en appuyant sur la barre espace) et choisir cette locale par défaut.

 

 

  • Le domaine utilisé pour les listes de diffusion et pour l’envoi de messages est listes.mondomaine.fr: Il est bon, quand c’est possible car le serveur peut héberger d’autres applications, d’ajouter à sa zone DNS un enregistrement PTR (reverse DNS) portant le nom du sous domaine de la liste (listes.mondomaine.fr). On aquand même de bons résultats sans le faire. Cela est indispensable pour AOL, sinon les mails n’arrivent pas et on n’est prévenu que par les logs de postfix

Commencer par ajouter dans la zone mondomaine.fr 2 enregistrements DNS (les enregistrements sont ici en mode texte, de nombreux providers permettent de les rentrer ainsi directement, comme le mode « expert » de gandi.net);

listes A w.x.y.z

listes MX 10 listes.mondomaine.fr.

N’oubliez pas le . après mondomaine.fr. La valeur 10 (peu importe la valeur) est le « poids » du serveur, nous ne configurerons qu’un serveur d’envoi supposant ainsi qu’il ne « tombera » pas.

Une fois propagés les 2 nouveaux enregistrements DNS, la commande

 $host -t a listes.mondomaine.fr

note: les lignes commençant par $ sont des commandes à taper en simple utilisateur, les lignes commançcant par # sont des commandes à taper en root

doit renvoyer:

listes.mondomaine.fr has address w.x.y.z

et la commande

 $host -t mx listes.mondomaine.fr

doit renvoyer quelque chose du genre:

listes.mondomaine.fr mail is handled by 10 listes.mondomaine.fr.

Remarque: Pour gagner du temps pour voir si la propagation se fait bien, on peut utiliser la commande:

dig @a.dns.gandi.net mx listes.mondomaine.fr

ce qui suit le @ est ne nom d’un des DNS du fournisseur du VPS (ici gandi.net). La propagation des zones DNS commence par ce faire sur les DNS du fournisseur du VPS, et donc on voit les changements apparaitre plus rapidement. Cela permet de ne pas perdre patience.

 

2 – Installations et configurations

 # aptitude update && aptitude upgrade

# aptitude install apache2 libapache2-mod-fcgid mysql-server postfix sympa opendkim opendkim-tools opendmarc mailutils

Sur une installation « fraiche » de Debian Jessie on doit avoir

Les NOUVEAUX paquets suivants vont être installés :
libdbd-mysql-perl{a} libmysqlclient18{a} mysql-client-5.5{a}
mysql-common{a} mysql-server mysql-server-5.5{a} mysql-server-core-5.5{a}
postfix{b} sympa
0 paquets mis à jour, 9 nouvellement installés, 0 à enlever et 0 non mis à jour.
Il est nécessaire de télécharger 1 371 ko/11,4 Mo d'archives. Après dépaquetage, 108 Mo seront utilisés.
Les paquets suivants ont des dépendances non satisfaites :
postfix : Est en conflit avec: mail-transport-agent qui est un paquet virtuel
exim4-daemon-light : Est en conflit avec: mail-transport-agent qui est un paquet virtuel
exim4-config : Est en conflit avec: postfix mais 2.11.3-1 doit être installé.
Les actions suivantes permettront de résoudre ces dépendances :

Supprimer les paquets suivants :
1) exim4
2) exim4-base
3) exim4-config
4) exim4-daemon-light

Accepter cette solution ? [Y/n/q/?

Répondre Y deux fois . Par défaut le seveur de messagerie installé par défaut avec debian Jessie est exim4, nous le remplacons par postfix.

 

Lors de l’installation de postfix quelques questions sont posées:

Note: si vous avez bien configuré les locales du serveur, vous devez maintenant avoir les messages ci dessous en français, si ce n’est pas le cas vous pourrez le faire plus tard.

  1. répondre « Site Internet « 
  2. System mail name (Nom de courrier ): listes.mondomaine.fr

Lors de l’installation un mot de passe pour l’utilisateur root est demandé: taper et retaper un mot de passe, le noter pour s’en souvenir.

Puis lors de l’installation de sympa:

  1. Configure database for sympa with dbconfig-common? : Yes
  2. Database type to be used by sympa: mysql
  3. un mot de passe est demandé pour l’utilisateur sympa (utilisateur par défaut), en taper un et confirmer,
  4. Which Web Server(s) are you running?répondre Apache2
  5. Faut-il configurer la base de données de sympa avec dbconfig-common ? répondre Oui
  6. Type: répondre mysql
  7. Donner le mot de passe du root du serveur mysql puis de la base de données sympa (2 fois),

Normalement tout doit se dérouler correctement.

Vérification:

# aptitude -f install

Les commandes:

ps axu | grep mysql
ps axu | grep postfix
ps axu | grep sympa

Doivent renvoyer des lignes de processus qui tournent.

 

3 – Configuration de Sympa

Avec votre éditeur de texte préféré, supprimer tout le contenu de /etc/sympa/sympa.conf et le remplacer par:

###\\\\ Site customization ////###

## Main robot hostname
domain listes.mondomaine.fr

## Local part of sympa email address
## Effective address will be [EMAIL]@[HOST]
email sympa

## Listmasters email list comma separated
## Sympa will associate listmaster privileges to these email addresses (mail and web interfaces). Some error reports may also be sent to these addresses.
listmaster monnomprenom@toto.com	

## URL of main Web page
wwsympa_url http://listes.mondomaine.fr/wws

max_wrong_password 19

## Directory for storing static contents (CSS, members pictures, documentation) directly delivered by Apache
static_content_path /var/lib/sympa/static_content

## URL mapped with the static_content_path directory defined above
static_content_url /static-sympa

## Secret used by Sympa to make MD5 fingerprint in web cookies secure
## Should not be changed ! May invalid all user password
cookie `cat /etc/sympa/cookie`

## Who is able to create lists
## This parameter is a scenario, check sympa documentation about scenarios if you want to define one
create_list public_listmaster

###\\\\ Directories ////###

## Directory containing mailing lists subdirectories
home /var/lib/sympa/list_data

## Directory for configuration files; it also contains scenari/ and templates/ directories
etc /etc/sympa

###\\\\ System related ////###

## Syslog facility for sympa
## Do not forget to edit syslog.conf
syslog `cat /etc/sympa/facility`

## Log verbosity
## 0: normal, 2,3,4: for debug
log_level 0

## Communication mode with syslogd (unix | inet)
log_socket_type unix

## Umask used for file creation by Sympa
umask 027

###\\\\ Sending related ////###

## Path to the MTA (sendmail, postfix, exim or qmail)
## should point to a sendmail-compatible binary (eg: a binary named "sendmail" is distributed with Postfix)
sendmail /usr/sbin/sendmail

## Max. number of Sendmail processes (launched by Sympa) running simultaneously
## Proposed value is quite low, you can rise it up to 100, 200 or even 300 with powerfull systems.
maxsmtp 40

log_smtp off

## comma separated list of operations for which blacklist filter is applied
## Setting this parameter to "none" will hide the blacklist feature
use_blacklist send,create_list

## Default maximum size (in bytes) for messages (can be re-defined for each list)
max_size 5242880

## Maximum number of recipients per call to Sendmail. The nrcpt_by_domain.conf file allows a different tuning per destination domain.
nrcpt 25

## Max. number of different domains per call to Sendmail
avg 10

## Specify which rfc2369 mailing list headers to add
rfc2369_header_fields help,subscribe,unsubscribe,post,owner,archive

## Specify header fields to be removed before message distribution
remove_headers X-Sympa-To,X-Family-To,Return-Receipt-To,Precedence,X-Sequence,Disposition-Notification-To

## Reject mail from automates (crontab, etc) sent to a list?
reject_mail_from_automates_feature on

###\\\\ Bulk mailer ////###

## Default priority for a packet to be sent by bulk.
sympa_packet_priority 5

## Minimum number of packets in database before the bulk forks to increase sending rate
##
bulk_fork_threshold 1

## Max number of bulks that will run on the same server
##
bulk_max_count 3

## The number of seconds a slave bulk will remain running without processing a message before it spontaneously dies.
##
bulk_lazytime 600

## The number of seconds a bulk sleeps between starting a new loop if it didn't find a message to send.
## Keep it small if you want your server to be reactive.
bulk_sleep 1

## Number of seconds a master bulk waits between two packets number checks.
## Keep it small if you expect brutal increases in the message sending load.
bulk_wait_to_fork 10

###\\\\ Quotas ////###

###\\\\ Spool related ////###

## Directory containing various specialized spools
## All spool are created at runtime by sympa.pl
spool /var/spool/sympa

## Directory for incoming spool
queue /var/spool/sympa/msg

queuedistribute /var/spool/sympa/distribute

## Directory for moderation spool
queuemod /var/spool/sympa/moderation

## Directory for digest spool
queuedigest /var/spool/sympa/digest

## Directory for authentication spool
queueauth /var/spool/sympa/auth

## Directory for outgoing spool
queueoutgoing /var/spool/sympa/outgoing

## Directory for subscription spool
queuesubscribe /var/spool/sympa/subscribe

## Directory for topic spool
queuetopic /var/spool/sympa/topic

## Directory for bounce incoming spool
queuebounce /var/spool/sympa/bounce

## Directory for task spool
queuetask /var/spool/sympa/task

## Directory for automatic list creation spool
queueautomatic /var/spool/sympa/automatic

###\\\\ Internationalization related ////###

## Supported languages
## This is the set of language that will be proposed to your users for the Sympa GUI. Don't select a language if you don't have the proper locale packages installed.
supported_lang fr

## Default language (one of supported languages)
## This is the default language used by Sympa
lang fr

## If set to "on", enables support of legacy character set
## In some language environments, legacy encoding (character set) is preferred for e-mail messages: for example iso-2022-jp in Japanese language.
legacy_character_support_feature off

###\\\\ Bounce related ////###

## Welcome message return-path ( unique | owner )
## If set to unique, new subcriber is removed if welcome message bounce
welcome_return_path owner

## Remind message return-path ( unique | owner )
## If set to unique, subcriber is removed if remind message bounce, use with care
remind_return_path owner

## Task name for expiration of old bounces
expire_bounce_task daily

## Bouncing email rate for warn list owner
bounce_warn_rate 30

## Bouncing email rate for halt the list (not implemented)
## Not yet used in current version, Default is 50
bounce_halt_rate 50

###\\\\ Tuning ////###

## Use of binary version of the list config structure on disk (none | binary_file)
## Set this parameter to "binary_file" if you manage a big amount of lists (1000+); it should make the web interface startup faster
cache_list_config none

## Sympa commands priority
sympa_priority 1

request_priority 0

owner_priority 9

## Default priority for list messages
default_list_priority 5

## comma-separated list of files that will be parsed by Sympa when instantiating a family (no space allowed in file names)
parsed_family_files message.footer,message.header,message.footer.mime,message.header.mime,info

###\\\\ Database related ////###

## Type of the database (mysql|ODBC|Oracle|Pg|SQLite|Sybase)
## Be careful to the case
db_type mysql

## Name of the database
## With SQLite, the name of the DB corresponds to the DB file
db_name sympa

## Hostname of the database server
# db_host localhost

#db_host localhost

## User for the database connection
db_user sympa

#db_user sympa

## Password for the database connection
## What ever you use a password or not, you must protect the SQL server (is it not a public internet service ?)
db_passwd Changer_le_mot_de_passe_par_le_votre

#db_passwd your_passwd

## Database private extention to subscriber table
## You need to extend the database format with these fields
#db_additional_subscriber_fields billing_delay,subscription_expiration

## Database private extention to user table
## You need to extend the database format with these fields
#db_additional_user_fields age,address

## Number of months that elapse before a log is expired
logs_expiration_period 3

## Default timeout between two scheduled synchronizations of list members with data sources.
default_ttl 3600

## Default timeout between two action-triggered synchronizations of list members with data sources.
default_distribution_ttl 300

## Default timeout while performing a fetch for an include_sql_query sync
default_sql_fetch_timeout 300

###\\\\ Loop prevention ////###

###\\\\ S/MIME configuration ////###

## Path to OpenSSL
## Sympa recognizes S/MIME if OpenSSL is installed
#openssl /usr/bin/ssl

## Directory containing trusted CA certificates
#capath /etc/sympa/ssl.crt

## File containing bundled trusted CA certificates
#cafile /usr/local/apache/conf/ssl.crt/ca-bundle.crt

crl_dir /var/lib/sympa/list_data/crl

## Directory containing user certificates
ssl_cert_dir /var/lib/sympa/list_data/X509-user-certs

## Password used to crypt lists private keys
#key_passwd your_password

###\\\\ DKIM ////###

dkim_feature off

## Insert a DKIM signature to message from the robot, from the list or both
dkim_add_signature_to robot,list

## Type of message that is added a DKIM signature before distribution to subscribers. Possible values are "none", "any" or a list of the following keywords: "md5_authenticated_messages", "smime_authenticated_messages", "dkim_authenticated_messages", "editor_validated_messages".
dkim_signature_apply_on md5_authenticated_messages,smime_authenticated_messages,dkim_authenticated_messages,editor_validated_messages

###\\\\ Antivirus plug-in ////###

## Path to the antivirus scanner engine
## Supported antivirus: McAfee/uvscan, Fsecure/fsav, Sophos, AVP and Trend Micro/VirusWall
#antivirus_path /usr/local/uvscan/uvscan

## Antivirus plugin command argument
#antivirus_args --secure --summary --dat /usr/local/uvscan

###\\\\ Tag based spam filtering ////###

## If a spam filter (like spamassassin or j-chkmail) add a smtp headers to tag spams, name of this header (example X-Spam-Status)
antispam_tag_header_name X-Spam-Status

## Regexp applied on this header to verify message is a spam (example \s*Yes)
antispam_tag_header_spam_regexp ^\s*Yes

## Regexp applied on this header to verify message is NOT a spam (example \s*No)
antispam_tag_header_ham_regexp ^\s*No

## Messages are supposed to be filtered by an antispam that add one more headers to messages. This parameter is used to select a special scenario in order to decide the message spam status: ham, spam or unsure. This parameter replace antispam_tag_header_name, antispam_tag_header_spam_regexp and antispam_tag_header_ham_regexp.
spam_status x-spam-status

###\\\\ Web interface parameters ////###

edit_list owner

## URL of a virtual host
http_host http://host.domain.tld

## The password validation techniques to be used against user passwords that are added to mailing lists. Options come from Data::Password (http://search.cpan.org/~razinf/Data-Password-1.07/Password.pm#VARIABLES)
#password_validation MINLEN=8,GROUPS=3,DICTIONARY=4,DICTIONARIES=/pentest/dictionaries

N’oubliez pas de changer la valeur de:
-db_passwd dans le fichier ci dessus.
-listmaster avec votre vraie adresse email et non pas monnomprenom@toto.com

Beaucoup de lignes sont en commentaires et pourront être utilisées ultérieurement pour perfectionner la config

Modifier le fichier /etc/sympa/wwsympa.conf:
remplacer le paramètre

use_fast_cgi    0

par

use_fast_cgi 1

Lancer Sympa

# service sympa restart

Normalement en tapant la commande

# ps axu | grep sympa

Vous devriez voir quelque chose du genre

sympa    11709  0.0  1.4 236204 56328 ?        S    14:58   0:00 /usr/bin/perl /usr/lib/sympa/bin/archived.pl
sympa    11710  0.0  1.4 236136 56364 ?        S    14:58   0:00 /usr/bin/perl /usr/lib/sympa/bin/bounced.pl
sympa    11716  0.0  1.4 236064 56636 ?        S    14:58   0:00 /usr/bin/perl /usr/lib/sympa/bin/bulk.pl
sympa    11720  0.0  1.5 242212 61192 ?        S    14:58   0:00 /usr/bin/perl /usr/lib/sympa/bin/task_manager.pl
sympa    11724  0.0  1.4 238508 58300 ?        S    14:58   0:00 /usr/bin/perl /usr/lib/sympa/bin/sympa.pl
root     11831  0.0  0.0  12748  2284 pts/3    S+   15:00   0:00 grep sympa

4 – Configuration d’Apache (serveur web) pour Sympa

Supprimez le fichier /etc/apache2/conf-available/sympa.conf et remplacez le par /etc/apache2/sites-available/sympa.conf (sinon letsencrypt de pourra pas installer le certificat, voir plus bas):
Puis faire:

# a2disconf sympa.conf
<IfModule mod_fcgid>
 IPCCommTimeout 120
 MaxProcessCount 2 
</IfModule> 
<VirtualHost listes.mondomaine.fr:80>
 ServerName listes.mondomaine.fr
 DocumentRoot /var/lib/sympa 
<Directory /var/lib/sympa>
 Require all granted
 </Directory>
 <Directory /var/www/sympa>
 Require all granted 
</Directory> 
<Directory /usr/lib/cgi-bin/sympa>
 Require all granted
 </Directory> 
Alias /static-sympa /var/lib/sympa/static_content
Alias /wwsicons /var/lib/sympa/static_content/icons 
ScriptAlias /wws /var/www/sympa/wwsympa.fcgi 
ScriptAlias wwsympa-wrapper.fcgi /usr/lib/cgi-bin/sympa/wwsympa-wrapper.fcgi 
SuexecUserGroup sympa sympa 
<Location wws> 
SetHandler fcgid-script 
</Location>
</VirtualHost>

N’oubliez pas de modifier listes.mondomaine.fr
Pui, faire:

# a2ensite sympa.conf

Créer un dossier /var/www/sympa

# mkdir /var/www/sympa
# chown sympa:sympa /var/www/sympa

Avec son editeur de texte créer un fichier /var/www/sympa/wwsympa.fcgi
contenant

#!/bin/bash
exec /usr/lib/cgi-bin/sympa/wwsympa.fcgi

changer le propriétaire et les droits de ce fichier:

# chown sympa:sympa /var/www/sympa/wwsympa.fcgi
# chmod +x /var/www/sympa/wwsympa.fcgi

Activer le module suexec d’apache

# a2enmod suexec

Redémarrer Apache

# service apache2 restart

A ce stade en faisant http://listes.mondomaine.fr/wws dans son navigateur on doit voir la page d’accueil de Sympa.

5 – Configuration de postfix pour Sympa

Effacer le contenu du fichier /etc/postfix/main.cf et le remplacer par:

# See /usr/share/postfix/main.cf.dist for a commented, more complete version


# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

readme_directory = no

# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=no
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = listes.mondomaine.fr
alias_maps = hash:/etc/aliases,hash:/etc/mail/sympa/aliases
alias_database = hash:/etc/aliases,hash:/etc/mail/sympa/aliases
myorigin = /etc/mailname
mydestination = listes.mondomaine.fr, localhost, localhost.localdomain, localhost
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all

#pour robot listes.mondomaine.fr
transport_maps = regexp:/etc/postfix/sympa_transport.cf
virtual_alias_maps = regexp:/etc/mail/sympa_virtual_regexp
sympa_destination_recipient_limit = 1
sympabounce_destination_recipient_limit = 1

Remplacer listes.mondomaine.fr par la bonne valeur (3 fois dans le fichier ci dessus).
Effacer le contenu du fichier /etc/posfix/master.cf et le remplacer par:

#
# Postfix master process configuration file.  For details on the format
# of the file, see the master(5) manual page (command: "man 5 master" or
# on-line: http://www.postfix.org/master.5.html).
#

#Do not forget to execute "postfix reload" after editing this file.
#
# ==========================================================================
# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (yes)   (never) (100)
# ==========================================================================

slow unix        -       -       n       -       5       smtp
        -o syslog_name=postfix-slow
        -o smtp_destination_concurrency_limit=3
        -o slow_destination_rate_delay=1

smtp      inet  n       -       -       -       -       smtpd

#rajouté pour gmail 
#https://tanguy.ortolo.eu/blog/article109/google-ipv6-smtp-restrictions
smtp4     unix  -       -       -       -       -       smtp -o inet_protocols=ipv4

#smtp      inet  n       -       -       -       1       postscreen
#smtpd     pass  -       -       -       -       -       smtpd
#dnsblog   unix  -       -       -       -       0       dnsblog
#tlsproxy  unix  -       -       -       -       0       tlsproxy
#submission inet n       -       -       -       -       smtpd
#  -o syslog_name=postfix/submission
#  -o smtpd_tls_security_level=encrypt
#  -o smtpd_sasl_auth_enable=yes
#  -o smtpd_reject_unlisted_recipient=no
#  -o smtpd_client_restrictions=$mua_client_restrictions
#  -o smtpd_helo_restrictions=$mua_helo_restrictions
#  -o smtpd_sender_restrictions=$mua_sender_restrictions
#  -o smtpd_recipient_restrictions=
#  -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING
#smtps     inet  n       -       -       -       -       smtpd
#  -o syslog_name=postfix/smtps
#  -o smtpd_tls_wrappermode=yes
#  -o smtpd_sasl_auth_enable=yes
#  -o smtpd_reject_unlisted_recipient=no
#  -o smtpd_client_restrictions=$mua_client_restrictions
#  -o smtpd_helo_restrictions=$mua_helo_restrictions
#  -o smtpd_sender_restrictions=$mua_sender_restrictions
#  -o smtpd_recipient_restrictions=
#  -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING
#628       inet  n       -       -       -       -       qmqpd
pickup    unix  n       -       -       60      1       pickup
cleanup   unix  n       -       -       -       0       cleanup
qmgr      unix  n       -       n       300     1       qmgr
#qmgr     unix  n       -       n       300     1       oqmgr
tlsmgr    unix  -       -       -       1000?   1       tlsmgr
rewrite   unix  -       -       -       -       -       trivial-rewrite
bounce    unix  -       -       -       -       0       bounce
defer     unix  -       -       -       -       0       bounce
trace     unix  -       -       -       -       0       bounce
verify    unix  -       -       -       -       1       verify
flush     unix  n       -       -       1000?   0       flush
proxymap  unix  -       -       n       -       -       proxymap
proxywrite unix -       -       n       -       1       proxymap
smtp      unix  -       -       -       -       -       smtp
relay     unix  -       -       -       -       -       smtp
#       -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq     unix  n       -       -       -       -       showq
error     unix  -       -       -       -       -       error
retry     unix  -       -       -       -       -       error
discard   unix  -       -       -       -       -       discard
local     unix  -       n       n       -       -       local
virtual   unix  -       n       n       -       -       virtual
lmtp      unix  -       -       -       -       -       lmtp
anvil     unix  -       -       -       -       1       anvil
scache    unix  -       -       -       -       1       scache
#
# ====================================================================
# Interfaces to non-Postfix software. Be sure to examine the manual
# pages of the non-Postfix software to find out what options it wants.
#
# Many of the following services use the Postfix pipe(8) delivery
# agent.  See the pipe(8) man page for information about ${recipient}
# and other message envelope options.
# ====================================================================
#
# maildrop. See the Postfix MAILDROP_README file for details.
# Also specify in main.cf: maildrop_destination_recipient_limit=1
#
maildrop  unix  -       n       n       -       -       pipe
  flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
#
# ====================================================================
#
# Recent Cyrus versions can use the existing "lmtp" master.cf entry.
#
# Specify in cyrus.conf:
#   lmtp    cmd="lmtpd -a" listen="localhost:lmtp" proto=tcp4
#
# Specify in main.cf one or more of the following:
#  mailbox_transport = lmtp:inet:localhost
#  virtual_transport = lmtp:inet:localhost
#
# ====================================================================
#
# Cyrus 2.1.5 (Amos Gouaux)
# Also specify in main.cf: cyrus_destination_recipient_limit=1
#
#cyrus     unix  -       n       n       -       -       pipe
#  user=cyrus argv=/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user}
#
# ====================================================================
# Old example of delivery via Cyrus.
#
#old-cyrus unix  -       n       n       -       -       pipe
#  flags=R user=cyrus argv=/cyrus/bin/deliver -e -m ${extension} ${user}
#
# ====================================================================
#
# See the Postfix UUCP_README file for configuration details.
#
uucp      unix  -       n       n       -       -       pipe
  flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
#
# Other external delivery methods.
#
ifmail    unix  -       n       n       -       -       pipe
  flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp     unix  -       n       n       -       -       pipe
  flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient
scalemail-backend unix  -       n       n       -       2       pipe
  flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
mailman   unix  -       n       n       -       -       pipe
  flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
  ${nexthop} ${user}


sympa     unix  -       n       n       -       -       pipe
      flags=R user=sympa argv=/usr/lib/sympa/bin/queue ${recipient}

sympabounce  unix  -       n       n       -       -       pipe
      flags=R user=sympa argv=/usr/lib/sympa/bin/bouncequeue ${recipient}


Créer un fichier en root dans /etc/mail/sympa/aliases (créer le répertoire sympa s’il n’existe pas) et y mettre le contenu:

listes.mondomaine.fr-sympa:      "| /usr/lib/sympa/bin/queue sympa@listes.mondomaine.fr"
listes.mondomaine.fr-listmaster: "| /usr/lib/sympa/bin/queue listmaster@listes.mondomaine.fr"
listes.mondomaine.fr-bounce+*:          "| /usr/lib/sympa/bin/bouncequeue sympa@listes.mondomaine.fr"
listes.mondomaine.fr-abuse-feedback-report: "| /usr/lib/sympa/bin/bouncequeue sympa@listes.mondomaine.fr"
listes.mondomaine.fr-sympa-request: root@listes.mondomaine.fr
listes.mondomaine.fr-sympa-owner: root@listes.mondomaine.fr

Remplacer les listes.mondomaine.fr par les bonnes valeurs.
Changer les droits au dossier /etc/mail/sympa :

# chown -R sympa:sympa /etc/mail/sympa/aliases

Créer un fichier /etc/mail/sympa_virtual_regexp contenant

/^(.*)@listes.mondomaine.fr$/ $1

Rempacer la valeur de listes.mondomaine.fr.
Changer les droits

# chown -R sympa:sympa /etc/mail/sympa_virtual_regexp

Créer dans /etc/postfix un fichier sympa_transport.cf contenant

/^.*-owner\@listes\.mondomaine\.fr$/ sympabounce:
/^.*\@listes\.mondomaine\.fr$/       sympa:

Relancer postfix et vérifier qu’il a bien démarré

# service postfix restart
# ps axu | grep postfix

6 – Configuration de DKIM

 

# mkdir /etc/opendkim

Modification du fichier /etc/opendkim.conf :

AutoRestart             Yes
Syslog                  Yes
UMask                   002
KeyTable                /etc/opendkim/KeyTable
SigningTable            /etc/opendkim/SigningTable
ExternalIgnoreList      /etc/opendkim/TrustedHosts
InternalHosts           /etc/opendkim/TrustedHosts

Modification du fichier /etc/default/opendkim :

# Command-line options specified here will override the contents of
# /etc/opendkim.conf. See opendkim(8) for a complete list of options.
#DAEMON_OPTS=""
#
# Uncomment to specify an alternate socket
# Note that setting this will override any Socket value in opendkim.conf
#SOCKET="local:/var/run/opendkim/opendkim.sock" # default
#SOCKET="inet:54321" # listen on all interfaces on port 54321
#SOCKET="inet:12345@192.0.2.1" # listen on 192.0.2.1 on port 12345
SOCKET="inet:10000@localhost" # listen on loopback on port 10000

Modification du fichier /etc/postfix/main.cf, ajouter à la fin du fichier :

# DKIM

milter_default_action = accept
milter_protocol = 6
smtpd_milters = inet:localhost:10000
non_smtpd_milters = $smtpd_milters

Modification (création) du fichier /etc/opendkim/TrustedHosts :

localhost
listes.mondomaine.fr

Modification du fichier /etc/opendkim/KeyTable :

default._domainkey.listes.mondomaine.fr listes.mondomaine.fr:default:/etc/opendkim/keys/listes.mondomaine.fr/default.private

Modification du fichier /etc/opendkim/SigningTable :

listes.mondomaine.fr default._domainkey.listes.mondomaine.fr

Création des clés privées et publiques du domaine :

# mkdir /etc/opendkim/keys
# cd /etc/opendkim/keys
# mkdir listes.mondomaine.fr
# cd listes.mondomaine.fr
# opendkim-genkey -r -d listes.mondomaine.fr
# chown opendkim: default.private

Ajouter 2 entrées TXT au niveau de votre DNS (Gandi ou autre) depuis la ligne disponible dans /etc/opendkim/keys/listes.mondomaine.fr/default.txt

default._domainkey      IN      TXT     ( "v=DKIM1; k=rsa; s=email; "
          "p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQABDVHHZif1IM63+m/hcBOWtb1qZwLZUpelrvssQ8kgWS67TmGhJG9At2MF+KIUw6dENs9BCKOfWIiFlCbv8Pzh8+mVO09L2b45ByYsOS/IbnBJw01/XPjKu7TJ88oPx1YWLcq0oVsprRNOnA0sDLDapwDZyNeAW9OykbjCnHAQIDAQAB" )  ; ----- DKIM key default for listes.mondomaine.fr

et en rajoutant .listes après default._domainkey ( j’ai constaté que parfois la recherche se faisait sur le domaine et parfois sur le sous domaine, je ne sais pourquoi)

default._domainkey.listes      IN      TXT     ( "v=DKIM1; k=rsa; s=email; "
          "p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC963NqHHZif1IM63+m/hcBOWtb1qZwLZUpelrvssQ8kgWS67TmGhJG9At2MF+KIUw6dENs9BCKOfWIiFlCbv8Pzh8+mVO09L2b45ByYsOS/IbnBJw01/XPjKu7TJ88oPx1YWLcq0oVsprRNOnA0sDLDapwDZyNeAW9OykbjCnHAQIDAQAB" )  ; ----- DKIM key default for listes.mondomaine.fr

Bricoler méticuleusement les ( et  » jusqu’a obtenir la bonne syntaxe pour l’enregistrement DNS (chez gandi.net) qui est en mode texte :

default._domainkey.listes      IN      TXT "v=DKIM1; k=rsa; s=email; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC963NqHHZif1IM63+m/hcBOWtb1qZwLZUpelrvssQ8kgWS67TmGhJG9At2MF+KIUw6dENs9BCKOfWIiFlCbv8Pzh8+mVO09L2b45ByYsOS/IbnBJw01/XPjKu7TJ88oPx1YWLcq0oVsprRNOnA0sDLDapwDZyNeAW9OykbjCnHAQIDAQAB"

et

default._domainkey      IN      TXT "v=DKIM1; k=rsa; s=email; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC963NqHHZif1IM63+m/hcBOWtb1qZwLZUpelrvssQ8kgWS67TmGhJG9At2MF+KIUw6dENs9BCKOfWIiFlCbv8Pzh8+mVO09L2b45ByYsOS/IbnBJw01/XPjKu7TJ88oPx1YWLcq0oVsprRNOnA0sDLDapwDZyNeAW9OykbjCnHAQIDAQAB"

Vérifier une fois propagé (quelques minutes à quelques heures)

# host -t txt default._domainkey.listes.mondomaine.fr

7 – Configuration de DMARC

 

Modification du fichier /etc/default/opendmarc :

# Command-line options specified here will override the contents of
# /etc/opendmarc.conf. See opendmarc(8) for a complete list of options.
#DAEMON_OPTS=""
#:q
# Uncomment to specify an alternate socket
# Note that setting this will override any Socket value in opendkim.conf
#SOCKET="local:/var/run/opendmarc/opendmarc.sock" # default
#SOCKET="inet:54321" # listen on all interfaces on port 54321

SOCKET="inet:10001" # listen on  on port 10001

Modification de la ligne du fichier /etc/opendmarc.conf :

AuthservID listes.mondomaine.fr

ajouter dans le DNS un enregistrement TXT comme:

_dmarc.listes IN TXT "v=DMARC1; p=reject; sp=reject"

Vérifier après propagation:

host -t txt _dmarc.listes.mondomaine.fr

configuration SPF
Ajoutée dans la zone DNS un enregistrement:

listes IN TXT v=spf1 a mx ip4:w.x.y.z -all

Ajouter aussi l’enregistrement SPF

sympa 10800 IN TXT "v=spf1 a mx ip4:78.203.190.44 -all"

8 – Utiliser DKIM et DMARC:

Remplacer dans /etc/postfix/main.cf à la fin après #DKIM

# DKIM / DMARC

milter_default_action = accept
milter_protocol = 6
smtpd_milters = inet:localhost:10000,inet:localhost:10001
non_smtpd_milters = $smtpd_milters

Rajouter (je crois que c’est déja fait) dans /etc/postfix/master.cf
au dessus de la ligne

smtp      inet  n       -       -       -       -       smtpd

les lignes

slow unix        -       -       n       -       5       smtp
        -o syslog_name=postfix-slow
        -o smtp_destination_concurrency_limit=3
        -o slow_destination_rate_delay=1
smtp4     unix  -       -       -       -       -       smtp -o inet_protocols=ipv4

La premièe ligne servira à ralentir les accès à certains serveurs comme orange.fr qui tardent à répondre
La Deuxième ligne à envoyer avec l’adresse IPV4 et non IPV6 (pour gmail.com entre autres)

Puis dans /etc/postfix/transport rajouter (ou créer le fichier s’il n’existe pas encore:

orange.fr slow:
wanadoo.fr slow:
infonie.fr slow:
aliceadsl.fr slow:
free.fr slow:
gmail.com smtp4:

Puis ajouter à la ligne transport_maps = de /etc/postfix/main.cf, rajouter la ligne:

regexp:/etc/postfix/sympa_transport.cf,hash:/etc/postfix/transport

Faire:

# postmap /etc/postfix/transport
# postmap /etc/postfix/sympa_transport.cf

9 – Redémarrer tous les services:

# /etc/init.d/opendkim restart
# /etc/init.d/opendmarc restart
# /etc/init.d/postfix restart

Tester les connections dkim et dmarc:
Les commandes suivantes, sur le serveur, doivent répondre (installer telnet si pas dispo)

$ telnet localhost 10000
$ telnet localhost 10001

Tester son install de postfix, par exmeple en allant voir:

https://mxtoolbox.com/diagnostic.aspx

10 – Premiers tests tests:

host -t txt listes.mondomaine.fr
host -t txt _dmarc.listes.mondomaine.fr
default._domainkey.listes.mondomaine.fr
host -t txt default._domainkey.listes.mondomaine.fr

Se créer (si on n’en a pas déja un) une adresse gmail.com pour tests
Puis en console sur le serveur:

$ mail -s "Message pour un premier test" monadresse@gmail.com [Entrée]
Ceci est le contenu de la première ligne du message [Entrée]
Ceci est le contenu de la deuxième ligne du message[Entrée]
A+[Entrée]
bm[Entrée]
.[Entrée]
CC: [Entrée]

Regarder si le message est reçu dans gmail.com.

Faire bien attention de marquer les messages en « pas de spam » ou « non spam » quand un message arrive en spam quand on fait des essais successifs.
Si oui, aller à « Afficher l’original » du message, il doit y avoir un truc dans le genre:

Message d'origine
ID du message	<20170421133501.9828F1CC02@server01>
Date de création :	21 avril 2017 à 15:35 (temps d'envoi : 2 secondes)
De :	admin@listes.mondomaine.fr
À :	monadresse@gmail.com
Objet :	Message pour un deuxieme test
SPF :	PASS avec l'adresse IP w.x.y.z En savoir plus
DKIM :	PASS avec le domaine listes.mondomaine.fr En savoir plus
DMARC :	PASS En savoir plus

Les mails partent donc signés SPF DKIM et DMARC.

On peut aussi utiliser : https://www.mail-tester.com/ qui donne de précieux renseignements en cas de problèmes (les 3 premiers mails envoyés son testés gratuitement), après il faut payer un peu en ligne, mais ça vaut vraiment le coup car on gagne beaucoup de temps : Exemple:

$ mail -s "Message pour un premier test" web-duqkk@mail-tester.com [Entrée]
Ceci est le contenu de la première ligne du message [Entrée]
Ceci est le contenu de la deuxième ligne du message[Entrée]
A+[Entrée]
bm[Entrée]
.[Entrée]
CC: [Entrée]

11 – Installation de Let’s Encrypt

Si un pare feu est en place le désactiver provisoirement.

Ajouter au fichier /etc/apt/sources.list :

deb http://mirrors.gandi.net/debian jessie-backports main contrib non-free

puis

# aptitude update && aptitude upgrade
# aptitude install python-certbot-apache -t jessie-backports

Configuration:

# a2enmod socache_shmcb
# a2enmod ssl
# a2enmod rewrite
# service apache2 restart

puis, pour pouvoir protéger listes.mondomaine.fr, il faut que le sous domaine www.mondomaine.fr est aussi un enregistrement DNS de type A.

Quand c’est fait:

# certbot --apache

Selectionner listes.mondomaine.fr comme URL à protéger (il peux y en avoir d’autres selon votre configuration si des sites web existent déja)

La procédure doit échouer.
Commenter la ligne #IncludeOptional conf-enabled/*.conf dans /etc/apache2/apache2.conf

Recommencer

# certbot --apache

en répondant en « Attempt to reinstall the existing certificate »

Cela devrait fonctionner
Voir l’URL:

https://www.ssllabs.com/ssltest/analyze.html?d=listes.mondomaine.fr

 

11bis – envoi des messages cryptés (SSL/TLS) en utilisant le certificat LetsEncrypt du serveur Web

Configuration de Postfix; rajouter dans /et/postfix/main.cf

 

smtpd_tls_cert_file=/etc/letsencrypt/live/listes.mondaomaine.fr-0001/fullchain.pem
smtpd_tls_key_file=/etc/letsencrypt/live/listes.mondaomaine.fr-0001/privkey.pem
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_tls_security_level = may

 

Relancer postfix

Vérification: aller à https://www.checktls.com. Cliquer sur Email -> Test to:

Une fenêtre « TestReceiver parameter entry » s’ouvre.

Saisir une adresse mail: listmaster@listes.mondomaine.fr

Cliquer sur « Run test »

Le résultat doit être:

Test Results

CheckTLS Confidence Factor for « listmaster@listes.mondomaine.fr »: 100

MX Server Pref Answer Connect HELO TLS Cert Secure From To
listes.mondomaine.fr
[w.x.y.z]
10 OK
(105ms)
OK
(118ms)
OK
(105ms)
OK
(105ms)
OK
(251ms)
OK
(107ms)
OK
(106ms)
OK
(107ms)
Average 100% 100% 100% 100% 100% 100% 100% 100%

 

 

12 – Création et tests d’une liste de diffusion:

a – Pour la première connection à sympa cliquer en haut a gauche de l’écran d’accueil de sympa sur « première connection en mettant le mail du listmaster sui a été configuré dans /etc/sympa/sympa.conf.

b – Un lien est envoyé pour saisir un mot de passe.

c – Une fois reçu, faire « connection » en haut à droite

d – Une fois connecté cliquer sur création de liste, na nommer test et mettre « confidentielle » dans « Type de liste »

e – saisir un objet (en bas de l’écran, une catégorie, et une description et valider.

f – Cliquer sur « configurer la liste » et sur le bouton DKIM

g – activer Insérer une signature aux messages postés par la liste. (dkim_feature)

h – Dans « configuration DKIM » mettre /etc/opendkim/keys/listes.public-montessori.fr/default.private dans le champ « Chemin vers le fichier contenant la clé privée DKIM de la liste (private_key_path) »

i- Mettre default._domainkey dans « Selecteur pour la recherche DNS de la clé publique DKIM. (selector)  »

j – selectionner « tout message à « Les catégories de messages de liste qui seront signés avec DKIM » et « tous » à « DMARC Protection »

k – Valider

l – Cliquer sur liste des listes et « gérer les abonnés.

A ce stade il est conseillé d’ouvrir quelques comptes email, genre yahoo.com aol.con, outlook.fr, gmail.com, …. et abonner ces adresses à la liste de test

Saisir quelques abonnés (email que l’on maitrise) et envoyer un message à la liste test@listes.mondomaine.fr

Vérifier le code source des messages pour voir les signatures.

Remarques et commentaires bienvenus. (ci dessous)

 

13 – Liens utiles

SPF, DMARC, DKIM (attention au mal de tête),

SPF

DKIM

DMARC

le paragraphe concernant les listes de diffusion et yahoo est très intéressant dans le lien ci dessous:

https://www.sympa.org/doc/formation/sympa_avance

TODO

14 – Remarques:

    • la table bulkspool_table de la base sympa grossit beaucoup; de temps en temps faire
$ mysql -u root -p >
use sympa; 
optimise table bulkspool_table
  • J’ai testé (pour jouer) cette procédure avec un VPS dont l’IP était blacklistée sur sorbs.net, sorbs.net seulement. J’ai demandé, et obtenu, le delistage de cette adresse, voici la réponse qui m’a été apportée:

Your request appear to have been resolved. If you have any
further questions or concerns, please respond to this message.

Please note:

If your IP address has been delisted (marked as ‘Inactive’), it will
take up to 2 hours to get from the database to all the SORBS DNS
servers. Changes to the database are exported to the DNS zone files
periodically, not immediately after every change. Furthermore, after
the updated database contents have been exported to the DNS zone
files, it will then take up to 48 hours for the outdated DNS
information to be removed from DNS caches around the world – none
of these are in SORBS’ control.

Please do not reply to this call with problems not related to
this ticket or your request will be ignored.

C’était la seule liste qui blacklistait mon IP, après le delistage les messages Microsft ‘outlook et aol.com continuent d’être refusées. Mais yahoo et gmail sont acceptés. Si j’ai bien compris, je ne savais pas que ces info de sorbs.net étaient propagées sur les serveurs DNS.

  • Un message arrivant en SPAM: Ci dessous le code source d’un message envoyé à une liste à un membre ayant une adresse @outlook.fr: en gras les vérifications de signatures SPF, DKIM et DMARC. Rassurant (un peu): 2 jours après les messages n’arrivent plus en SPAM (j’ai modifié les adresses dans ce code source ci dessous);
Received: from AM5PR0602CA0007.eurprd06.prod.outlook.com (10.175.46.145) by
HE1PR06MB1545.eurprd06.prod.outlook.com (10.164.50.151) with Microsoft SMTP
Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id
15.1.1047.13 via Mailbox Transport; Thu, 27 Apr 2017 16:00:25 +0000
Received: from inbound.mail.protection.outlook.com (213.199.154.145) by
AM5PR0602CA0007.outlook.office365.com (10.175.46.145) with Microsoft SMTP
Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id
15.1.1061.12 via Frontend Transport; Thu, 27 Apr 2017 16:00:25 +0000
Received: from VE1EUR03FT055.eop-EUR03.prod.protection.outlook.com
(10.152.18.56) by VE1EUR03HT217.eop-EUR03.prod.protection.outlook.com
(10.152.19.150) with Microsoft SMTP Server (version=TLS1_2,
cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.1047.9; Thu, 27
Apr 2017 16:00:25 +0000
Authentication-Results: spf=pass (sender IP is w.x.y.z)
smtp.mailfrom=listes.mondomaine.fr; outlook.fr; dkim=pass (signature
 was verified) header.d=listes.mondomaine.fr;outlook.fr; dmarc=pass
 action=none header.from=listes.mondomaine.fr;
Received-SPF: Pass (protection.outlook.com: domain of
 listes.mondomaine.fr designates w.x.y.z as permitted sender)
receiver=protection.outlook.com; client-ip=w.x.y.z; helo=
listes.mondomaine.fr;
Received: from BAY004-MC1F4.hotmail.com (10.152.18.56) by
VE1EUR03FT055.mail.protection.outlook.com (10.152.19.158) with Microsoft SMTP
Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id
15.1.1047.9 via Frontend Transport; Thu, 27 Apr 2017 16:00:24 +0000
X-IncomingTopHeaderMarker: OriginalChecksum:2E05907FAC0AA94D0F0ECFC4C2FA618A38C03FC0DE645B8292B9B7CDEA47C85B;UpperCasedChecksum:CAE2C4CC9F9770D23D5CE5EDDDBE1747307B5E82F5DCD60F82AAFE7AEC1C116B;SizeAsReceived:2608;Count:33
Received: from listes.mondomaine.fr ([w.x.y.z]) by BAY004-MC1F4.hotmail.com with Microsoft SMTPSVC(7.5.7601.23143);
Thu, 27 Apr 2017 09:00:22 -0700
Received: by listes.mondomaine.fr (Postfix, from userid 108)
id 0AC7ACABE; Thu, 27 Apr 2017 18:00:21 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
d=listes.mondomaine.fr; s=default; t=1493308821;
bh=uiJR7aQ4Fm5gXblS1tjCmzzvMFSY4JZElSqZ/1wx/Vc=;
h=To:From:Date:Reply-To:Subject:List-Id:List-Help:List-Subscribe:
List-Unsubscribe:List-Post:List-Owner:List-Archive;
b=aOdQcrKTVa1IRZJ6t7tstoKS8NO+zNiMTy4MKZ2TGpzqdamQ/B+DIzNpHuGI/HX78
4x9pSn8ePiu3Y8gsAzChLFbBvcqQFRQFEmLBOz7sykE/nE16kkR23pJGRDnnBRp3jJ
MDZEmeYLiT1luhyi+xVQcYbz2jlWJT0L3LLz/v5g=
Received: from smtp5-g21.free.fr (smtp5-g21.free.fr [212.27.42.5])
by listes.mondomaine.fr (Postfix) with ESMTPS id B04FFCABB
for <test@listes.mondomaine.fr>; Thu, 27 Apr 2017 18:00:17 +0200 (CEST)
Authentication-Results: listes.mondomaine.fr; dmarc=none header.from=toto.org
Received: from [192.168.1.101] (unknown [78.203.190.44])
by smtp5-g21.free.fr (Postfix) with ESMTP id A2B7360013
for <test@listes.mondomaine.fr>; Thu, 27 Apr 2017 18:00:17 +0200 (CEST)
To: test@listes.mondomaine.fr
From: "BM" (via test Mailing List) <test@listes.mondomaine.fr>
Message-ID: <c72c9427-2180-a65b-207f-1d5c667fbb8b@toto.org>
Date: Thu, 27 Apr 2017 18:00:19 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101
Thunderbird/45.8.0
Content-Type: text/plain; charset="utf-8"; format=flowed
Content-Transfer-Encoding: 8bit
Reply-To: tarzan@toto.org
X-Original-From: BM <tarzan@toto.org>
Subject: [test] Beau titre de message
X-Loop: test@listes.mondomaine.fr
X-Sequence: 21
Errors-to: test-owner@listes.mondomaine.fr
Precedence: bulk
Sender: <test-request@listes.mondomaine.fr>
X-no-archive: yes
List-Id: <test.listes.mondomaine.fr>
List-Help: <mailto:sympa@listes.mondomaine.fr?subject=help>
List-Subscribe: <mailto:sympa@listes.mondomaine.fr?subject=subscribe%20test>
List-Unsubscribe: <mailto:sympa@listes.mondomaine.fr?subject=unsubscribe%20test>
List-Post: <mailto:test@listes.mondomaine.fr>
List-Owner: <mailto:test-request@listes.mondomaine.fr>
List-Archive: <http://listes.mondomaine.fr/wws/arc/test>
Return-Path: test-owner@listes.mondomaine.fr
X-OriginalArrivalTime: 27 Apr 2017 16:00:22.0443 (UTC) FILETIME=[6042C7B0:01D2BF6F]
X-IncomingHeaderCount: 33
X-MS-Exchange-Organization-Network-Message-Id: 07880b67-4281-4048-9b95-08d48d868450
X-EOPAttributedMessage: 0
X-EOPTenantAttributedMessage: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa:0
X-MS-Exchange-Organization-MessageDirectionality: Incoming
CMM-sender-ip: w.x.y.z
CMM-sending-ip: w.x.y.z
CMM-Authentication-Results: hotmail.com; spf=temperror (sender IP is
 w.x.y.z) smtp.mailfrom=test-owner@listes.mondomaine.fr;
 dkim=pass header.d=listes.mondomaine.fr; x-hmca=pass
 header.id=test-request@listes.mondomaine.fr
CMM-X-SID-PRA: test-request@listes.mondomaine.fr
CMM-X-AUTH-Result: PASS
CMM-X-SID-Result: PASS
CMM-X-Message-Status: n:n
CMM-X-Message-Delivery: Vj0xLjE7dXM9MDtsPTA7YT0wO0Q9MjtHRD0yO1NDTD00
CMM-X-Message-Info: 11chDOWqoTmSm7tOJShjSRAj+sgWV6rn2YCb9GHnKpeVrQPnxDP86D0amzo8es+mohE7uFdqEW56MhSvj/KIr0VqkYPefaarwiWg+J5vg8kZM83T5D+lRz6WGJDACIkVvCrLenLxDY8S8oTgRgfGbo+VOUMn+RwG5qrUGm+3usGVLtynYLSKtD13E9pi+n5VBaltK2QkfFb15i3uC5ifj8WCHtWd9k+33LieCYrp925NMsucbrJPFjgv6jModaLf
X-MS-Exchange-Organization-SCL: 5
X-MS-Exchange-Organization-PCL: 2
X-Microsoft-Exchange-Diagnostics: 1;VE1EUR03FT055;1:vJI3MNheUhwHWcTdGj6UMnhw0ls8eqZLgEkONQZHkDb8p7x3cGltIMaRqw+2fw5X12+1qodlRUMxHfTsraJ4RVbAnrrYL1D/YyLW9zlpNIh5ngJ+vQHS+6JpeJbS4hr2Zere8rveTlfgwJB2diDkoCj7aO/xJL9dHe00Vo/M5QiRfLDgBOBeTf4JrjN0NF6A
X-Forefront-Antispam-Report: EFV:NLI;SFV:SPM;SFS:(28900001);DIR:INB;SFP:;SCL:5;SRVR:VE1EUR03HT217;H:BAY004-MC1F4.hotmail.com;FPR:;SPF:None;LANG:fr;
X-MS-Office365-Filtering-Correlation-Id: 07880b67-4281-4048-9b95-08d48d868450
X-Microsoft-Antispam: BCL:0;PCL:0;RULEID:(22001)(8291500097)(8291501071);SRVR:VE1EUR03HT217;
X-Microsoft-Exchange-Diagnostics: 1;VE1EUR03HT217;3:f9sUTBTms/0R8BENJY1L8WgazOYGe9e9IAOLbYPKhRchQILSuSukPGuYy2//jeQX+gRn8Kk8vLOZO7KqpS3BZ2qwka69Fh375HL+KuU/wOkT8NgOP4X8v1J5A1dmGwC7ypSc0laZKrdOagWkXIWQNbqDqdYj+XgXKepvPV7EY5QfOMYIm2FQ6LMsk+m1DmgORYiVhJsYVWkcl5uTC2RbYYp16VNijlXJxHVI2fhmKubYKgZZqwndzG3gGEYQ77kLmleAShtFeOvDRfWB/6JSKJMSeIgdJntMNGMVGcQoQTtK7PAqu795pHPAaMGjnPXuPPUpIgd7/CFSRyz8TVUxF8NQmJ1AYkset6gq5U5QHiJt8wOVISkJW+cegIBVIDAniKFQjD5J+jP+guRNo6kz6Q==;25:u4Pn1u+GMgq3qkaDjQH7FoKbcqqD7KuG8gTr13OmEkhAFWwT+WZ45l0ZQMydiGWHmrFKG9MPqH/z/dOsEZgF4VhdKlsd+LtqBqMBpO2GiIwGXw35oOyNQJett2aSXpljSlhqieMN8bRKrOWg/So5V5zpP6Q8D2gMVTRLXN5SaRvgygfHSbNP222t99m3G4dKxLBxzP1h9xGhJ4WYByZ4tVlGTwWnYjU1hiN5fdSSA+NZQyVYpYuk21qe/jRvypX9h6qu8LrNTpYbpGFbOGjfiGVL5LfNggkgrxzP49BUlyLIsHIgNOeadYgRNYPmbLY2gchApZ/kpuDR9R9DOnizwRijERRbgMzsbcM1/aQCpsX12bwtbe0E4IyOqH2sDz7thWBosqhlP49ti+rr6FM14RX9Al4Yukk056RwDNvRW140F9YIZ1SX5t5Z0mLvyUy3IVpF4xPsLMos80O7d8OTPmzelAjZg3RjsklOxQigDv0=
X-MS-Exchange-Organization-AVStamp-Service: 1.0
X-Microsoft-Exchange-Diagnostics: 1;VE1EUR03HT217;31:I81AQrxbflX5KHev5Pu76OfoCLQlhin0d3bBhUTciku/mkR6h1xx3vb2p5rlQmlr9S7JpalAe9lIJmRa0T0h/s/tBYxi0spYXoouOFB9su13qhtEs2ehmBAcpR1toraLIX6iLZMiasZi711AWZ9bWGEiQhEvZ73QAFeV5EEtwZYKN4vKbCjUTaYoNBLbPL2AsAU763SHplAW7J0NLu1tqMnwVudqc8jp47PtcYci5ZpuVbEFOTJHa7kytETZ5ohaC3VhT9/G3zDrfmICeaHRMUaFWHu+RWdS4+Xico8rZr8=;4:/2/G/9l/y2w4lvjJz92ODWc68CmPR9qTRIxSJB2qRjnpkz6YHT4rxti/BXq0BPGLWBOM9dJKrPp7fIFlh7esNodrCs1zOnSsvfV8mzZyZK5sNvOwBv9HWOCJS1UIpe8O5O6SX9m7mAh4+i0uGFg9NC8KA8NQ/+o27EYPgvKFuH8vkO0ZczScLTj69smGXQlGtv6t01+yVFhYCEybpCQYw+RQ7M+gh0+ZfcylX0+2dSh/Rcy7AlfEE9ZEZI/LNwcMQgkJf4hu7Z8DcKcVI6MAgV4GrUBOkcW05vHYlmHB+F4=;23:4oTT3gnZbgk1b4vDBFIcyBreRRJnpuD/ET1BSFvGfr+/07FJM2kOZvNw/TJSSh74DOmm6n+YybIWku/laNBBQLBq5zfsrWzsWbrd3S7BpAoIJpdTu8JlvIUap+/fEu6P34EMtc6dO/m4mzRNcpLjRQeSq04/hXVqPB5Cfa0eL0unzYKRVI0K6AO4Q+6ajFCNN4VKRCnV8bsRwcR/dgQ5Tg==
X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(444000031);SRVR:VE1EUR03HT217;BCL:0;PCL:0;RULEID:;SRVR:VE1EUR03HT217;
X-Microsoft-Exchange-Diagnostics: 1;VE1EUR03HT217;6:LuLIvP/7xwBaBzUkTOtbm5TzDWhkYqOsnteHU/khHwt+kl3lx07ZQu29/RE2kSRUX2IMtDnP19ov+AyIz6JfSr9hk8zLXgvrayVy5METohqt4p3zPm7PuMaFCzrGnHfz4wj7n1RyeRPs51BP1nsknZr1QFeON3jIoBMHkxYUaYdL2bFRG0ALdOtb6fHDpoLI8p+//KCET4eyokQv15IS2lKIdyKZs22fxDU7VXm6cZXNTg8h/XTR1CoTRa9nDo4SdKuZUtAmBCrRsHQJ/ICzcdFkiMLY5PGd69WcijknBGuHlh1f7xfoBCGZGHlKgQnrR9hQBNO5YzMekTEnJ4CIlpHcHN7GuIndl+Z8TDOYDFhOxS3uN3tEe3zSnENhP0lV+/u5C2xurZrFfTRV3mEOxQ==;5:I7Lkayg9ZBggXt05AvUBnByOZ7iu1dTMyYru484w5yBdyx20uc53blHrDPZ8QN/ClkKHqfbWqHRm+lBYp8jCY3q1P+vF+D8sewyTlS7P9ZA/0mHjxsLqK6dWZWCCAkcPgcNK+QfkTRlstCoexnznEg==;24:TCIAL+ZBKfuoB0dEmySEga/RCri/h9wwH4Uic9SrhF9xSYbeEZ6vGP9IjVKpixWUZzWQVlBwGoCY6x5bBG4Ypg==
SpamDiagnosticOutput: 1:22
SpamDiagnosticMetadata: Default
X-Microsoft-Exchange-Diagnostics: 1;VE1EUR03HT217;7:w62btC0eZlgKYSNdfaAM+Hei7NT/Wt+DE+AtcWXR4N9+s76d3D0CyDFJ9OvrbhV3krhU1LYY/mkOJ5kFm3wPG1M5+b/R8JnMqlVXeXZUiLUxeLVsEmuDaXU6rnYYbsbE+dgEeMDqZdQ0LuIg2dgwEmcBjtFxt4q2Ff7muYrXQB/DnKkEb6HtobL63/J/8X/3zTD6nvn/9gtGiqBezkNzTgneLRcrRtONKZdZFKCiyXGWQYuH8MzgP1HuLqvpYtVq4XzVRKwWPNmBWr/bnNHH3UwjAEQFmZaH2oNWX2OgA5PLHm5fnKGv9ta+D/tZHEEwtuqWoEwh+NNAqSk4nTJT0Q==
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Apr 2017 16:00:24.0310
(UTC)
X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa
X-MS-Exchange-CrossTenant-FromEntityHeader: Internet
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1EUR03HT217
X-MS-Exchange-Organization-AuthSource: VE1EUR03FT055.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-Organization-AuthAs: Anonymous
X-OriginatorOrg: outlook.com
X-MS-Exchange-Transport-EndToEndLatency: 00:00:01.8142614
X-Microsoft-Exchange-Diagnostics:
1;HE1PR06MB1545;27:yR9RnEJ8pf2JF7kaj+QvazKD5zk8ysUEbDeuPGt0WI8nwff2Uwgv+qbglsVWGwuCXR+xbediSSmdeOrPcs0GW6AdU/dVp0AfOmK++4FeIrZS/jhYya9oHYulSZ9SigZspW/tulJkW6UTBBk39OS75g==
X-Microsoft-Antispam-Mailbox-Delivery:
abwl:0;wl:0;pcwl:0;kl:0;iwl:0;ijl:0;dwl:0;dkl:0;rwl:0;ex:0;auth:1;dest:J;WIMS-SenderIP:w.x.y.z;WIMS-SPF:listes%2emon%2ddomaine%2efr;WIMS-DKIM:listes%2emon%2ddomaine%2efr;WIMS-822:test%40listes%2emon%2ddomaine%2efr;WIMS-PRA:test%2drequest%40listes%2emon%2ddomaine%2efr;WIMS-AUTH:PASS;ENG:(5061607094)(102400140)(102420017);RF:JunkEmail;OFR:SpamFilterAuthJ;
MIME-Version: 1.0

Et beau corps de message
A bientôt
VB