J’ai deux problèmes (en fait j’en ai plus, mais ce blog n’est pas une thérapie, c’est pour partager)

Premier problème, sur mon serveur vps chez OVH (Debian 8), j’ai la désagréable sensation, pour ne pas dire certitude que la fonction mail de php ne fonctionne pas.

Que faire ?

Installer un serveur mail simple et efficace. Exim4 est notre homme. Mais il n’est pas configurer. Voir pas installé.

On se dirige vers la première ligne : Distribution directe par SMTP (site Internet)

Et dans Nom de courrier du système il faudra lui mettre votre nom de domaine, par ex : monsite.com
Ainsi que dans Autres destinations dont le courrier doit être accepté
J’ai laisser les autres options par défaut.

C’est le moment de vérifier si ça marche

Vous pouvez faire un test avec un fichier php sur votre serveur :

Le mail est envoyé, victoire !
Il est dans le spam… tout n’est pas perdu.

 

Second problème, gmail classe inévitablement le courrier dans les spams. Même si l’adresse mail du serveur est dans mes contacts.

En regardant le détail des mails, j’ai vu que l’IP v6 était utilisée. Ce n’est pas un problème en soit.
Si ce n’est que le SPF en qui Gmail fait confiance est paramétré sur l’IP v4 sur mon serveur OVH et que je ne peux pas le faire pointer vers l’IP v6.

Solution, demander à Exim4 d’envoyer en IP v4 en ajoutant à la fin de /etc/exim4/exim4.conf.template ceci :

et relancer le service :

 

Troisième problème, gmail ne classe plus le courrier dans les spams. Victoire ! Mais affiche un point d’interrogation à côté de mon nom de domaine quand j’affiche le message avec ce texte quand je le survol :

« Gmail n’a pas pu confirmer que ce message a bien été envoyé par monsite.com (et non par un spammeur). »

Ce tuto s’arrête ici. L’objectif premier est rempli, le smtp fonctionne et les mails ne partent pas dans les spam.

Pour résoudre ce dernier problème il faut générer deux clés RSA, une publique et une privée, mettre la clé publique dans les DNS… l’autre dans le mail. Beaucoup de manipulations, n’en n’ayant pas le besoin dans l’immédiat je vais m’en passer.

Cet article va vous permettre d’envoyer des mails depuis le terminal ou avec la fonction mail de php en utilisant le smtp de gmail.

C’est à dire que les mails seront envoyés par le biais de votre adresse perso gmail. Que ce soit pour être alerté d’une présence (avec une photo en pièce jointe), des mises à jours de sécurité à appliquer ou que sais-je encore…

 

Créer un mot de passe spécifique

Rendez-vous sur la page Mots de passe d’application de google et renseigner comme ceci :
Sélectionner une application -> Messagerie
Sélectionner un appareil -> Autre (nom personnalisé) -> Raspberry Pi

Vous obtiendrez un mot de passe spécifique qui a l’avantage de pouvoir être révoqué en cas de doute sur la sécurité de votre Raspberry Pi et de pouvoir envoyer des mails sans avoir à effectuer l’authentification en deux étapes.

Installer les packages

puis

Choisir la première ligne « Distribution directe par SMTP (site Internet) »
Distribution directe par SMTP (site Internet) : RaspberryPi
Liste d’adresses IP : 127.0.0.1 ; ::1_
Autres destinations : RaspberryPi
RaspberryPi : (laisser vide)
Machines à relayer : (laisser vide)
Faut-il minimiser les requêtes DNS : Non
Format « mbox » dans /var/mail
Faut-il séparer la configuration dans plusieurs fichiers ? Non
Destinataire des courriers de « root » et « postmaster » : (laisser vide)

 

ajouter les lignes à la fin du fichier en modifiant votre adresse et votre mot de passe (celui générer au début du tuto)

Il faut relancer Exim4 :

 

Courage on touche au bout :

ssmtp pour permettre l’utilisation du smtp de gmail
mailutils & mpak pour envoyer des mails en shell

Supprimer les deux ligne :

Et ajouter à la fin (en remplaçant le nom et le mot de passe une fois de plus)

 

Cron et d’autres services vont certainement vouloir envoyer des mails, pour qu’ils soient bien routés, il faut ajouter ces deux lignes à la fin du fichier /etc/aliases :

 

Tester

Avec php mail()

 

 

Avec mailutils dans le terminal :

Taper le texte, et pour envoyer il faut taper un point + [entrée] sur une nouvelle ligne.

 

Vous avez des tâches cron ?

Désormais, votre cron daemon va vous envoyer des alertes à chaque exécution d’une tâche. Voici comment paramétrer les alertes cron :