Envoyer des mails à l’aide de PHP


#1

Bonjour,

Je reprend un site ecrit sous Jessie, en mysql.
J’ai fait 2 modifications aujourd’hui :
1/ j’ai modifié le mot de passe du webmaster@mondomaine.com
2/ Je viens de faire une mise à jour correcte vers STRETCH.

Je constate que l’envoi d’email ne fonctionne pas.
Je contrôle en créant un php simple : https://www.hostinger.fr/tutoriels/php-mail/
Et en effet je ne reçois pas d’email.

Comment consulter les logs et comprendre ce qui se passe ?
Merci


#2

Modifer le mot de passe où ça et comment ?

Pourquoi ne pas avoir poursuivi l’effort jusqu’en buster ?

Les emails émis par quoi ?
C’est quoi cette histoire de "confirmation de commandes ou création client " ?

[edit: et ton titre, il veut dire quoi ?]


#3

Bonjour Mattotop,

J’ai eu en effet du mal à choisir un titre car je ne sais pas où se trouve mon problème.
Donc j’ai un site qui fonctionnait sous Jessie. Ce site est développé en php/mysql.

Ce matin j’ai fait un upgrade jusqu’à STRETCH. En effet je voudrais dèjà vérifier que tout est ok avant de poursuivre vers Buster.

Lors de cet upgrade je me suis rendu compte que les messages systemes étaient adressé à webmaster@mondomaine.com, messagerie que je gère mais dont je n’ai pas le mot de passe : j’ai donc réinitialisé le mot de passe messagerie ; en l’occurence chez M. google car tous les emails sont créés dans Gsuite.

Après le passage en stretch, je teste le site qui est une boutique en ligne. Et je me rends compte que cela bug au niveau des envois d’emails depuis webmaster@mondomaine.com
Etant peu experimentée, je me penche sur le code et trouve la ligne de code pour les envois d’ emails :

if (create_mail($_POST['email'],"Création de votre compte client",$message,"webmaster@". $_SERVER['HTTP_HOST'], "webmaster@". $_SERVER['HTTP_HOST'],true)){
				$_SESSION['tokenok'] = 0;		
				die(json_encode(9));
			}

Je me pose donc la question de savoir comment fonctionne le protocole d’envoi des emails, et est ce que le mot de passe de webmaster[at]mondomaine[dot]com doit etre stocké quelquepart ?

J’espère etre plus claire … merci.
PS : je modifie le sujet et le contenu du 1er message


#4

En fait j’ai trouvé : c’est le programme postfix qui est utilisé, et il y a un fichier qui contient les mots de passe.


#5

Heu… Postfix est un gros serveur d’envoi de courriel… D’origine ce devrait être sendmail qui est installé avec une debian 10 standard ou ssmtp.

Le protocole d’envoi d’email est simple à comprendre a partir du moment ou l’on a des notions de réseau et de transfert de paquets car il fonctionne de la même matière, celui-ci est constitué d’une en-tête qui permet lorsqu’il est lu d’être redirigé vers le serveur qui le reçoit.

En règle générale, le serveur de réception est choisit en fonction du domaine après le @ de l’adresse.
Après c’est le réseau qui exécute le transfert jusqu’à la réception, s’il n’a pas été intercepté avant… Le maillage du réseaux internet est fait de telle manière que si l’une des duplication se perd et que les serveur de relais font leur boulot et qu’il est bien dupliqué lors du relai sur différentes branches de la maille, la réception se fait quand même


#6

Que donnent les logs de postfix ? (/var/log/mail.*)
Tu peu également suivre l’envoi de test mails dans la queue. Voici quelques commandes utiles:
a) lister les messages en attente dans la queue: mailq ou postqueue -p
b) Afficher le contenu d’un msg de la queue: postcat -q <n° msg>
c) Supprimer tous les messages différés : postsuper -d ALL deferred
d) Nombre de messages dans la queue : mailq | tail -n 1
e) Script de suppression de mails dans la queue : pfdel_keyword
f) état des queues de postfix : qshape -s | head