diff --git a/HowtoMail/Postfix.md b/HowtoMail/Postfix.md index e856e147..2851612e 100644 --- a/HowtoMail/Postfix.md +++ b/HowtoMail/Postfix.md @@ -464,133 +464,7 @@ smtpd_helo_required = yes #smtpd_reject_unlisted_recipient = ~~~ -## Maintenance -Postfix renvoie toutes ses actions à Syslog avec la facility LOG_MAIL. On retrouve donc les fichiers de journalisation définis dans le fichier _/etc/syslog.conf_ : -~~~ -mail.* -/var/log/mail.log -mail.info -/var/log/mail.info -mail.warn -/var/log/mail.warn -mail.err /var/log/mail.err -~~~ - -À noter que les renseignements dans les fichiers de journalisation, les adresses électroniques affichées sont celles d'enveloppe. - -Il faut également s'occuper des différentes files d'attente (ou queues) de Postfix. Les files d'attente principales sont incoming, active et deferred : -~~~ -incoming : première étape pour tous les nouveaux messages (après un passage par cleanup) -active : messages en cours de livraison (provenant principalement d'incoming ou deferred) -deferred : messages non délivrés lors du premier essai -~~~ - -Il existe aussi d'autres files d'attente, qui servent beaucoup moins fréquemment. -~~~ -corrupt : messages invalides -hold : messages mis de côté -~~~ - -Ces files d'attente sont des répertoires dans lesquels chaque message est stocké dans un fichier (sur une seule ligne), avec une arborescence de 16 répertoires (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F) pour optimiser lorsqu'un grand nombre de messages est dans une file d'attente. On peut ainsi accéder directement aux messages lorsqu'ils sont dans une file d'attente (lecture, modification, suppression) mais pour des actions, il est plutôt conseillé de passer par les commandes d'administration des files d'attentes. - -_sendmail -bp (ou mailq)_ liste toutes les files d'attente. Cela nous donne pour chaque message : - -* Queue ID -* Taille du message -* Date d'arrivée dans la file d'attente -* Expéditeur -* Éventuelle raison de non-livraison (entre parenthèses) -* Destinataires(s) - -Voici dans quel ordre sont listés les messages : - -* Messages de la queue active (une étoile figure à côté du Queue ID) -* Messages de la queue deferred -* Messages de la queue hold (un point d'exclamation figure à côté du queue ID) - -Exemples pratiques - -* _postcat -vq queue_id_ affiche le contenu d'un message -* _postcat -vq queue_id > themessage.txt_ copie le message dans un fichier -* _postsuper -d queue_id_ supprime le message correspondant au queue_id -* _postsuper -d ALL_ supprime tous les messages de la queue deferred -* _postsuper -d ALL deferred_ supprime tous les messages de la queue deferred -* _postsuper -h queue_id_ place "on hold" le message correspondant au queue_id. De la même façon, on a _postsuper -h ALL_ et _postsuper -h ALL deferred_ -* _postsuper -H queue_id_ libère un message placé "on hold". On peut aussi libérer tous les messages grâce à _postsuper -H ALL_ -* _postsuper -r queue_id_ refait passer le message correspondant au queue_id. Il est replacé dans la queue maildrop et repassera donc par les différents processus (pratique dans le cas où les alias virtuels ou les ré-écritures d'adresses ont changé) et se verra attribuer un nouveau queue_id. (attention, toutes ces étapes ne sont pas immédiates, il faut attendre que _sendmail -q (ou mailq -q)_ ré-active directement tous les messages des différentes queues (les messages deferred repassent directement dans la queue active, etc.). Cette commande est à utiliser avec modération, surtout sur les systèmes où les files d'attente sont chargées. - -À l'aide de petits scripts, on pourra utiliser ces commandes sur des ensembles de messages. Par exemple : - -~~~ -mailq | tail -n +2 | awk 'BEGIN { RS = "" } /user@example\.com$/ { print $1 }' | postsuper -h - -mailq | tail -n +2 | awk 'BEGIN { RS = "" } /example2\.com$/ { print $1 }' | tr -d '*!' | postsuper -d - -~~~ - -ou - -~~~ -# mailq > mailq.log -# for var in $(grep mailq.log | cut -b '1-12'); do postsuper -d $var; done -~~~ - -Note : le _BEGIN { RS = "" }_ est nécessaire car la sortie de mailq peut être sur plusieurs lignes, et le _tr -d '*!' _ permet de ne pas prendre les messages "on hold" - -* _postsuper -p_ purge des fichiers temporaires (en cas de crash par exemple) -* _postsuper -s_ réparation/vérification des arborescences de files d'attente - -À noter la commande _qshape_, permettant par exemple de lister les messages dans la file d'attente deffered : - -~~~ -# qshape deferred - T 5 10 20 40 80 160 320 640 1280 1280+ - TOTAL 78 0 0 0 0 1 0 0 0 0 77 - gmail.fr 11 0 0 0 0 0 0 0 0 0 11 - homail.fr 3 0 0 0 0 0 0 0 0 0 3 - yaoo.fr 2 0 0 0 0 0 0 0 0 0 2 - yahou.fr 2 0 0 0 0 0 0 0 0 0 2 - oange.fr 2 0 0 0 0 0 0 0 0 0 2 - hotmai.fr 2 0 0 0 0 0 0 0 0 0 2 - wanado.fr 2 0 0 0 0 0 0 0 0 0 2 - orangr.fr 1 0 0 0 0 0 0 0 0 0 1 - prange.fr 1 0 0 0 0 0 0 0 0 0 1 - ornage.fr 1 0 0 0 0 0 0 0 0 0 1 -~~~ - - -Le processus bounce gère les messages de non-livraison qui sont stockés dans les répertoires /var/spool/postfix/bounce/*, /var/spool/postfix/defer/* ou encore /var/spool/postfix/trace/* selon les types de message. - -La surveillance régulière des fichiers de journalisation ainsi que des files d'attente s'avère nécessaire, éventuellement à l'aide d'outils permettant de générer des statistiques, des courbes, etc. On peut ainsi citer l'outil mailgraph qui trace des courbes rrdtool à partir du fichier de journalisation, ou encore Munin qui trace des courbes selon l'état des files d'attente. L'utilisation de courbes personnalisées est fortement recommandée. - -En ce qui concerne les messages d'alerte, il faut gérer cela au niveau des alias. Par exemple, au niveau d'un serveur MX primaire : -~~~ -notify_classes = resource, software, bounce, 2bounce, delay -delay_notice_recipient = delay -error_notice_recipient = error -bounce_notice_recipient = bounce -2bounce_notice_recipient = 2bounce -~~~ - -Et ensuite, on ajoute les alias suivants : -~~~ -error: localadmin -mailer-daemon: postmaster -error: postmaster -bounce: postmaster -2bounce: postmaster -abuse: postmaster -postmaster: alert0@example.com -delay: alert0@example.com -virus: alert0@example.com -~~~ - -Pour un MX secondaire, on met souvent des restrictions plus importantes et on active moins d'alertes : -~~~ -notify_classes = resource, software -error_notice_recipient = error -~~~ - -Récupérer à la fois l'adresse expéditeur et destinataire dans les logs : -~~~ -grep "blocked using FBLW15" /var/log/mail.log | cut -d " " -f 6 | tr -d ':' | while read msgid; do grep $msgid /var/log/mail.log |grep " postfix/" |grep -E '(from|to)=<'|awk -F ' ' '{ print $1,$2,$3,$7 }' |tr -d ','; echo; done -~~~ ### Utilisation avec un annuaire LDAP @@ -861,28 +735,6 @@ L'utilisation de chroot impose quelques modifications, notamment si l'on utilise Le fichier _/etc/resolv.conf_ est copié dans _/var/spool/postfix/etc/resolv.conf_. Il faut le tenir synchronisé en cas de modification (notamment en cas d'installation sur un réseau différent du réseau final). -## Checklist délivérabilité - -* DKIM -* SPF -* Suppression des headers non nécessaires, qui peuvent permettre d'identifier la machine originale ayant envoyé le message (dans le cas où l'adresse IP de celle-ci aurait mauvaise réputation) -* Reverse DNS -* Optimisations pour Orange / Free / etc -* -* Adresse de retour valide - -## Logs Postfix - -L'indication _delays_ dans les logs est utile pour avoir des informations sur le temps d'envoi d'un mail : - -~~~ -delays=a/b/c/d: -a=time before queue manager, including message transmission; -b=time in queue manager; -c=connection setup time including DNS, HELO and TLS; -d=message transmission time. -~~~ - ## Divers ### Restreindre selon le From @@ -898,45 +750,9 @@ onlylocal = check_sender_access hash:/etc/postfix/onlylocal, reject lcdr@ onlylocal ~~~ -### log2mail - -Pour être alerté en cas d'erreurs graves, voici une config pour log2mail : - -~~~ -file = /var/log/mail.log - pattern = "fatal:" - mailto = postmaster@example.com - template = /etc/log2mail/template.mail - -file = /var/log/mail.log - pattern = "panic:" - mailto = postmaster@example.com - template = /etc/log2mail/template.mail - -file = /var/log/mail.log - pattern = "No such file or directory" - mailto = postmaster@example.com - template = /etc/log2mail/template.mail - -file = /var/log/mail.log - pattern = "table lookup problem" - mailto = postmaster@example.com - template = /etc/log2mail/template.mail - -file = /var/log/mail.log - pattern = "warning: connect to Milter service" - mailto = postmaster@example.com - template = /etc/log2mail/template.mail - -file = /var/log/mail.log - pattern = "451 4.7.1 Service unavailable - try again later" - mailto = postmaster@example.com - template = /etc/log2mail/template.mail -~~~ - ### Chercher Mails entre deux date (Maildir) Exemple : Chercher les emails entre le 18 mai 2016 et 11 octobre 2016 ~~~ $ find $HOME/Maildir -type f -newermt 2016-05-18 ! -newermt 2016-09-11 -~~~ \ No newline at end of file +~~~ diff --git a/HowtoPostfix.md b/HowtoPostfix.md new file mode 100644 index 00000000..a7a9119b --- /dev/null +++ b/HowtoPostfix.md @@ -0,0 +1,436 @@ +--- +categories: mail +title: Howto Postfix +... + +* Documentation : +* Rôle Ansible : + +[Postfix](http://www.postfix.org/) est serveur [SMTP](HowtoSMTP) libre et populaire sous GNU/Linux et BSD. Il a été développé en 1999 par [Wietse Venema](http://www.porcupine.org/wietse/) comme une alternative plus facile à administrer et plus sécurisée que l'historique _Sendmail_. + +## Installation + +~~~ +# apt install postfix + +# postconf -d | grep ^mail_version +mail_version = 2.11.3 +~~~ + +## Configuration + +Postfix s'appuie principalement sur le fichier `/etc/postfix/master.cf` (configuration des process de Postfix) et le fichier `/etc/postfix/main.cf` (configuration des options). + +L'utilitaire **postconf** permet de lister/vérifier les options du `main.cf`. + +~~~ +## Lister les options par défaut +# postconf -d + +## Lister les options actuelles +# postconf + +## Lister les options modifiées par rapport au défaut +# postconf -n + +## Manpage très détaillée sur toutes les options disponibles +# man 5 postconf +~~~ + + +### Configuration minimale + +Pour une configuration minimale, nous conseillons d'avoir le fichier +`main.cf` suivant en ajustant le paramètre _myhostname_ avec un +enregistrement DNS existant pointant vers le serveur concerné : + +~~~ +smtpd_banner = $myhostname ESMTP mail server +biff = no +append_dot_mydomain = no +myhostname = hosting.example.com +alias_maps = hash:/etc/aliases +alias_database = hash:/etc/aliases +myorigin = $myhostname +mydestination = $myhostname localhost.localdomain localhost +relayhost = +mynetworks = 127.0.0.0/8 +mailbox_size_limit = 0 +recipient_delimiter = + +inet_interfaces = all +inet_protocols = ipv4 +~~~ + +### Configuration minimale pour serveur web + +Un serveur web va souvent envoyer des emails, et notamment vers des fournisseurs d'accès connus (gmail.com, orange.fr, etc.). On conseille donc d'ajouter les options suivantes dans `main.cf` pour gérer le rythme d'envoi : + +~~~ +#delay_warning_time = 4h +minimal_backoff_time = 2h +maximal_backoff_time = 6h +maximal_queue_lifetime = 4d +queue_run_delay = 100s +bounce_queue_lifetime = 1d + +initial_destination_concurrency = 5 +default_destination_concurrency_limit = 20 + +slow_destination_rate_delay = 0 +slow_destination_concurrency_limit = 1 +slow_destination_concurrency_failed_cohort_limit = 100 +slow_destination_recipient_limit = 25 + +transport_maps = hash:$config_directory/transport +~~~ + +et on ajoute la ligne suivante dans `master.cf` : + +~~~ +slow unix - - n - - smtp +~~~ + +Il faut également créer le fichier `/etc/postfix/transport` et indiquer des domaines vers lesquels le rythme d'envoi sera plus lent (à cause de restrictions de leur côté) : + +~~~ +orange.fr slow: +wanadoo.fr slow: +voila.fr slow: +laposte.net slow: +~~~ + +On fera ensuite : + +~~~ +# postmap /etc/postfix/transport +# systemctl restart postfix +~~~ + +### Configuration avancée pour serveur de messagerie + +Voir HowtoMail/Postfix + +## Administration + +### Logs + +Postfix envoie une de trace de ses actions à _Syslog_ avec la facility *LOG_MAIL*. On retrouve donc les fichiers de journalisation définis dans le fichier `/etc/rsyslog.conf` : + +~~~ +mail.* -/var/log/mail.log +mail.info -/var/log/mail.info +mail.warn -/var/log/mail.warn +mail.err /var/log/mail.err +~~~ + +*Note* : ce sont les adresses email d'enveloppe affichées dans les logs Postfix + +L'indication **delays=a/b/c/d** dans les logs est utile pour avoir des informations sur le temps d'envoi d'un mail : + +~~~ +a=time before queue manager, including message transmission; +b=time in queue manager; +c=connection setup time including DNS, HELO and TLS; +d=message transmission time. +~~~ + +### File d'attente + +Postfix utilise différentes files d'attente (ou queues). Les files d'attente principales sont _incoming_, _active_ et _deferred_ : + +~~~ +incoming : première étape pour tous les nouveaux messages (après un passage par cleanup) +active : messages en cours de livraison (provenant principalement d'incoming ou deferred) +deferred : messages non délivrés lors du premier essai +~~~ + +Il existe aussi d'autres files d'attente, qui servent beaucoup moins fréquemment : _corrupt_ (messages invalides) et _hold_ (messages mis de côté). + +Ces files d'attente sont des répertoires situés dans `/var/spool/postfix`dans lesquels chaque message est stocké dans un fichier (sur une seule ligne), avec une arborescence de 16 répertoires (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F) pour optimiser lorsqu'un grand nombre de messages est dans une file d'attente. On peut gérer ces files d'attente grâce à des commandes d'administration. + +`mailq` (ou `sendmail -bp`) liste toutes les files d'attente. Cela nous donne pour chaque message : + +* Queue ID +* Taille du message +* Date d'arrivée dans la file d'attente +* Expéditeur +* Éventuelle raison de non-livraison (entre parenthèses) +* Destinataires(s) + +Voici dans quel ordre sont listés les messages : + +* Messages de la queue _active_ (une étoile figure à côté du Queue ID) +* Messages de la queue _deferred_ +* Messages de la queue _hold_ (un point d'exclamation figure à côté du queue ID) + +Exemples pratiques : + +~~~ +## Afficher le contenu d'un message +# postcat -vq + +## Copier un message dans un fichier +# postcat -vq > themessage.txt + +## Supprimer un message (ou tous) des files d'attente +# postsuper -d +# postsuper -d ALL + +## Supprimer tous les messages de la queue deferred +# postsuper -d ALL deferred + +## Placer en "hold" un message (ou tous) +# postsuper -h +# postsuper -h ALL + +## Placer en "hold" tous les message de la queue deferred +# postsuper -h ALL deferred + +## Libérer un message (ou touss) en "hold" +# postsuper -H +# postsuper -H all + +# Refaire passer un message (ou tous) par les process de livraison +# postsuper -r +# postsuper -r ALL + +## Purger des fichiers temporaires (en cas de crash par exemple) +# postsuper -p + +## Réparer/vérifier l'arborescence des files d'attente +# postsuper -s +~~~ + +On pourra utiliser ces commandes sur des ensembles de messages via des scripts du type : + +~~~ +# mailq | tail -n +2 | awk 'BEGIN { RS = "" } /user@example\.com$/ { print $1 }' | postsuper -h - +# mailq | tail -n +2 | awk 'BEGIN { RS = "" } /example\.com$/ { print $1 }' | tr -d '*!' | postsuper -d - +# mailq > mailq.log ; for var in $(grep mailq.log | cut -b '1-12'); do postsuper -d $var; done +~~~ +*Note* : le `BEGIN { RS = "" }` est nécessaire car la sortie de mailq peut être sur plusieurs lignes, et le `tr -d '*!'` permet de ne pas prendre les messages en « hold ». + +*À savoir* : la commande `postsuper -r` est pratique dans les cas où l'on a modifié des alias ou des ré-écritures, elle va déposer les messages concerné dans la queue _maildrop_ et lui attribué un nouveau . Attention, cela ne va pas provoquer un envoi immédiat car le traitement des files d'attente est différé. Si l'on veut un ré-envoi immédiat d'un message : + +~~~ +# postsuper -r +# mailq -q +~~~ +/!\\ Attention, `mailq -q` (ou `sendmail -q` réactive immédiatemment l'ensemble des messages en file d'attente, il faut donc l'utiliser avec modération, surtout sur les serveurs avec des files d'attentes chargées. + +La commande **shape** permettant par exemple de lister les messages dans la file d'attente _deffered_ : + +~~~ +# qshape deferred + T 5 10 20 40 80 160 320 640 1280 1280+ + TOTAL 78 0 0 0 0 1 0 0 0 0 77 + gmail.fr 11 0 0 0 0 0 0 0 0 0 11 + homail.fr 3 0 0 0 0 0 0 0 0 0 3 + yaoo.fr 2 0 0 0 0 0 0 0 0 0 2 + yahou.fr 2 0 0 0 0 0 0 0 0 0 2 + oange.fr 2 0 0 0 0 0 0 0 0 0 2 + hotmai.fr 2 0 0 0 0 0 0 0 0 0 2 + wanado.fr 2 0 0 0 0 0 0 0 0 0 2 + orangr.fr 1 0 0 0 0 0 0 0 0 0 1 + prange.fr 1 0 0 0 0 0 0 0 0 0 1 + ornage.fr 1 0 0 0 0 0 0 0 0 0 1 +~~~ + +### Notifications + +Postfix envoie des notifications à ajuster avec l'option `notify_classes`. + + + + +En ce qui concerne les messages d'alerte, il faut gérer cela au niveau des alias. Par exemple, au niveau d'un serveur MX primaire : +~~~ +notify_classes = resource, software, bounce, 2bounce, delay +delay_notice_recipient = delay +error_notice_recipient = error +bounce_notice_recipient = bounce +2bounce_notice_recipient = 2bounce +~~~ + +Et ensuite, on ajoute les alias suivants : +~~~ +error: localadmin +mailer-daemon: postmaster +error: postmaster +bounce: postmaster +2bounce: postmaster +abuse: postmaster +postmaster: alert0@example.com +delay: alert0@example.com +virus: alert0@example.com +~~~ + +Pour un MX secondaire, on met souvent des restrictions plus importantes et on active moins d'alertes : +~~~ +notify_classes = resource, software +error_notice_recipient = error +~~~ + +## Plomberie + +Postfix est découpé en plusieurs processus (qmgr, pickup, smtp, smtpd, bounce, cleanup, error, etc.) contrôlé par un processus nommé `master`. Chaque processus est défini dans le fichier de configuration `master.cf`. + +Sur un serveur inactif, vous verrez au minimum les processus suivants : + +~~~ + |-master,432636 -l -t unix -u + | |-qmgr,5036 -l -t unix -u-u -c + | `-pickup,9162 -l -t unix -u -c +~~~ + +Sur un serveur actif, vous verrez de nombreux processus, par exemple : + +~~~ + |-master,2576 + | |-scache,13334 -l -t unix -u + | |-qmgr,22888 -l -t fifo -u + | |-anvil,22891 -l -t unix -u + | |-smtp,25261 -t unix -u + | |-smtp,26204 -t unix -u + | |-trivial-rewrite,26596 -n rewrite -t unix -u + | |-smtp,26629 -t unix -u + | |-pickup,27010 -l -t fifo -u + | |-smtp,27102 -t unix -u + | |-smtp,27976 -t unix -u + | |-proxymap,28383 -t unix -u + | |-smtp,29967 -t unix -u + | |-smtp,29968 -t unix -u + | |-smtp,29969 -t unix -u + | |-bounce,29970 -z -t unix -u + | |-bounce,30351 -z -n defer -t unix -u + | |-bounce,30352 -z -n defer -t unix -u + | |-bounce,30354 -z -n defer -t unix -u + | |-bounce,30355 -z -n defer -t unix -u + | |-cleanup,30364 -z -t unix -u + | |-cleanup,30365 -z -t unix -u + | |-smtpd,30366 -n smtp -t inet -u -o stress= -s 2 + | |-error,30367 -n retry -t unix -u + | |-error,30368 -n retry -t unix -u + | |-error,30369 -n retry -t unix -u + | `-smtpd,30374 -n smtp -t inet -u -o stress= -s 2 +~~~ + +Voici un schéma qui illustre la communication entre les processus/files d'attente/tables : + +![Architecture de Posftix](https://upload.wikimedia.org/wikipedia/commons/e/ed/Postfix_architecture.svg 'Architecture Postfix") + +* Le processus **bounce** gère les messages de non-livraison qui sont stockés dans les répertoires `/var/spool/postfix/bounce/*`, `/var/spool/postfix/defer/*` ou encore `/var/spool/postfix/trace/*` selon les types de message. + + +## Monitoring + +La surveillance régulière des fichiers de journalisation ainsi que des files d'attente s'avère nécessaire, éventuellement à l'aide d'outils permettant de générer des statistiques, des courbes, etc. On peut ainsi citer l'outil **mailgraph** qui trace des courbes _rrdtool_ à partir du fichier de journalisation, ou encore **Munin** qui trace des courbes selon l'état des files d'attente. + +### mailgraph + +~~~ +# apt install mailgraph +~~~ + +[mailgraph](http://mailgraph.schweikert.ch/) fait tourner un démon Perl qui analyse `/var/log/mail.log`, on peut ensuite visualiser des courbes RRDtool via un script CGI `/usr/lib/cgi-bin/mailgraph.cgi`. + +Pour diverses raisons, si l'on ne veut pas avoir de module CGI on pourra utiliser un script Shell à placer en crontab : + +~~~{.bash} +#!/bin/sh +MAILGRAPH_PATH=/usr/lib/cgi-bin/mailgraph.cgi # Debian +MAILGRAPH_DIR=/var/www/mailgraph +umask 022 +mkdir -p $MAILGRAPH_DIR +$MAILGRAPH_PATH | sed '1,2d ; s/mailgraph.cgi?//' > $MAILGRAPH_DIR/index.html +for i in 0-n 0-e 1-n 1-e 2-n 2-e 3-n 3-e; do + QUERY_STRING=$i $MAILGRAPH_PATH | sed '1,3d' > $MAILGRAPH_DIR/$i +done +~~~ + +### munin + +TODO + +### nagios + +TODO + +### log2mail + +Pour être alerté en cas d'erreurs graves, voici une config pour log2mail : + +~~~ +file = /var/log/mail.log + pattern = "fatal:" + mailto = postmaster@example.com + template = /etc/log2mail/template.mail + +file = /var/log/mail.log + pattern = "panic:" + mailto = postmaster@example.com + template = /etc/log2mail/template.mail + +file = /var/log/mail.log + pattern = "No such file or directory" + mailto = postmaster@example.com + template = /etc/log2mail/template.mail + +file = /var/log/mail.log + pattern = "table lookup problem" + mailto = postmaster@example.com + template = /etc/log2mail/template.mail + +file = /var/log/mail.log + pattern = "warning: connect to Milter service" + mailto = postmaster@example.com + template = /etc/log2mail/template.mail + +file = /var/log/mail.log + pattern = "451 4.7.1 Service unavailable - try again later" + mailto = postmaster@example.com + template = /etc/log2mail/template.mail +~~~ + +## Délivérabilité + +La _délivrabilité_ est un concept visant à s'assurer qu'un email envoyé va bien atteindre son destinataire. + +Voici un check-up pour s'assurer d'avoir une bonne _délivrabilité_ : + +* Reverse DNS configuré vers un enregistrement valide pointant lui-même vers l'adresse IP du serveur mail +* IPv6 correctement configuré (avec reverse DNS) ou desactivé +* Utiliser une adresse de retour valide (**Return-Path**) et traiter les retours régulièrement +* Configurer DKIM +* Configurer SPF +* Configurer DMARC +* Nettoyer ses entêtes +* S'enregistrer auprès de +* Régler son rythme d'envoi, notamment vers Orange, Free, etc. +* Vérifier son contenu via des outils comme _SpamAssassin_ + +### Contacts des principaux fournisseurs d'email + +En cas de souci de _délivrabilité_ vers un domaine particulier, on est amené à contacter son responsable. +En théorie l'adresse email `postmaster@` permet cela. + +En pratique pour les principaux fournisseurs d'emails, voici comment les contacter : + +* Free : +* Orange : +* Hotmail/Outlook/Microsoft : +* Yahoo : ... plus récemment : +* La Poste : +* GMAIL : (NE REPONDENT JAMAIS !!!) + + +## FAQ + +### Réupérer expéditeur et destinataire dans mail.log + +Pour récupérer à la fois l'adresse expéditeur et destinataire dans les logs : + +~~~ +# grep "blocked using FBLW15" /var/log/mail.log | cut -d " " -f 6 | tr -d ':' | while read msgid; do grep $msgid /var/log/mail.log |grep " postfix/" |grep -E '(from|to)=<'|awk -F ' ' '{ print $1,$2,$3,$7 }' |tr -d ','; echo; done +~~~ + diff --git a/TipsDelivrabilite.md b/TipsDelivrabilite.md deleted file mode 100644 index 9394ca0e..00000000 --- a/TipsDelivrabilite.md +++ /dev/null @@ -1,12 +0,0 @@ -**Cette page a été importée automatiquement de notre ancien wiki mais n'a pas encore été révisée.** - -# Howto Delivrabilité - -## Contacts des principaux FAIs - -* Free : -* Orange : -* Hotmail/Outlook/Microsoft : -* Yahoo : ... plus récemment : -* La Poste : -* GMAIL : (NE REPONDENT JAMAIS !!!)