Installer un serveur mail

De Analyse Développement Hacking
Sauter à la navigation Sauter à la recherche

Glider.png

Le wiki : Accueil - Administrateur - Bureautique - Développeur - Intégrateur - Marketing - Multimédia - Objets numériques - Jeux - We make Hack

Le site : Accueil - Annuaire - Blog - Forum - Outils - Utilisateur
Le FTP : Consulter les fichiers partagés sur le FTP
Le Redmine : Consulter le Redmine

Sommaire

Installer un serveur de mail

Tester la connexion à un serveur SMTP

Port 25 - Port 587

Lancer une commande ping ou telnet permet de savoir si le serveur SMTP est à l'écoute.
Différents fournisseurs FAI bloquent le port 25 pour éviter le spam.
Connection refused - connect(2) for "localhost" port 25.
Contacter le FAI pour faire débloquer le port 25 si nécessaire.
Sinon, utiliser le port 587.

Ping un serveur SMTP

ping smtp.visionduweb.com
PING smtp.visionduweb.com (194.146.224.64) 56(84) bytes of data.
64 bytes from m-cluster.sivit.fr (194.146.224.64): icmp_seq=1 ttl=53 time=30.6 ms
ping -c 10 smtp.gmail.com
--- gmail-smtp-msa.l.google.com ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 9011ms
rtt min/avg/max/mdev = 49.715/95.253/303.956/75.337 ms

Telnet avec un serveur SMTP

Telnet avec Visionduweb

telnet smtp.visionduweb.com 25
Trying 194.146.224.64...
Connected to smtp.visionduweb.com.
Escape character is '^]'.
220-SMTP Ready !
telnet smtp.visionduweb.com 587
Trying 194.146.224.64...
Connected to smtp.visionduweb.com.
Escape character is '^]'.
220-SMTP Ready !
Initier la conversation avec SMTP :
EHLO visionduweb.com
STARTTLS

Telnet avec Alwaysdata

telnet smtp-base.alwaysdata.net 25
Trying 185.31.40.81...
Connected to smtp-base.alwaysdata.net.
Escape character is '^]'.
220 smtpout1.paris1.alwaysdata.com ESMTP Exim 4.89 Fri, 07 Sep 2018 01:36:38 +0200

Telnet avec Gmail

telnet smtp.gmail.com 25
Trying 64.233.167.109...
Connected to gmail-smtp-msa.l.google.com.
Escape character is '^]'.
220 smtp.gmail.com ESMTP s10-v6sm7714541wrw.35 - gsmtp
Il est possible de se connecter à Gmail en texte brut (pas de négociation sécurisée) sur le port 587.
Par conséquent, vous devriez voir que telnet smtp.gmail.com 587 fonctionne très bien!
telnet smtp.gmail.com 587
Trying 74.125.133.108...
Connected to gmail-smtp-msa.l.google.com.
Escape character is '^]'.
220 smtp.gmail.com ESMTP m13-v6sm7405703wru.93 - gsmtp

Envoyer un mail avec PHP

Envoyer un mail avec PHP et la classe PHPMailer.

Envoyer un mail depuis le terminal

Utiliser la messagerie avec le paquet mutt

Site officiel pour mutt : http://www.mutt.org
Documentation : http://www.mutt.org/doc/manual/

Installer mutt

sudo apt-get install mutt
mutt

Configurer mutt

La configuration de mutt se fait dans le fichier ~/.muttrc ou dans le fichier /etc/Muttrc.
Il est préférable de partir de zéro.
Créer le fichier .muttrc dans votre home utilisateur.
Exemple pour l'utilisateur root :
su
cd ~/
touch .muttrc
nano .muttrc
Créer la configuration de mutt pour Linux Mint ou Ubuntu
Je crée deux fichiers de configuration .muttrc pour l'utilisateur root et pour l'utilisateur standard.
# configuration de base
set realname = "Nom utilisateur qui envoie le message"
set header_cache =~/.mutt/cache/headers
set certificate_file =~/.mutt/certificates
set message_cachedir =~/.mutt/cache/bodies

# configuration imap
set spoolfile=imaps://imap.gmail.com:993/INBOX
set imap_user = "{votre @ email}"
set imap_pass = "{votre password}"
set imap_passive="no"
set imap_check_subscribed="yes"
set imap_list_subscribed="yes"

# configuration SMTP
set smtp_url = "smtp://{votre @ email}@smtp.gmail.com:587/"
set smtp_pass = "{votre password}"
set from = "{votre @ email}@gmail.com"
set use_envelope_from=yes # Pour que postfix ou sendmail ne change pas votre from

# En complément
set trash = "imaps://imap.gmail.com/[Gmail]/Trash"
set postponed="+[Gmail]/Draft"
set folder = "imaps://imap.gmail.com:993/"
set imap_check_subscribed
set mail_check = 120
set timeout = 300
set imap_keepalive = 300
set signature='/signature.txt'

# locales FR pour les noms des jours et mois.
# Cette variable est prise en compte sous Mint et Ubuntu.
# Cette variable n'est pas prise en compte sous Debian et provoque une erreur.
set locale="fr_FR"

# Format de date
set date_format="%A %d %b %Y à %H:%M:%S (%Z)"

# phrase d'intro pour réponse quotée
set attribution="Le %d, %n a écrit :"
set forward_format="[Fwd: %s]"
set forward_quote

#
mailboxes !

#Editeur
set edit_hdrs
auto_view text/html
#set editor="nano" # Indiquer le choix de votre éditeur de texte.

color attachment magenta default            # attachments
color body brightred default "(ftp|http)://[^ ]+"       # point out URLs
color body brightcyan default [-a-z_0-9.]+@[-a-z_0-9.]+ # e-mail addresses
color bold brightblue default               # boldface text
color error brightwhite red                 # error messages
color hdrdefault magenta default            # default color of message header
color header brightmagenta default ^(From): # From and Subject header
color header brightwhite default ^(Subject): # From and Subject header
color header brightwhite default ^(Date): # Date header
color header white default ^(In-Reply-To):
color indicator brightred default                   # indicator bar
color markers brightblue default            # wrapped line markers (+)
color message brightblack green             # status messages
color normal default default                # default
color quoted yellow default                 # quoted text, 1st quote level
color quoted1 green default                 # quoted text, 2nd quote level
color quoted2 brightblue default            # quoted text, 3rd quote level
color quoted3 blue default                  # quoted text, 4th quoet level
color search black yellow                   # matched search patterns in pager
color signature red default                 # the signature (after sigdashes)
color status default blue                   # status lines
color tilde brightblue default              # ``~ used to pad blank lines
color tree green default                    # thread tree in the index menu
color underline brightgreen default         # underlined text

# Encodage a utiliser
set charset=utf-8
set send_charset=utf-8

set pager_index_lines=7
set pager_stop
Créer la configuration de mutt pour Debian
Je crée deux fichiers de configuration .muttrc pour l'utilisateur root et pour l'utilisateur standard.
La configuration de Debian 9 est basée sur la configuration précédente pour Mint et Ubuntu.

Première utilisation

Démarrer mutt

Démarrer mutt avec la commande mutt, en étant root, ou, avec un simple utilisateur.
Le programme va proposer la création automatique des dossiers et fichiers nécessaires pour stocker les mails de l'utilisateur. Accepter.

Erreurs rencontrées

Envoyer un mail avec une configuration de mutt par défaut
Un message d'erreur va être affiché si la configuration de mutt n'est pas configuré pour envoyer des messages.
# Le message d'erreur que j'ai obtenu avant de configurer mutt avec la configuration fonctionnelle partagée plus haut :
Erreur en envoyant le message, fils terminé avec le code 127 (Exec error.).
Impossible d'envoyer le message.
NXDOMAIN Domain name not found
Un deuxième message d'erreur peut être rencontré, si on tente d'envoyer un mail localement, à l'utilisateur root@MonDomaineLocal :
DNS Error: 5084189 DNS type 'mx' lookup of MonDomaineLocal responded with code NXDOMAIN Domain name not found: MonDomaineLocal
Envoyer un mail pour l'utilisateur local en passant par le SMTP de Google, forcément Google ne sait pas comment joindre notre machine.
Il faut utiliser un MTA local à ce moment la, par exemple, installer Postfix pour une utilisation locale uniquement.

Todo.png
Si le message est bien envoyé à un mail valide, par exemple "mail@visionduweb.com", alors, le mail sera bien réceptionné depuis le client de messagerie habituel.
Erreur de variable locale
La variable locale semble bien être prise en compte dans le manuel de Mint ou de Ubuntu pour les valeurs de .muttrc acceptées.
Cette valeur doit être commentée avec un autre système d'exploitation pour éviter une erreur affichée au lancement de mutt.
La variable locale n'est pas présente dans le manuel de mutt / .muttrc officiel. Source : http://www.mutt.org/doc/mutt.1.txt
La variable locale n'est pas présente dans le manuel de mutt / .muttrc proposé par Debian.
La connexion IMAP ne s’établit pas vers Gmail
Quand je lance mutt, la connexion ne s’établit pas.
En acceptant l'appareil depuis Gmail, la connexion devient fonctionnelle comme affiché depuis le terminal lors du démarrage de mutt.
SMTP No authenticators available
Lors de l'envoi du message je rencontre l'erreur suivante après l'identification SMTP : No authenticators available.
Une première piste en ajoutant la variable set smtp_authenticators = 'login' ne me permet pas d'envoyer le message.
(En vert) SSL/TLS connection using TLS1.2 (ECDHE-RSA/CHACHA20-POLY1305/AEAD)
(En rouge) No authenticators available.
J'obtiens cette erreur avec un serveur web basé sur Debian 9 SID.
Avec une machine virtuelle basée sur Debian 9 XFCE, je peux envoyer des mails directement.
SASL est apparemment requis pour que mutt s'authentifie à l'aide de smtps.
Installer le paquet libsasl2-modules me permet d'envoyer le message : sudo apt install libsasl2-modules
APT a répertorié ce paquet comme "recommandé", ce qui n'est pas un bogue, ce paquet n'étant pas indispensable pour exécuter mutt.
Droits en écriture sur le dossier local pour conserver les messages
Quand un envoie de message n'aboutit pas, il est nécessaire d'annuler l'action en cours.
L'option pour annuler l'envoie du message propose de le conserver avec la touche yes pour valider.
Dans mon cas, le dossier [Gmail] appartenait à root au lieu de l'utilisateur local utilisé pour tester l'envoi du message.
/home/USER/Mail/[Gmail]/Draft: Permission denied (errno = 13)
Une fois le propriétaire et le groupe changé pour l'utilisateur par défaut, USER, le message annulé peut être correctement enregistré.
Notes complémentaires de Blabla Linux
Éditer le fichier de conf qui se trouve dans "~/.muttrc " ou plus simplement /home/user/.muttrc
Ajouter ce texte en le modifiant selon t'es propre info (ici pour gmail) :
set from = "ADRESSE_MAIL@gmail.com"
set realname = "NOM_PRENOM_ASSOCIER_A_L'ADRESSE_MAIL"
set imap_user = "ADRESSE_MAIL@gmail.com"
set imap_pass = "PASSWORD"
set folder = "imaps://imap.gmail.com:993"
set spoolfile = "+INBOX"
set postponed ="+[Gmail]/Drafts"
set header_cache =~/.mutt/cache/headers
set message_cachedir =~/.mutt/cache/bodies
set certificate_file =~/.mutt/certificates
set smtp_url = "smtp://ADRESSE_MAIL@smtp.gmail.com:587/"
set smtp_pass = "PASSWORD"
set move = no
set imap_keepalive = 900
Ensuite tu peux envoyer des mails comme ceci :
echo "TITRE_DU_MAIL" | mutt -s "SUJET_DU_MAIL" ADRESSE_DE_DESTINATION

Les commandes de mutt

Lire les mails avec mutt

q   	Quit
d 	Del
u	Undel
s	Save
m	Mail
r	Reply
g	Group
?	Help
Marquer les mails à supprimer avec la touche "d".
Quitter mutt. Un message de confirmation demande si les mails doivent être supprimés.
Vérifier l'encodage des messages
# Démarrer mutt et coller la commande suivante dans l'interface pour vérifier l'encodage et s'assurer de la prise en compte des accents :
:set &charset ?charset
# Le message suivant va être affiché :
charset="utf-8"

Envoyer un mail avec mutt

# Pour envoyer un message il suffit de taper "m".
L'interface d'envoi de mail s'ouvre.
# Saisir le destinataire, par exemple, l'utilisateur root, en local.
To :
# Indiquer le sujet du mail :
Subject :
# Écrire le contenu du message :
Notre premier message.
# Une fois la rédaction du mail terminée, ctrl+x pour enregistrer le message.
# Appuyer sur la touche "y" pour sauvegarder.
# Appuyer sur la touche "y" pour envoyer le courriel.
Si vous recevez le courriel c'est que votre serveur de courriel fonctionne correctement.

Envoyer un message avec une pièce jointe depuis le terminal

mutt -a README -s essai -c mail@visionduweb.com < /dev/null

Documentation complémentaire pour mutt

Mutt : client de messagerie en console : https://doc.ubuntu-fr.org/mutt
Traduction de la documentation de Mutt : http://cedricduval.free.fr/mutt/fr/
Source : https://nickdesaulniers.github.io/blog/2016/06/18/mutt-gmail-ubuntu/
Le courrier en console : https://formation-debian.viarezo.fr/mail-console.html
A Command Line Email Client to Send Mails from Terminal : https://www.tecmint.com/send-mail-from-command-line-using-mutt-command/

Utiliser la messagerie avec la commande mail et mailx

Installer mailutils

# Installer mailx contenu dans le paquet mailutils pour utiliser la commande mail :
sudo apt-get install mailutils
# Avoir plus d’information sur ce que mailutils peut gérer :
mu-tool info

Utiliser la commande mail

# Lancer le programme mail :
mail
# Lire un mail avec son numéro et entrée :
1
# Supprimer le message qui a été affiché :
d
# Lire le mail suivant :
f
# Lire tous les mails suivants :
f *
# Supprimer les mails affichés par la commande mail :
# Supprimer les mails de 1 à 5 :
d 1-5
# Supprimer tous les mails :
d *
# Réponse au problème pour envoyer un mail en ligne de commande !
# Plusieurs fois, j'ai été bloqué pour valider l'envoi d'un mail saisi depuis le terminal.
# Utiliser le raccourci suivant pour envoyer le mail une fois le message correctement rédigé :
CTRL D
# Envoyer un mail en ligne de commande :
mail -s "Hello World !" mail@visionduweb.com < /dev/null
# Envoyer un mail en ligne de commande, avec un sujet et un message :
mail -s "This is the subject" somebody@example.com <<< 'This is the message'
# Envoyer un mail en ligne de commande avec un message de confirmation dans le terminal :
HOST="Le serveur Debian."
echo "Mail envoyé le $(date)" | mail -s "Test de mail depuis $HOST" mail@visionduweb.com
# Envoyer le contenu d'un fichier texte par mail :
mail -s "Le contenu du fichier texte" mail@visionduweb.com < README
# Envoyer le contenu d'un fichier texte par mail :
cat README | mail -s "Le contenu du fichier texte" mail@visionduweb.com
# Envoyer le contenu d'un fichier texte dans un mail local :
mail -s "Mail envoyé localement" debian@localhost,root@localhost < README
# Si le message suivant est affiché, l'envoie d'un mail à un serveur distant n'est pas supporté, le mail ne peut pas être envoyé.
# Configurer alors le serveur de mail par défaut de Debian Exim.
Mailing to remote domains not supported
# Accéder aux mails d'un utilisateur :
mail -f /var/spool/mail/user
# A quoi sert ce path ?
/var/mail/
Source complémentaire : https://fr.wikipedia.org/wiki/Mail_(Unix)

Utiliser la commande mailx

# Lancer le programme mailx :
mail
# Envoyer un message en ligne de commande :
echo "test" | mail -s "test mail" mail@visionduweb.com
echo "Mail envoyé le $(date)" | mail -s "Test envoi de mail depuis $HOST" mail@visionduweb.com
# Envoyer un mail avec une copie CC et une copie BCC :
mailx -s "Hello World" mail@visionduweb.com -c debian@localhost -b root@localhost  < README
# Ajouter les paramètres pour le nom de l'expéditeur pour lequel répondre au message :
mailx -s "Hello World" root@localhost -r "Répondre à Visionduweb<mail@visionduweb.com>"
# Ajouter les paramètres pour répondre à, ainsi que le nom de l'expéditeur pour lequel répondre au message :
mailx -s "Hello World" -S replyto="İsmail Baydan <ismail@localhost>" root@localhost
# Envoyer un message avec une pièce jointe en ligne de commande :
# Utiliser -a ou -A, et, finir par un point virgule.
# Avec -a j'obitens "mailx: En-tête invalide".
mailx -s "Some File" mail@visionduweb.com -A README;
# Comment valider l'envoie du mail ?
# CTRL+C Espace, deux fois, pour avorter l'envoie du message.
# Envoyer un message avec une pièce jointe en ligne de commande :
# Utiliser -a ou -A, et, finir par un point virgule.
# Avec -a j'obitens "mailx: En-tête invalide".
echo "le message du mail" | mailx -s "objet du mail" -A "README" mail@visionduweb.com;
# Ajouter du HTML dans un mail :
( echo "Content-Type: text/html"; cat toto.html ) | mail -a piece.pdf -s "mon sujet" -c copie@toto.com destinaraire@toto.com
# Ou :
mailx -a 'Content-Type: text/html' -s "my subject" user@gmail.com < email.html

Autres exemples pour envoyer un mail en ligne de commande Linux

Ok-ko.png https://www.poftut.com/linux-mail-mailx-commands-tutorial-examples-send-email-command-line/
Ko.png https://tecadmin.net/ways-to-send-email-from-linux-command-line/
Ko.png 16 Command Examples to Send Email From The Linux Command Line : https://blog.edmdesigner.com/send-email-from-linux-command-line/
404.png Fixme.png Comment traiter l'option invalide -A : http://www.juanjchong.com/2014/cant-send-e-mail-from-the-ubuntu-command-line-mailx-invalid-option-a/
Ko.png Avec uuencode et le paquet sharutils : https://www.system-linux.eu/index.php?post/2009/12/17/Mailx-et-fichiers-joints-en-une-ligne

Programme pour envoyer un mail

Exim

Introduction à Exim

# Exim4 est le serveur mail installé par défaut sur Debian.
Ok.png Dépôt officiel de Exim sur Github : https://github.com/Exim/exim
Ok.png Bug tracker officiel de Exim : https://bugs.exim.org/enter_bug.cgi

Installer et configurer le serveur de mails Exim

# Installer Exim :
sudo apt install exim4
# Configurer automatiquement Exim :
sudo dpkg-reconfigure exim4-config
# Problème rencontré lors de mon premier essai :
# Le nom de courrier du système était "visionduweb.fr" ce qui ne me permettait pas d'envoyer des mails distants vers une adresse mail de destination dont le domaine était "visionduweb.fr".
# J'obtiendrais l'erreur suivante dans le mail qui sera renvoyé sur le système : Unrouteable address
# Je devrais reconfigurer Exim une seconde fois pour renseigner la valeur du hostname du VPS à la place de "visionduweb.fr".
# Identifier le hostname avec la commande hostname.
# Type de configuration :
Choisir « internet site » / « Distribution directe par SMTP (site Internet) » pour pouvoir envoyer et recevoir les mails via le protocole SMTP.
# D'après la documentation :
# Le nom de courrier (« mail name ») est le nom de domaine qui sert à compléter les adresses électroniques qui n'en comportent pas.
# Ce nom sera également utilisé par d'autres programmes ; il doit correspondre au domaine unique et complètement qualifié (FQDN).
# Par exemple, si une adresse électronique locale est toto@example.org, la valeur appropriée pour cette option sera « example.org ».
# Ce nom n'apparaîtra pas dans les en-têtes origines (« From ») des courriers sortants si vous activez la réécriture.
# Nom de courrier du système :
Renseigner la valeur du hostname.
# Veuillez indiquer une liste d'adresses IP, séparées par des points-virgules, où le serveur de courrier SMTP d'Exim sera à l'écoute.
Ne rien modifier. (127.0.0.1 ; ::1_)
Pour les autres destinations, utiliser le même nom que le nom de courrier du système. Renseigner la valeur du hostname.
Ne rien modifier sur la page suivante. (Domaines à relayer.)
Ne rien modifier sur la page suivante. (Machines à relayer.)
Cliquer sur NON à la demande de garder un nombre minimal de requêtes DNS.
Choisir ensuite l'option mbox. (Format « mbox » dans /var/mail)
Choisir de ne pas découper le fichier de configuration de Exim en plusieurs petits fichiers configurables individuellement.
# Les courriers destinés au superutilisateur, à « postmaster » et aux autres comptes système doivent être redirigés vers le compte utilisateur de l'administrateur réel du système.
# Si ce champ est laissé vide, ces courriers seront conservés dans /var/mail/mail, ce qui est déconseillé.
# Les courriers destinés « postmaster » devraient généralement être lus sur le système local, plutôt que redirigés vers un autre système. En conséquence, au moins un des utilisateurs que vous indiquez ne devraient pas rediriger ses courriers vers une autre machine. Le préfixe « real- » peut être utilisé pour imposer la distribution locale.
# Si vous indiquez plusieurs identifiants, veuillez les séparer par des espaces.
# Destinataire des courriers de « root » et « postmaster » :
Ajouter toutes les adresses mails sur lesquelles vous souhaitez recevoir les alertes. L'ajout de root n’est pas obligatoire. (contacter@visionduweb.fr)
# Le rendu de cette configuration assistée :
sudo nano /etc/exim4/update-exim4.conf.conf

Redémarrer Exim

# Redémarrer Exim :
sudo /etc/init.d/exim4 restart

Afficher le status de Exim

# Les informations de status de Exim :
sudo /etc/init.d/exim4 status

Vérifier si un service Exim est présent

lsof -Pni | grep exim4

Tuer tous les services Exim

killall exim4

Le dossier spool de Exim

cd /var/spool/exim4/

Consulter les logs de Exim

# Les mails envoyés depuis le terminal sont journalisés par défaut dans le fichier "/var/log/exim4/mainlog".
# Cela concerne les mails envoyés localement ou à distance, à l'aide du terminal.
# Noter que Exim ne va pas renseigner mail.log !
mainlog correspond à LOG_INFO
rejectlog correspond à LOG_NOTICE
paniclog correspond à LOG_ALERT
# Consulter les logs de Exim :
cat /var/log/exim4/mainlog
Source : https://www.exim.org/exim-html-current/doc/html/spec_html/ch-log_files.html

Désactiver exim4 au démarrage

# Pour des raisons de performances, il peut éventuellement êre intéressant de pouvoir désactiver exim4 au démarrage.
# Vérifier par la suite si exim4 démarre manuellement.
# Désactiver exim4 au démarrage :
sudo /usr/sbin/update-rc.d -f exim4 remove

Désinstaller Exim4

 apt-get remove --purge exim4 exim4-base exim4-config exim4-daemon-light
# Malgré la commande purge, une nouvelle installation ne me demandera plus, lors de la dernière étape, de renseigner le mail (ou les mails) sur lequel je souhaite recevoir les alertes.

Tester l'envoi de mail avec Exim

Utiliser la commande de test d'envoi de mail de Exim

exim -bt <adresse valide>

Envoyer un mail de test en ligne de commande

# Vérifier la bonne réception du mail depuis votre logiciel client mail ou webmail :
mail -s "Hello World !" contacter@visionduweb.fr < /dev/null
# Ce test devrait afficher que le corps du mail est laissé vide :
# Message en anglais :
Null message body; hope that's ok
# Message en français :
mail: Corps du message vide; en espérant que cela soit correct
# Si la commande mail n'est pas reconnue :
-bash: mail : commande introuvable
# Installer mailutils :
sudo apt-get install mailutils
# Recommencer l'envoie du test précédent.
mail -s "Hello World !" contacter@visionduweb.fr < /dev/null
mail: Corps du message vide; en espérant que cela soit correct
# La commande fonctionne mais en vérifiant mon client de messagerie en local, je n'ai pas de nouveau mail.
# Depuis le serveur, je vois une nouvelle information affichée suite à une reconnexion : Vous avez du courrier dans /var/mail/debian
# Je comprend que l'envoie de mail en externe a échouée, mais, l'information a bien été transmise à la messagerie système avec l'erreur "Unrouteable address".
# Le problème provient du nom local visionduweb.fr renseigné dans la configuration de Exim4.
# Il faut relancer la configuration pour donner un autre nom local que visionduweb.fr, en utilisant le hostname du VPS.
# Si la configuration correspond à un serveur internet et que le hostname est renseigné correctement, le test devrait fonctionner et le mail devrait être expédié vers le destinataire.
# Lire mon mail système avec mailx
"/var/mail/debian": 1 message 1 nouveau
>N   1 Mail Delivery Syst mar. mars 19 01:  53/1793  Mail delivery failed: ret
? 
Return-path: <>
Envelope-to: debian@vps178370.vps.ovh.ca
Delivery-date: Tue, 19 Mar 2019 01:06:26 +0100
Received: from Debian-exim by vps178370.vps.ovh.ca with local (Exim 4.92)
	id 1h62Gw-00026v-EO
	for debian@vps178370.vps.ovh.ca; Tue, 19 Mar 2019 01:06:26 +0100
X-Failed-Recipients: contacter@visionduweb.fr
Auto-Submitted: auto-replied
From: Mail Delivery System <Mailer-Daemon@visionduweb.fr>
To: debian@vps178370.vps.ovh.ca
Content-Type: multipart/report; report-type=delivery-status; boundary=1552953986
-eximdsn-2111507310
MIME-Version: 1.0
Subject: Mail delivery failed: returning message to sender
Message-Id: <E1h62Gw-00026v-EO@vps178370.vps.ovh.ca>
Date: Tue, 19 Mar 2019 01:06:26 +0100

--1552953986-eximdsn-2111507310
Content-type: text/plain; charset=us-ascii

This message was created automatically by mail delivery software.

A message that you sent could not be delivered to one or more of its
recipients. This is a permanent error. The following address(es) failed:

  contacter@visionduweb.fr
    Unrouteable address

--1552953986-eximdsn-2111507310
Content-type: message/delivery-status

Reporting-MTA: dns; vps178370.vps.ovh.ca

Action: failed
Final-Recipient: rfc822;contacter@visionduweb.fr
Status: 5.0.0

--1552953986-eximdsn-2111507310
Content-type: message/rfc822

Return-path: <debian@vps178370.vps.ovh.ca>
Received: from debian by vps178370.vps.ovh.ca with local (Exim 4.92)
	(envelope-from <debian@vps178370.vps.ovh.ca>)
	id 1h62Gw-00026t-Da
	for contacter@visionduweb.fr; Tue, 19 Mar 2019 01:06:26 +0100
Subject: Hello World !
To: <contacter@visionduweb.fr>
X-Mailer: mail (GNU Mailutils 3.5)
Message-Id: <E1h62Gw-00026t-Da@vps178370.vps.ovh.ca>
From: Debian <debian@vps178370.vps.ovh.ca>
Date: Tue, 19 Mar 2019 01:06:26 +0100

--1552953986-eximdsn-2111507310--
Quitter le message avec " q puis entrée ".

Vérifier le routage d'une adresse Exim4

# Évidemment, on avait déjà compris que la valeur indiquée dans notre configuration nous provoque une erreur.
sudo exim -bt contacter@visionduweb.fr
R: system_aliases for contacter@visionduweb.fr
contacter@visionduweb.fr is undeliverable: Unrouteable address
# L'utilisateur local quant à lui est bien renseigné.
sudo exim -bt UTILISATEUR-LOCAL
# ou
sudo exim -bt UTILISATEUR-LOCAL@visionduweb.fr
# Retourne les mêmes informations.
R: system_aliases for UTILISATEUR-LOCAL@visionduweb.fr
R: userforward for UTILISATEUR-LOCAL@visionduweb.fr
R: procmail for UTILISATEUR-LOCAL@visionduweb.fr
R: maildrop for UTILISATEUR-LOCAL@visionduweb.fr
R: lowuid_aliases for UTILISATEUR-LOCAL@visionduweb.fr (UID 1000)
R: local_user for UTILISATEUR-LOCAL@visionduweb.fr
UTILISATEUR-LOCAL@visionduweb.fr
 router = local_user, transport = mail_spool

Recommencer la configuration de Exim4

Au lieu de visionduweb.fr en première valeur, tenter la valeur de hostname (vps178370).
Choisir « internet site » pour pouvoir envoyer et recevoir les emails via le protocol SMTP.
Donner un nom au système mail. (vps178370)
Ne rien modifier sur la page suivante. (127.0.0.1 ; ::1_)
Pour les autres destinations, utiliser le même nom que le nom du système email. (vps178370)
Ne rien modifier sur la page suivante. (Domaines à relayer.)
Ne rien modifier sur la page suivante. (Machines à relayer.)
Cliquer sur NON à la demande de garder un nombre minimal de requêtes DNS.
Choisir ensuite l’option mbox. (Format « mbox » dans /var/mail)
Choisir de ne pas découper le fichier de configuration de Exim en plusieurs petits fichiers configurables individuellement.
Ajouter toutes les adresses mails sur lesquelles vous souhaitez recevoir les alertes. L’ajout de root n’est pas obligatoire. (contacter@visionduweb.fr)
# L'adresse est maintenant routable.
sudo exim -bt contacter@visionduweb.fr
R: dnslookup for contacter@visionduweb.fr
contacter@visionduweb.fr
 router = dnslookup, transport = remote_smtp
 host mx1.ovh.net [188.165.47.122] MX=1
 host mx2.ovh.net [87.98.132.45]   MX=5
 host mxb.ovh.net [46.105.45.21]   MX=100
Le test d'envoi depuis le serveur fonctionne cette fois correctement pour mes deux adresses mail !
mail -s "Hello World !" contacter@visionduweb.fr < /dev/null
mail -s "Hello World !" mail@visionduweb.com < /dev/null
Le fichier /etc/mailname contient votre_nom_de_domaine.fr entré lors de la configuration précédente.
C'est la valeur vps178370 qui est renseignée dans mon cas avec un VPS OVH et la seule utilisation de Exim4.

Exim4 est fonctionnel depuis le terminal, configurer Exim4 pour PHP

# Mon script d'alerte administrateur pour relever les erreurs du site avec PHP mail() n'envoie pas le mail distant.
# Remplacer la ligne suivante dans le fichier de configuration php.ini de PHP FPM, pour permettre aux mails PHP de sortir.
sendmail_path = /usr/sbin/sendmail -t -i
# Par la ligne suivante :
sendmail_path = /usr/sbin/sendmail -t -i -F contacter@visionduweb.fr -f contacter@visionduweb.fr
# Il est possible (préférable ?) de modifier le chemin /usr/sbin/sendmail pour celui de Exim4 avec le chemin suivant /usr/sbin/exim4.
# Sans les options complémentaires, Mediawiki arrive bien à envoyer des mails.
sendmail_path = /usr/sbin/exim4 -t -i
# Je dois ajouter les options complémentaires pour permettre aux simples scripts mails en PHP d'être délivrés.
sendmail_path = /usr/sbin/exim4 -t -i -F contacter@visionduweb.fr -f contacter@visionduweb.fr
# Le format du mail de l'émetteur est très technique quand envoyé depuis le terminal " debian@vps178370.vps.ovh.ca ".
# Utiliser le paramètre -r mail pour définir l'expéditeur du mail en ligne de commande.
mail -s "Hello World !" -r contacter@visionduweb.fr mail@visionduweb.com < /dev/null
# Utiliser un script PHP pour alerter l'administrateur en cas de panne.
# Les headers de PHP permettent de modifier l'émetteur du mon mail.
# Les headers permettent également d'améliorer le score de légitimité du mail pour éviter que le mail ne finisse dans les dossiers de spam.
# L'option -a permet de renseigner le header. Je n'ai pas utilisé d'avantage cette possibilité :
mail -a from:contacter@visionduweb.fr mail@visionduweb.com
# Le test de récupération de mot de passe effectué depuis le wiki se retrouve dans les spams de la messagerie hotmail.
--> Voir à améliorer le score de légitimité du mail avec la configuration au niveau d'Exim et / ou de Apache2 avec DKIM et DMark.

En savoir plus sur les flags

# Les drapeaux ont les significations suivantes:
S - Faire les réécritures au temps SMTP. Tous les indicateurs suivants sont définis immédiatement à mesure que les données auxquelles ils s'appliquent arrivent, et qu'ils ne sont pas retardés.
F - Réécrivez l'enveloppe à partir du champ.
f - Réécrivez le champ d'en-tête De:.
r - Réécrivez le champ d’en-tête Répondre à:.
s - Réécrivez le champ d'en-tête Sender-To:.
Lien complémentaire : http://www.exim.org/exim-html-current/doc/html/spec_html/ch-address_rewriting.html

Redémarrer Exim4

sudo service exim4 restart

Définir et rediriger les mails des utilisateurs

Définir l'adresse mail d'un utilisateur du système

# Le fichier /etc/email-addresses contient les adresses mails "publiques" à utiliser pour les comptes utilisateurs du système.
# Il est possible d'associer le compte root à une adresse particulière pour des envois de rapports.
# L'adresse mail d'un utilisateur est configurée dans le fichier email-addresses :
sudo nano /etc/email-addresses
debian:g2pc@visionduweb.com
root:mail@visionduweb.com
# Avant d'avoir défini le mail de l'utilisateur root :
sudo exim -brw root
 sender: root@vps178370
   from: root@vps178370
     to: root@vps178370
     cc: root@vps178370
    bcc: root@vps178370
reply-to: root@vps178370
env-from: root@vps178370
 env-to: root@vps178370
# Après avoir défini le mail de l'utilisateur root :
sudo exim -brw root
 sender: mail@visionduweb.com
   from: mail@visionduweb.com
     to: root@vps178370
     cc: root@vps178370
    bcc: root@vps178370
reply-to: mail@visionduweb.com
env-from: mail@visionduweb.com
 env-to: root@vps178370
# Utiliser maintenant la ré-écriture Exim (rewrite) pour modifier systématiquement tous les mails à destination de ces utilisateurs.
# Dans le cas d'une configuration Exim4 dans un seul fichier, il faut modifier le fichier /etc/exim4/exim4.conf.template vers la ligne 1834 :
# Dans le cas d'une configuration Exim4 séparée, il faut modifier le fichier /etc/exim4/conf.d/rewrite/00_exim4-config_header
# J'utilise ici la configuration dans un seul fichier, car, la configuration dans un fichier séparé n'apporte aucun changement.
######################################################################
#                      REWRITE CONFIGURATION                         #
######################################################################

begin rewrite
debian@* g2pc@visionduweb.com FfrsTtcb
root@* mail@visionduweb.com FfrsTtcb
# Les valeurs FfrsTtcb correspondent à :
E       rewrite all envelope fields
F       rewrite the envelope From field
T       rewrite the envelope To field
b       rewrite the Bcc: header
c       rewrite the Cc: header
f       rewrite the From: header
h       rewrite all headers
r       rewrite the Reply-To: header
s       rewrite the Sender: header
t       rewrite the To: header
# Régénérer le fichier principale :
sudo update-exim4.conf
# Relancer le service exim4 :
sudo service exim4 restart
# Tester avec root :
sudo exim -brw root
 sender: mail@visionduweb.com
   from: mail@visionduweb.com
     to: mail@visionduweb.com
     cc: mail@visionduweb.com
    bcc: mail@visionduweb.com
reply-to: mail@visionduweb.com
env-from: mail@visionduweb.com
 env-to: mail@visionduweb.com
# Tester avec root@localhost :
sudo exim -brw root@localhost
 sender: mail@visionduweb.com
   from: mail@visionduweb.com
     to: mail@visionduweb.com
     cc: mail@visionduweb.com
    bcc: mail@visionduweb.com
reply-to: mail@visionduweb.com
env-from: mail@visionduweb.com
 env-to: mail@visionduweb.com
Ok.png Source : https://www.jbnet.fr/systeme/linux/debian-rediriger-les-emails-root-et-autres-utilisateurs-avec-exim4.html
Ok-ko.png Source : http://www.exim.org/exim-html-current/doc/html/spec_html/ch-address_rewriting.html

Rediriger les mails de root vers une adresse mail valide à l'aide d'un alias

# Le fichier /etc/aliases contient les redirections de courriers des comptes utilisateurs du système.
# Par défaut tous les mails sont envoyés à l'utilisateur root.
# Ne pas utiliser le fichier ~/.forward !
# Pourquoi ?
# Indiquer un alias pour que tous les mails envoyés à root soient redirigés vers une véritable adresse mail.
sudo nano /etc/aliases
mailer-daemon: postmaster
postmaster: root
nobody: root
hostmaster: root
usenet: root
news: root
webmaster: root
www: root
ftp: root
abuse: root
noc: root
security: root
root: le_premier_utilisateur_créé
# On voit que tous les mails sont envoyés à root et que root est redirigé vers le premier utilisateur qui a été créé suite à l'installation de Debian.
# Remplacer le premier utilisateur par une adresse mail valide.
sudo nano /etc/aliases
# Noter que en cas de configuration séparée, les redirections peuvent également être ajoutées à cet endroit, plutôt que dans le fichier aliases par défaut :
sudo nano /etc/exim4/conf.d/rewrite/00_exim4-config_header
mailer-daemon: postmaster
postmaster: root
nobody: root
hostmaster: root
usenet: root
news: root
webmaster: root
www: root
ftp: root
abuse: root
noc: root
security: root
# Définir un alias pour root afin de renvoyer les messages vers un mail valide :
root: mail@visionduweb.com
# Faire un test en envoyant un mail à root :
echo -e "corps" | mail -s 'sujet' root
# Le mail doit arriver dans la boite personnelle qui a été configurée.
# Pas de chance, le mail est transmis en local.
# Après avoir défini l'adresse mail de l'utilisateur par défaut debian dans le fichier /etc/email-addresses, le mail pour root qui ne serait pas délivré sera retransmis dans la boîte mail de l'utilisateur debian.
# Après avoir défini l'adresse mail de l' utilisateur root, dans le fichier /etc/email-addresses, le mail pour root est bien transmis dans ma boîte mail.
# Il est nécessaire de vérifier que le mail utilisé pour root soit également bien valide dans le fichier /etc/aliases.
Source complémentaire : https://www.memoinfo.fr/tutoriels-linux/installer-exim-relai-smarthost/
Source complémentaire : https://www.debian-fr.org/t/configurer-exim4-pour-recevoir-les-alertes-dans-sa-bal/29512
Source complémentaire  https://medspx.fr/blog/Debian/exim4_beginner/

Générer un certificat

cd /etc/exim4
sudo update-exim4.conf
# Affiche :
Warning: No server certificate defined; will use a selfsigned one.
Suggested action: either install a certificate or change tls_advertise_hosts option
# Générer un certificat :
sudo bash /usr/share/doc/exim4-base/examples/exim-gencert
[*] Creating a self signed SSL certificate for Exim!
    This may be sufficient to establish encrypted connections but for
    secure identification you need to buy a real certificate!

    Please enter the hostname of your MTA at the Common Name (CN) prompt!

Can't load /root/.rnd into RNG
139960444302464:error:2406F079:random number generator:RAND_load_file:Cannot open file:../crypto/rand/randfile.c:98:Filename=/root/.rnd
Generating a RSA private key
................................+++++
.........+++++
writing new private key to '/etc/exim4/exim.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Code (2 letters) [US]:FR
State or Province Name (full name) []:Alsace
Locality Name (eg, city) []:Colmar
Organization Name (eg, company; recommended) []:Visionduweb
Organizational Unit Name (eg, section) []:
Server name (eg. ssl.domain.tld; required!!!) []:visionduweb.fr
Email Address []:mail@visionduweb.com
[*] Done generating self signed certificates for exim!
    Refer to the documentation and example configuration files
    over at /usr/share/doc/exim4-base/ for an idea on how to enable TLS
    support in your mail transfer agent.
# Le certificat semble avoir été généré, malgré l'erreur suivante :
Can't load /root/.rnd into RNG
139960444302464:error:2406F079:random number generator:RAND_load_file:Cannot open file:../crypto/rand/randfile.c:98:Filename=/root/.rnd
cd /etc/exim4
sudo update-exim4.conf
# Affiche toujours :
Warning: No server certificate defined; will use a selfsigned one.
Suggested action: either install a certificate or change tls_advertise_hosts option
# Instead of generating a certificate, you may simply copy certificates that you have purchased or generated previously.
# Edit /etc/exim4/exim4.conf.localmacros and add the following line:
# MAIN_TLS_ENABLE = yes
# This, of course, may be already enabled in the main configuration template "exim4.conf.template"
# As with any change to the configuration, run update-exim4.conf then restart exim (service exim4 restart) or, if you're using systemd; systemclt restart exim4.service. 
cd /etc/exim4
sudo update-exim4.conf
cd /etc/exim4
sudo update-exim4.conf
# N'affiche plus d'erreur !
# Redémarrer Exim4 pour prendre en compte les modifications :
sudo systemctl restart exim4.service
# Par contre, depuis l'utilisation de cette configuration, j'ai l'impression que mes mails fail2ban ne sortent plus.
sudo service fail2ban restart

Commandes courantes

# Obtenir des statistiques sur l'activité d'Exim :
eximstats /var/log/exim4/mainlog
# Montre ce que Exim est entrain de faire :
exiwhat
# Visualiser les courriers en file d'attente :
mailq
# Relancer le process de la file d'attente :
runq
# Relancer uniquement les mails gelés :
mailq | grep frozen | sed -e 's/.* \(.\{6\}-.\{6\}-.\{2\}\) .*/\1/' | xargs exim4 -M
# xargs: exim4: Aucun fichier ou dossier de ce type
# Forcer la livraison des mails, y compris les mails gelés et vider la file d'attente :
exim -qff
# Dégeler les messages gelés / frozen :
mailq | gawk '/frozen/{print $3}'|xargs exim4 -Mt;runq
mailq | grep "frozen"
# Retenter la livraison d'un message :
exim4 -M 1I8u1e-0001MM-O9
# Supprimer un message de la file d’attente :
exim -Mrm <message-id>
# Supprimer tous les messages de la file d'attente :
exim4 -Mrm `ls /var/spool/exim4/input/ | grep -- -H$ | cut -c 1-16`
# Supprimer les mails gelés de la file d'attente :
mailq | grep frozen | sed -e 's/.* \(.\{6\}-.\{6\}-.\{2\}\) .*/\1/' | xargs exim4 -Mrm
# Afficher le contenu d'un message de la file d'attente :
exim4 -Mvb 1KwvVZ-0001fc-NA
# Le <message-id> est de type 1VEcvi-0001xI-Pz est affiché lors des mailq :
sudo mailq
2h  2.9K 1VEcvi-0001xI-Pz <> *** frozen ***
adresse@email.com
# Affiche par domaine le nombre de messages dans la queue, le volume par domaine de destination concerné, et, pour chacun d'eux, le mail le plus vieux ainsi que le plus récent.
exim -bp | exiqsumm
# Autres commandes : https://howto.landure.fr/gnu-linux/trucs-et-astuces-pour-exim-4
# Autres commandes : http://debian-facile.org/doc:reseau:exim4-pour-les-nulls
# Autres commandes : https://buzut.net/connaitre-commandes-dompter-exim4/

Configurations complémentaires

Localiser les fichiers de configuration complémentaires

# Consulter la configuration de Exim.
sudo nano /etc/exim4/exim4.conf.template
# Éviter de modifier directement le fichier généré par update-exim4.conf.
sudo nano /var/lib/exim4/config.autogenerated

Vérifier le reverse DNS

# Vérifier que vous avez un reverse DNS rattaché à votre hostname et que ce rDNS correspond à l'adresse IP du serveur d'envoi.
Vérifier le reverse DNS sur son serveur Linux.
# Si je comprend bien, il ne faudrait pas chercher à envoyer un mail depuis un serveur, si le mail ne correspond pas à un nom de domaine hébergé sur le serveur.
# Ainsi, mon mail mail@visionduweb.fr hébergé chez sivit ne devrait pas me servir à envoyer des mail depuis mon VPS qui héberge mon .eu .fr .info

DNS Blacklists

https://wiki.debian.org/Exim#DNS_Blacklists

Outil de diagnostique

https://wiki.debian.org/Exim#Install_diagnostic_tools

Scanner le spam

https://wiki.debian.org/Exim#Spam_scanning

Configurer le SMTP pour exim4

Tester le hostname.
# Afficher le hostname :
hostname
vps178370
# Afficher le FQDN :
hostname --fqdn
vps178370.vps.ovh.ca
# Le serveur de messagerie ne semble pas écouter sur une adresse publique.
# Il accepte uniquement le courrier entrant à partir de 127.0.0.1 qui est localhost.
# Cela explique pourquoi l’envoi de courrier directement à partir du serveur à l’aide de commandes shell fonctionne.
# Si Exim est bien configuré, il peut envoyer des mails sans service SMTP extérieur, comme un vrai serveur de messagerie.
hostname -i
127.0.1.1
# Attention !
# Ne pas communiquer en claire les informations de connexion avec l'hôte SMTP.
# Installer avant ça le certificat TLS pour Exim.
# Suite à mes tests, sans certificat TLS, les mails peuvent sortir, que les données de connexion SMTP soit renseignée, ou non !
# La configuration SMTP suivante ne semble pas fonctionner pour moi, je ne vois pas l'émetteur du mail réceptionné correspondre aux valeurs du SMTP.
# Déclarer le serveur SMTP.
sudo nano /etc/exim4/passwd.client
# Le renseigner avec la configuration d'un mail OVH, disponible via l'offre d'hébergement gratuite.
ssl0.ovh.net:Utilisateur:Mot_de_passe
# Mettre les bons droits sur le fichier.
sudo chown Debian-exim:root /etc/exim4/passwd.client
sudo chmod 640 /etc/exim4/passwd.client
# Finaliser l'installation.
sudo update-exim4.conf
sudo service exim4 restart ( Ou sudo /etc/init.d/exim4 restart )
# Dans mon cas, il faudrait consulter des tutoriels pour Exim et le SMTP de OVH.
# Les tutoriels suivants pour paramétrer Exim pour le SMTP de Gmail, Mailjet et Yandex ne m'ont pas permis d'avancer sur ma configuration SMTP pour un mail OVH.
Ko.png Configurer Exim4 pour utiliser une adresse mail GMail : http://bernaerts.dyndns.org/linux/75-debian/278-debian-sendmail-gmail-account
Ko.png Setup Exim to Send Email Using Gmail in Debian : https://www.vultr.com/docs/setup-exim-to-send-email-using-gmail-in-debian
Ko.png Fast Mail Fast Smarthost - Fast dirty mail hack : Gmail Mailjet Yandex : https://forum.vestacp.com/viewtopic.php?f=12&t=7422
ISP : https://askubuntu.com/questions/167043/how-do-i-configure-exim4-to-send-mail-through-a-password-protected-ssl-smtp-mail

Autoriser les paquets SMTP à sortir du réseau

Créer une règle pour ouvrir le port 25 avec iptables
# Il est inutile d'appliquer cette règle pour ma propre configuration de Exim puisque pour le moment, l'utilisation d'un SMTP externe ne fonctionnant pas.
# De plus, les mails sortent déjà, sans avoir à appliquer une autorisation sur le port 25.
# Ajouter cette règle iptables semble écraser les autres règles.
# Créer le fichier qui va contenir les règles iptables.
sudo nano /etc/iptables.firewall.rules
# Ajouter les lignes suivantes :
*filter
# Autoriser l'accès SMTP.
# Vérifier que la nouvelle règle est prise en compte avec sudo iptables -L
# La ligne suivante doit être affichée : ACCEPT tcp -- anywhere anywhere tcp dpt:smtp
-A INPUT -p tcp --dport 25 -j ACCEPT
COMMIT
# Activer la règle.
sudo iptables-restore < /etc/iptables.firewall.rules
Appliquer le changement sans passer par une règle
# Pour ne pas écraser les autres règles, ajouter ou retirer cette règle en une seule ligne depuis le terminal.
# Ouvrir le port 25
iptables -A INPUT -p tcp -m tcp --dport 7777 -j ACCEPT
# Fermer le port 25
iptables -D INPUT -p tcp -m tcp --dport 7777 -j ACCEPT

Configurer SPF

# SPF par défaut de OVH.
# SPF du domaine visionduweb.fr
visionduweb.fr.	600 	SPF 	"v=spf1 include:mx.ovh.com ~all"
# Vérifier le score du mail utilisé pour envoyer des messages.
# Des propositions sont retournées pour améliorer la configuration.
http://www.mail-tester.com
# Lancer le test en envoyant un mail à mail tester.
mail -s "Hello World !" -r contacter@visionduweb.fr test-11c5p@mail-tester.com < /dev/null

SPF filtering

# SPF filtering :
https://wiki.debian.org/Exim#SPF_filtering

SpamAssassin pense que vous pouvez vous améliorer -4.2

-1.985		PYZOR_CHECK		Similar message reported on Pyzor (http://pyzor.org)
https://pyzor.readthedocs.io/en/latest/
Assurez-vous de tester avec un contenu réel, les Newsletters tests seront toujours détectées par Pyzor
Ajustez votre message ou demandez à être whitelisté (http://public.pyzor.org/whitelist/)
-1.274		RDNS_NONE		Delivered to internal network by a host with no rDNS
Vérifiez que vous avez un rDNS rattaché à votre hostname et que ce rDNS correspond à l'IP du serveur d'envoi
-0.972		SPF_SOFTFAIL		SPF: sender does not match SPF record (softfail)

Vous n'êtes pas autorisé à utiliser l'une de vos adresses e-mail d'envois -4

[SPF] visionduweb.fr n'autorise pas votre serveur 139.99.173.195 à utiliser contacter@visionduweb.fr -3
# Sender Policy Framework (SPF) est un système de validation d'e-mail conçu pour empêcher le spammage en détectant l'usurpation d'adresse e-mail, une vulnérabilité classique, en vérifiant les adresses IP de l'expéditeur.
# Ce que nous avons retenu comme votre enregistrement SPF actuel est :
v=spf1 include:mx.ovh.com ~all
# Cela devrait être changé en :
v=spf1 include:mx.ovh.com ip4:139.99.173.195 ~all
The Name Server handling the domain name visionduweb.fr is ns109.ovh.net.
# Plus d'information à propos de cette erreur :
visionduweb.fr: Sender is not authorized by default to use 'contacter@visionduweb.fr' in 'mfrom' identity, however domain is not currently prepared for false failures (mechanism '~all' matched)
# Détails de la vérification :
dig +short TXT visionduweb.fr :
   "v=spf1 include:mx.ovh.com ~all"
dig +short TXT @ns109.ovh.net. visionduweb.fr :
   "v=spf1 include:mx.ovh.com ~all"
spfquery --scope mfrom --id contacter@visionduweb.fr --ip 139.99.173.195 --helo-id vps178370.vps.ovh.ca :
   softfail
   visionduweb.fr: Sender is not authorized by default to use 'contacter@visionduweb.fr' in 'mfrom' identity, however domain is not currently prepared for false failures (mechanism '~all' matched)
   visionduweb.fr: Sender is not authorized by default to use 'contacter@visionduweb.fr' in 'mfrom' identity, however domain is not currently prepared for false failures (mechanism '~all' matched)
   Received-SPF: softfail (visionduweb.fr: Sender is not authorized by default to use 'contacter@visionduweb.fr' in 'mfrom' identity, however domain is not currently prepared for false failures (mechanism '~all' matched)) receiver=ns303428.ip-94-23-206.eu; identity=mailfrom; envelope-from="contacter@visionduweb.fr"; helo=vps178370.vps.ovh.ca; client-ip=139.99.173.195
[SPF] visionduweb.com n'autorise pas votre serveur 139.99.173.195 à utiliser g2pc@visionduweb.com
Sender Policy Framework (SPF) est un système de validation d'e-mail conçu pour empêcher le spammage en détectant l'usurpation d'adresse e-mail, une vulnérabilité classique, en vérifiant les adresses IP de l'expéditeur.
Vous n'avez pas d'enregistrement SPF, s'il vous plaît ajouter le suivant à votre domaine visionduweb.com :
v=spf1 a mx ip4:139.99.173.195 ~all
The Name Server handling the domain name visionduweb.com is ns2.sivit.org.

Votre message n'est pas signé avec DKIM -1

DomainKeys Identified Mail (DKIM) est une méthode permettant d'associer un nom de domaine à un message e-mail, ce qui permet à une personne, une organisation de revendiquer certaines responsabilités pour le message.

DKIM DMARC

Introduction à SPF DKIM DMARC

Le nombre de messages non sollicités envoyés chaque jour reste relativement élevé, malgré les nombreuses tentatives de création d'outils anti-spam.
SPF (Sender Policy Framework) est une entrée de texte DNS qui affiche une liste de serveurs qui devraient être considérés comme autorisés à envoyer du courrier pour un domaine spécifique.
Les propriétaires / administrateurs sont les seules personnes autorisées à ajouter / modifier cette zone de domaine principal.
DKIM (DomainKeys Identified Mail) doit plutôt être considéré comme une méthode permettant de vérifier que le contenu des messages est digne de confiance, ce qui signifie qu'ils n'ont pas été modifiés depuis le moment où le message a quitté le serveur de messagerie initial. Cette couche supplémentaire de fiabilité est obtenue par la mise en œuvre du processus de signature standard de clé publique / privée. Une fois encore, les propriétaires du domaine ajoutent une entrée DNS avec la clé publique DKIM qui sera utilisée par les destinataires pour vérifier que la signature du message DKIM est correcte, tandis que le côté expéditeur du serveur signera les messages avec la clé privée correspondante.
DMARC (authentification, rapports et conformité des messages basés sur le domaine) habilite SPF et DKIM en énonçant une stratégie claire qui doit être utilisée pour les deux outils.

Implémenter DKIM avec EXIM

Liens complémentaires
404.png Fixme.png https://www.adampalmer.me/iodigitalsec/2014/07/11/exim-dkim-and-debian-configuration/
https://debian-administration.org/article/718/DKIM-signing_outgoing_mail_with_exim4
https://www.obstance.com/ubuntu/dkim-on-multiple-domains-with-exim4/
https://debian-administration.org/article/721/Validating_SPF_and_DKIM_at_SMTP-time_with_exim

Implémenter DMARC avec EXIM

Liens complémentaires
https://debian-administration.org/article/720/Tying_together_SPF_and_DKIM_with_DMARC

X-Exim-DSN-Information: Due to administrative limits only headers are returned

# Un mail en erreur est retourné avec le message :
X-Exim-DSN-Information: Due to administrative limits only headers are returned
# Le message est peut être trop grand ou mal formé.
# Configurer SPF et DKIM pourrait corriger ce problème.
# Les logs de EXIM informent :
1jGTMg-0003QT-AM ** mail@visionduweb.com R=dnslookup T=remote_smtp: message is too big (transport limit = 1)
Warning: No server certificate defined; will use a selfsigned one.
Suggested action: either install a certificate or change tls_advertise_hosts option
1jGTMg-0003QX-Ka <= <> R=1jGTMg-0003QT-AM U=Debian-exim P=local S=1787
1jGTMg-0003QT-AM Completed
Warning: No server certificate defined; will use a selfsigned one.
Suggested action: either install a certificate or change tls_advertise_hosts option
# Cela signifie qu'une limite de LIGNE maximale de 998 caractères a été atteinte
# Ajouter la ligne suivante dans la configuration :
IGNORE_SMTP_LINE_LENGTH_LIMIT = 1
# Ajouter la ligne à la fin du fichier existant :
sudo bash
/etc/exim4/update-exim4.conf.conf 
# Préférer l'ajout de la ligne dans un nouveau fichier de configuration complémentaire :
sudo bash
nano /etc/exim4/exim4.conf.localmacros
# Redémarrer Exim.
# Le mail arrivera correctement.

Installer et utiliser sendmail

Le programme « sendmail » peut être trouvé dans les paquets suivants :
* exim4-daemon-heavy
* exim4-daemon-light
* postfix
* citadel-mta
* courier-mta
* dma
* esmtp-run
* masqmail
* msmtp-mta
* nullmailer
* opensmtpd
* qmail-run
* sendmail-bin
* ssmtp
# Installer sendmail.
sudo apt install sendmail
/etc/init.d/sendmail stop
/etc/init.d/sendmail start
/etc/init.d/sendmail restart
/etc/init.d/sendmail status
# Vérifier la configuration de sendmail.
sudo sendmail -v
smtp externe : http://bernaerts.dyndns.org/linux/75-debian/278-debian-sendmail-gmail-account
Install Sendmail mail server on Debian GNU / Linux : http://www.pc-freak.net/blog/install-sendmail-debian-gnu-linux/
Source complémentaire : https://www.cyberciti.biz/faq/howto-configure-sendmail-ssl-certificate-email/

Installer et utiliser sSMTP

# Installer sSMTP.
sudo apt install ssmtp
# Vérifier si sendmail est présent sur le système.
whereis sendmail
# Vérifier si sendmail est lié à sSMTP.
ls -la /usr/sbin/sendmail
lrwxrwxrwx 1 root root 5 juil. 15  2014 /usr/sbin/sendmail -> ssmtp
# Configurer votre SMTP dans le fichier de configuration de sSMTP.
sudo nano /etc/ssmtp/ssmtp.conf
mailhub=mon_serveur_smtp_reel
rewriteDomain=Domaine_du_mail.ext
hostname=le_nom_de_la_machine
# Permet au programme qui envoie un courriel de modifier l'expéditeur dans l'entête du message.
# La valeur à YES affiche UtilisateurDebian@le_nom_de_la_machine
# La valeur à NO affiche UtilisateurDebian@Domaine_du_mail.ext
FromLineOverride=YES
# Installer mailx contenu dans le paquet mailutils pour utiliser la commande mail.
sudo apt-get install mailutils
Noter l'ajout de cette ligne dans le fichier php.ini de Apache2, pour PHP.
# sudo nano /etc/php/7.2/apache2/php.ini
# sendmail_path = /usr/sbin/sendmail -t -i -F mail@visionduweb.com -f mail@visionduweb.com
Noter l'ajout de cette ligne dans le fichier php.ini de Apache2, pour PHP FPM.
# sudo nano /etc/php/7.2/fpm/php.ini
# sendmail_path = /usr/sbin/sendmail -t -i -F mail@visionduweb.com -f mail@visionduweb.com
# Tester l'envoie de mail.
echo "test" | mail -s "test mail" mail@visionduweb.com
sudo nano /var/log/mail.log
Cannot open smtp.visionduweb.com:25
# Modifier la configuration de ssmtp : sudo nano /etc/ssmtp/ssmtp.conf
Je met mailhub=mon_serveur_smtp_reel:587
sudo nano /var/log/mail.log
Aug 19 15:00:08 le_nom_de_la_machine sSMTP[2270]: RCPT TO:<mail@visionduweb.com> (554 5.7.1 Service unavailable; Client host [IP_du_serveur_SMTP_distant] blocked using zen.spamhaus.org; https://www.spamhaus.org
# Modifier la configuration de ssmtp : sudo nano /etc/ssmtp/ssmtp.conf
# Activer TLS et l'identification sur le SMTP.
UseTLS=yes
AuthUser=votre.utilisateur.mail
AuthPass=mot_de_passe_utilisateur
sudo nano /var/log/mail.log
Creating SSL connection to host
Aug 19 15:12:20 le_nom_de_la_machine sSMTP[2335]: SSL connection using (null)
Aug 19 15:12:20 le_nom_de_la_machine sSMTP[2335]: Cannot open mon_serveur_smtp_reel:587
# Modifier la configuration de ssmtp : sudo nano /etc/ssmtp/ssmtp.conf
# Changer la méthode d'authentification.
# UseTLS=YES (pour SSL/TLS) ou UseSTARTTLS=YES (pour STARTTLS
# UseTLS=yes
UseSTARTTLS=YES
# Tester l'envoie de mail.
echo "test" | mail -s "test mail" mail@visionduweb.com
# Le mail est correctement envoyé par SMTP.
sudo nano /var/log/mail.log
Aug 19 15:19:49 deep-web-z sSMTP[2348]: Creating SSL connection to host
Aug 19 15:19:49 deep-web-z sSMTP[2348]: SSL connection using RSA_AES_256_CBC_SHA1
Aug 19 15:19:51 deep-web-z sSMTP[2348]: Sent mail for utilisateur_debian@visionduweb.com (221 2.0.0 Bye) uid=1000 username=dwz outbytes=417
L'utilisateur qui envoie le mail affiche utilisateur_debian@le_nom_de_la_machine du fait de la ligne FromLineOverride=YES dans le fichier de configuration.
Cette configuration est fonctionnelle.
# Le fichier revaliases permet de spécifier le SMTP à utiliser pour chaque compte utilisateur, si ce n'est pas celui par défaut.
sudo nano /etc/ssmtp/revaliases
# root:utilisateur_debian@le_nom_de_la_machine:smtp.de.votre.fai
# root:utilisateur_debian@le_nom_de_la_machine:smtp.de.votre.fai:587
# root:pierre.kiroul@gmail.com:smtp.gmail.com:587
# pierre:pierre.kiroul@gmail.com:smtp.gmail.com:587
# Autre système utilisateur, pour Apache2.
# www-data:votre_identifiant@fournisseur.com:smtp.fournisseur.com:587
root:dwz@deep-web-z:smtp.visionduweb.com:587
www-data:mail@visionduweb.com:smtp.visionduweb.com:587
# Exemple d'une erreur de configuration du fichier revaliases suite à un envoie de mail qui ne fonctionnait pas depuis un CMS :
# Dans le fichier de configuration, la réécriture de l'adresse d'envoie est sur YES.
Aug 19 16:14:34 deep-web-z sSMTP[2787]: Cannot open mail.visionduweb.com:587
# L'erreur se trouve dans l'adresse SMTP du fichier revaliases : Remplacer mail.visionduweb.com:587 par smtp.visionduweb.com:587
sudo nano /etc/ssmtp/revaliases
www-data:mail@visionduweb.com:smtp.visionduweb.com:587
Noter que l'envoie de mail depuis le serveur local rompt l'anonymat du serveur car lire la source du mail renseigne sur le nom de la machine, le serveur de mail et la localisation du FAI.
Received: from deep-web-z (AMontpellier-xxx-x-xxx-xxx.wxx-xxx.abo.wanadoo.fr [xx.xxx.xxx.xxx])
(Authenticated sender: mail@visionduweb.com)
by mutu-mail-n4.sivit.org (Postfix) with ESMTPSA id 6701D7F9BE
for <test@visionduweb.com>; Sun, 19 Aug 2018 17:00:09 +0200 (CEST)
# Exemple pour envoyer un mail en ligne de commande avec sSMTP.
ssmtp myemailaddress@gmail.com < msg.txt
Le fichier msg.txt est une simple fichier texte qui utilise le bon format pour envoyer un mail avec sSMTP.
To: myemailaddress@gmail.com
From: myemailaddress@gmail.com
Subject: alert

The server is down!
Ok.png Envoyer des mails simplement avec sSMTP : http://www.ced-info.com/administration-reseaux/envoyer-des-mails-simplement-avec-ssmtp
Ok-ko.png Source : https://doc.ubuntu-fr.org/ssmtp

Installer et utiliser postfix

Documentation de postfix

Documentation de Postfix en français : https://postfix.traduc.org

Utiliser postfix en local pour envoyer des mails system

https://gist.github.com/raelgc/6031274
https://linux.developpez.com/formation_debian/serveur-mail.html
https://p.henix.be/Un-serveur-de-mail-local-pour-le-developpement-web
https://www.linux-nantes.org/Configuration-d-un-serveur-de-mail.html
https://serverfault.com/questions/639615/postfix-and-local-mail#639694
https://fr.wikibooks.org/wiki/Le_syst%C3%A8me_d%27exploitation_GNU-Linux/Le_serveur_de_mails_Postfix

Sources complémentaires pour configurer et utiliser postfix

Syntaxe sql pour créer un user mail et son mot de passe.
INSERT INTO `postfix`.`comptes` ( `email` , `password` , `quota` , `etat` , `imap` , `pop3` ) VALUES ('toto@test.com', ENCRYPT( 'le_mot_de_passe' ) , '0', '1', '1', '1');
Ok-ko.png Source : https://wiki.debian-fr.xyz/Configuration_d%27un_serveur_mail_avec_Postfix#Configuration_d.27un_serveur_mail_avec_postfix
Ok-ko.png Source : Vidéo pour installer Postfix et Courier : https://www.tutoriels-video.fr/installation-et-configuration-dun-serveur-de-mail-avec-postfix-et-courier/
Ok-ko.png Source : https://blog.tetsumaki.net/articles/2017/08/installation-dune-solution-mail-complete-sous-debian-9-stretch.html
Ok-ko.png Source : Fichiers de configuration pour Postfix : https://postfix.traduc.org/index.php/BASIC_CONFIGURATION_README.html
Ok-ko.png Source : https://wiki.debian-fr.xyz/Configuration_d%27un_serveur_mail_avec_Postfix#Cr.C3.A9ation_d.27un_nouveau_mail
404.png Fixme.png Source : Fichiers de configuration pour Postfix : http://www.linux-france.org/prj/edu/archinet/systeme/ch35s06.html
Ok-ko.png Source : https://www.tictech.info/post/mail_postfix
Ok-ko.png Source : http://www.open-web.fr/serveur-mail-postfix-avec-utilisateurs-virtuels-debian-etch/
Ok-ko.png Source : https://debian-facile.org/doc:reseau:postfix
Ok-ko.png Source : https://www.linode.com/docs/email/postfix/email-with-postfix-dovecot-and-mysql
Ok-ko.png Source : https://www.alsacreations.com/tuto/lire/614-Serveur-mail-Postfix.html
Ok-ko.png Source : Vérifier la SPF : http://www.robertain.com/post/2012/02/17/check-spf-pour-postfix/
Ok-ko.png Source : http://www.tutoriels-video.fr/installation-et-configuration-dun-serveur-dedie-debia/
Ok-ko.png Source : https://wiki.debian.org/Postfix
Ok-ko.png Source : ://www.postfix.org/postconf.5.html#check_client_access
Ok-ko.png Source : http://www.postfix.org/postconf.5.html#check_sender_access
Ok-ko.png Source : http://www.postfix.org/access.5.html
https://www.isyweb.com/configurer-linux/?Serveur+web+complet+Debian+9

SPF DKIM DMARC

Tutoriel : http://www.isyweb.com/configurer-linux/?SPF,+DKIM+et+DMARC

SPF

Le SPF OVH est : “v=spf1 include:mx.ovh.com ~all”, à utiliser lorsque le mail est géré via l'offre MX Plan gratuite.
Source complémentaire : https://docs.ovh.com/fr/domains/le-champ-spf/

DKIM a configurer sinon Blacklist FabelSource

blog.kdj-webdesign.com/administrer-un-vps-classic-la-dkim/
opendkim *
Voir si dkim est bien propagé
host -t TXT dkim._domainkey.happy-tux.org
dkim._domainkey.happy-tux.org descriptive text "v=DKIM1 k=rsa p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDbZYh2jmQ2PyW1K90xSZxy7HtLPqDnCc2O7Z0rtnSR1pjMZX2zEiU303yWvj6M2FTBFLmaT4Xd3oQquFqhSWiM603kzG2FCTG5Uu2RjZMsgBpahDNiqnABjAvEBRH4r9Y+WIuTHFbMzEP4u1Qx7+eEfr6m/EbQzLYq6O58BGYceQIDAQAB"

DMARC

.

Envoyer des mails "non spam" vers Gmail

Pour être identifié à coup sûr dans Gmail :

Utilisez une adresse IP cohérente pour envoyer vos messages en masse.
Conservez des enregistrements DNS inversés valides pour la ou les adresses IP à partir desquelles vous envoyez des messages et qui pointent vers votre domaine.
Utilisez la même adresse dans l'en-tête "De" de chaque message en masse que vous envoyez.

Nous vous conseillons également de prendre les précautions suivantes :

Signez vos messages à l'aide du protocole DKIM. Nous ne pouvons pas authentifier les messages signés à l'aide de clés inférieures à 1 024 bits.
Publiez un enregistrement SPF.
Publiez des règles DMARC.

Instructions supplémentaires pour IPv6

L'adresse IP d'expédition doit comporter un enregistrement PTR (c'est-à-dire un enregistrement DNS inversé de cette adresse) et doit correspondre à l'adresse IP obtenue par la résolution DNS de transfert du nom d'hôte indiqué dans l'enregistrement PTR. Si ces conditions ne sont pas remplies, les messages correspondants sont marqués comme spam, voire rejetés.
Le domaine d'expédition doit réussir le contrôle SPF ou DKIM, faute de quoi les messages qui en proviennent peuvent être marqués comme spam.
source : support.google.com/mail/troubleshooter/2921561
support.google.com/mail/answer/81126?p=ipv6_authentication_error&rd=1#authentication

Ancien php.ini en exemple sur Centos 2014 - 2015

Page liée dans le wiki pour un ancien exemple de fichier php.ini en français : Exemple Apache pour le fichier de configuration

Documentation

Source : https://www.informatiweb-pro.net/admin-systeme/linux/14--debian-installer-et-securiser-un-serveur-mails-complet-mails-smtp-auth-via-sasl-imap-pop3-webmail-tls-et-ssl.html
Source : https://www.cyberciti.biz/tips/postfix-smtp-ssl-certificate-csr-installation-guide.html

Savoir si des mails sont en attente d'envoie

Source : postqueue -p qui permet d'afficher le contenu de la file d'attente.

En complément

Dovecot

Dovecot est un serveur IMAP et POP3 pour les systèmes d'exploitation Unix et dérivés, conçu avec comme premier but la sécurité.
Source complémentaire : https://www.cyberciti.biz/faq/unix-dovecot-ssl-tls-server-configuration/

Fake SMTP Server

https://github.com/ReachFive/fake-smtp-server

Installer un serveur de mailing list avec mailman

Installer un serveur de mailing list avec mailman

Arrêter et relancer un service proprement

Telnet (port 23)Telnet est géré par xinetd

Pour arrêter le service, il faut éditer le fichier de configuration de Telnet puis redémarrer xinetd.
L'option dans xinetd fonctionne à l'envers à savoir vous devez mettre no pour activer le service.==
# pico /etc/xinetd.d/telnet
#/etc/init.d/xinetd restart
Pour démarrer le service:
# pico /etc/xinetd.d/telnet
# /etc/init.d/xinetd restart

SMTP (port 25)SMTP est géré par Qmail www.qmail.org

Pour arrêter le service (le script de démarrage agit aussi sur le serveur POP3) :
# cd / #/etc/init.d/qmail stop
Pour démarrer le service :
# cd / # /etc/init.d/qmail start

POP3 (port 110)POP est géré par Qmail www.qmail.org

Pour arrêter le service (le script de démarrage agit aussi sur le serveur SMTP).
# cd / # /etc/init.d/qmail stop
Pour démarrer le service :
# cd / # /etc/init.d/qmail start

IMAP (port 143)IMAP est géré par Courier-Imap

Pour arrêter le service :
# /etc/init.d/imapd stop
Pour démarrer le service :
# /etc/init.d/imapd start
Source complémentaire : https://www.inter7.com/courier-imap-server/
Source complémentaire : https://www.cyberciti.biz/tips/ssl-certificate-installation-courier-imap-server.html

Gestion des logs

Vérifier les logs si un mail n'est pas envoyé :
sudo nano /var/log/mail.log

La sécurité du service de courrier électronique avec amavisd-new

Source : inetdoc.developpez.com/tutoriels/securite-service-courrier-electronique-amavisd-new/

Faire face aux blacklistes

Tester ses DNS : http://www.dnsinspect.com
Site officiel Altospam : www.altospam.com/glossaire/listes-noires.php
Tester les blacklistes sur Vision du web : mxtoolbox.com/SuperTool.aspx?action=blacklist%3avisionduweb.fr&run=toolpage
Vision du web est blacklisté sur Fabelsources : https://mxtoolbox.com/Problem/Blacklist/FABELSOURCES/
Signaler un spam ou le tester comme spam - www.moensted.dk/spam/

Serveur SMTP gratuit

Sparkpost

Site officiel : https://www.sparkpost.com
Tarifs, gratuit pour 15000 mails mensuel : https://www.sparkpost.com/pricing/
Utiliser Sparkpost comme un relai SMTP : https://developers.sparkpost.com/api/smtp/
Le champ CNAME qui doit être configuré pour le bounce doit avoir un "." à la fin de la cible de votre champ CNAME (sparkpostmail.com.)

Webmail

Roundcube

.

Zimbra

.

SquirrelMail

.

RainLoop

.

Liste noire - Black liste - RBL

Voici quelques exemples de listes noires :
http://www.spamhaus.org
http://www.spamcop.net
http://www.sorbs.net
http://www.dsbl.org
Source : https://www.altospam.com/glossaire/listes-noires.php

Notes de sécurité

Des mails peuvent être envoyés de n'importe ou, en utilisant l'adresse IP du FAI différente du domicile, en utilisant l'adresse du SMTP local.
Les serveurs SMTP font un reverse DNS sur le nom de serveur afin de savoir si l'adresse IP présentée est bien la propriété du dit serveur.

Normes

RFC 822

La RFC 822 est obsolète depuis 2001 et remplacée par la RFC 2822.
RFC822: Standard for ARPA Internet Text Messages : https://www.w3.org/Protocols/rfc822/
La RFC 2822 est obsolète depuis 2008 et remplacée par la RFC 5322.
Autres RFC de référence : http://zero202.free.fr/cs66-smtp/html/ar01s01.html
Le statut des RFC peut être vérifié à partir de la base de données RFC Editor : https://www.rfc-editor.org/retrieve/
Tester si son mail respect la RFC 822 : http://sphinx.mythic-beasts.com/~pdw/cgi-bin/emailvalidate
Tester si son mail respect la RFC 2822 : https://proxy2.de/email-validation.php

SPF

La norme SPF (Sender Policy Framework) liée au DNS, permet d'éviter d'envoyer des spams depuis le champ "From:".

Administrer son serveur de mails grâce aux outils d'aide des GAFAM

Il convient d'inscrire son domaine sur les interfaces Web d'aide aux postmasters proposées par les GAFAM, par exemple :
Gmail : https://gmail.com/postmaster/?utm_source=visionduweb.fr
Outlook : https://sendersupport.olc.protection.outlook.com/pm/
Une fois fait, et les recommandations suivies, les mails sont réceptionnés sans difficulté.

Installer un serveur de liste de diffusion avec sympa

Sympa est une mailing list développée en Perl (?).
Installation de Sympa sous Debian Jessie/GNU Linux (listes de diffusion) sur un VPS (virtual private server) avec signatures SPF,DMARC et DKIM.
Source : https://www.amap-bearn.fr/installation-sympa-sur-un-vps/

Bibliographie

Outils

Ok.png Tester l'indésirabilité spam de vos mails : http://www.mail-tester.com
Ok-ko.png Pyzor - Détecte si un message équivalent existe déjà et si oui il est possible de s'ajouter en liste blanche : http://public.pyzor.org/whitelist/
Ok-ko.png Pyzor - Détecte si un message équivalent existe déjà et si oui il est possible de s'ajouter en liste blanche : https://pyzor.readthedocs.io/en/release-1-0-0/

Tutoriels

Ko.png Installer et sécuriser un serveur mails complet (Mails, SMTP, Auth via SASL, IMAP, POP3, webmail, TLS et SSL) : https://www.informatiweb-pro.net/admin-systeme/linux/14--debian-installer-et-securiser-un-serveur-mails-complet-mails-smtp-auth-via-sasl-imap-pop3-webmail-tls-et-ssl.html
Ko.png Installation d'une solution mail complète sous Debian 9 Stretch : https://blog.tetsumaki.net/articles/2017/08/installation-dune-solution-mail-complete-sous-debian-9-stretch.html
Ko.png How to install email system on Debian 6.0 : https://serverfault.com/questions/460665/how-to-install-email-system-on-debian-6-0
Ko.png Postfix installation et configuration : https://jeanphi.net/blog/2014/08/postfix-installation-et-configuration
Ko.png Fetchmail procmail et spamassassin : https://linux.developpez.com/formation_debian/mail-console.html
Ko.png Fetchmail, procmail, mutt, smtp, urlview, postfix, msmtp : https://debian-facile.org/doc:reseau:mutt
Ko.png Les logiciels de messagerie pour Linux : https://www.arobase.org/linux/linux.htm

Exim

Ok.png Installer et configurer exim4 en relai smarthost : https://www.memoinfo.fr/tutoriels-linux/installer-exim-relai-smarthost/
Ok-ko.png Consulter le manuel Exim sur le wiki de Debian : https://wiki.debian.org/Exim
Ok-ko.png Consulter la FAQ Exim sur le wiki de Debian : https://wiki.debian.org/PkgExim4UserFAQ
Ok-ko.png Specification of the Exim MailTransfer Agent (543 pages) : https://www.exim.org/exim-pdf-current/doc/spec.pdf
Ko.png Configurer Exim, un serveur de mails sous Debian : https://recordma.wordpress.com/2013/12/23/configurer-exim-un-serveur-de-mails-sous-debian/
Ko.png HOW TO SEND E-MAIL THROUGH SHELL USING EXIM4 : http://mewbies.com/how_to_setup_exim_mail_transfer_agent_for_linux_tutorial.htm
Ko.png Configuration d'exim4 avec Gmail : http://dev.petitchevalroux.net/linux/configuration-exim4-avec-gmail-linux.19.html
Ko.png Welcome to the Ubuntu Server Guide : https://help.ubuntu.com/lts/serverguide/exim4.html.en
Ko.png TLS and authentication : https://wiki.debian.org/Exim#Things_you_might_want_to_configure

NAVIGATION

PARTICIPER ET PARTAGER

Bienvenue sur le wiki de Vision du Web.
De nombreuses pages sont partagées sur ce wiki.
Créer un compte utilisateur pour participer sur le wiki.
Les pages présentées sur le wiki évoluent tous les jours.
Certaines recherches sont peu abouties et incluent des erreurs.
Utiliser la recherche interne du wiki pour trouver votre contenu.
La page de discussion de VisionDuWeb vous permet de poser une question.
Utiliser la recherche interne du site pour chercher dans tout le contenu.
Ce contenu ne doit pas servir à nuire à autrui ou à un système informatique.
Protéger votre système Linux ou Windows en lisant la page dédié à la sécurité.
Améliorer le contenu des pages avec vos propositions depuis l'onglet discussion.

SOUTENIR CE WIKI

Soutenir le wiki avec un don en monnaie numérique :
AEON - Bitcoins - Bitcoins Cash - Bitcoins Gold - Bitcore - Blackcoins - Basic Attention Token - Bytecoins - Clams - Dash - Monero - Dogecoins - Ğ1 - Ethereum - Ethereum Classique - Litecoins - Potcoins - Solarcoins - Zcash

OBTENIR DE LA MONNAIE NUMERIQUE

Obtenir gratuitement de la monnaie numérique :
Gagner des Altcoins - Miner des Altcoins.