Bonjour,
Je suis étudiante en première année de BUT et je travaille sur un projet que je dois rendre dans un mois. Je dois créer un site de réservation de matériel pour mon IUT. Ce site comprend, bien sure, une page d'authentification et d'inscription pour, bien sure, mettre en pratique nos connaissances de première année en PHP.

J'ai avancée dessus et, actuellement, je suis sur l'envoie automatique d'une mail de confirmation d'inscription à la personne qui se sera inscrite. Je me suis renseignée, j'ai fait des recherches et ce sans succès. J'ai installé sendmail, j'ai modifié php.ini et sendmail.ini et j'ai ajouté les lignes de php mais, toujours, sans succès.

$header="MIME-Version: 1.0\r\n";
        $header.='From:"IUT_DE_MEAUX"<boubousept2@gmail.com>'."\n";
        $header.='Content-Type:text/html; charset="uft-8"'."\n";
        $header.='Content-Transfer-Encoding: 8bit';

        $message = "
        <html>
            <body>
                <div align='center'>
                    Cher ".$_POST['prenom'].",

                    Nous vous remercions d’avoir complété votre inscription auprès de du site de réservation de l'IUT de MEAUX.

                    Cet e-mail confirme que votre compte est activé.

                    Cordialement,

                    L’équipe de GUSTAVE EIFFEL;
                </div>
            </body>
        <html>
        ";

        $retour= mail($_POST['email'],'Confirmation d\'inscription sur le site de réservation de matériel - IUT de MEAUX', $message, $header);
        var_dump($retour);

Ce que je veux

Je ne trouve pas la source du problème. J'ai besoin d'aide pour le trouver et qu'il fonctionne.

Ce que j'obtiens

Voici le message d'erreur obtenue
=> Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\wamp64\www\reservation_site\verification.php on line 68

Merci d'avance pour vos retours.

16 réponses


quenti77
Réponse acceptée

Hello,

Plutôt que d'essayer en local d'envoyer vraiment des mails, essaye plutôt de passer par un outils qui capture les mails en local comme maildev ou mailhog

Vidéo de Grafikart sur maildev : https://grafikart.fr/tutoriels/maildev-tester-emails-595

bonjour.
dans ton php.ini
il faut spécifier le smtp qui enverra ton

verifie la ligne smtp_port dans ton fichier php.init et configure le selon le mailer que tu utilise soit gmail soit maildev etc

BOUBOU28
Auteur

Alors, voilà ce que j'ai :
[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = 127.0.0.1
; http://php.net/smtp-port
smtp_port = 25

; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = boubousept2@gmail.com

; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
sendmail_path ="C:\wamp64\sendmail\sendmail.exe"

BOUBOU28
Auteur

L'adresse IP pour le localhost était déjà inscrite, la seule chose que j'ai modifiée c'est le sendmail_from

le smtp est celui de ton fai.

smtp.orange.fr par exemple
une recherche sur ton moteur de recherche favori va t'aider

BOUBOU28
Auteur

SMTP = smtp.gmail.com

BOUBOU28
Auteur

Non, toujours le même message d'erreur affichée

tu as redémarré le serveur ?
tu as changé le port ?

BOUBOU28
Auteur

Oui, je l'ai redémarer et j'ai basculer le port sur 587

tu as vérifié à l'aide de la fonction "phpinfo" que tu as les bonnes informations que tu viens de rentrer ?

BOUBOU28
Auteur

Oui, j'ai fait phpinfo(INFO_GENERAL) et j'ai vue cette ligne :
Configuration File (php.ini) Path : No value

BOUBOU28
Auteur

J'ai fait, aussi, phpinfo(INFO_CONFIGURATION). Et j'ai vue qu'aucune des configurations que j'ai faite dans le sendmail.ini et php.ini ont été prises en compte

tu as bien mofié le bon php.ini (celui indiqué via phpinfo) ?

BOUBOU28
Auteur

oui. J'ai modifiée même, dans le doute, tout les php.ini que j'ai trouvée sur mon ordinateur

[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = smtp.gmail.com
; http://php.net/smtp-port
smtp_port = 587

; For Win32 only.
; http://php.net/sendmail-from
sendmail_from ="boubousept2@gmail.com"

; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
sendmail_path ="C:\wamp64\sendmail\sendmail.exe"

; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail().
;mail.force_extra_parameters =

; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename
mail.add_x_header = Off

; The path to a log file that will log all mail() calls. Log entries include
; the full path of the script, line number, To address and headers.
;mail.log =
; Log mail to syslog (Event Log on Windows).
;mail.log = syslog

J'ai lu localhost.
Comme à dit Carouge10, tu ne peux pas envoyé de mail en local via ton ordinateur, il te faut un hébergement avec un serveur.