[RESOLU] Configuration pour envoi de mail en localhost

Eléphanteau du PHP | 12 Messages

25 juin 2019, 16:21

Bonjour, bonsoir,

Voilà quelques temps que je bloque sur un script php pour un site que je suis en train de crée et qui n'est pas encore hébergé.

Il est question d'un envoi de mail simple, suite à un formulaire. Voici mon script "test":
<form method="post" action="testmail.php">
    <table>
        <tr>
            <td>Votre adresse mail : </td>
            <td><input type="email" placeholder="Mail" name="mail" value=""></td>
        </tr>
        <tr>
            <td>sujet : </td>
            <td><input type="text" placeholder="Nom de l'offre" name="sujet" value=""></td>
        </tr>
        <tr>
            <td>message : </td>
            <td><input type="text" placeholder="***" name="message" value=""></td>
        </tr>
        <tr>
            <td></td>
            <td><button name="offre" type="submit" class="btn btn-primary">Postulez !</button></td>
        </tr>
    </table>
</form>
<?php
    $to = $_POST['mail'];
    $subject = $_POST['sujet'];
    $message = $_POST['message'];
    $headers = "From:[email protected]";
    mail ($to,$subject,$message,$headers);
    echo "Mail envoyé";
?>
Le script semble fonctionner MAIS je ne reçois rien du tout. J'imagine qu'il y a une configuration à faire sur php.ini comme d'autres personnes ont dit ailleurs mais je n'ai rien trouvé de concluant.

Merci d'avance si quelqu'un prend le temps de me lire et/ou de me répondre !

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 8471 Messages

25 juin 2019, 20:23

Il faut que ton serveur (ton ordi si tu es en local) soit configuré pour pouvoir envoyer des mails effectivement.
C'est compliqué d'avoir un truc qui marche et ça dépend de beaucoup de paramètres et il y a pas mal de configuration à plusieurs niveaux : ton OS, ton antivirus/antispam, ton firewall, ton serveur PHP + ton FAI.

En résumé, si c'est juste pour tester, ne t'embète pas à faire la conf en local, prend un hébergement à 2€ et vérifie que ça fonctionne sur un serveur en ligne.
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 12 Messages

27 juin 2019, 09:15

Bonjour,

Pas de réponse mais des propositions de solution par @rthur!

D'ailleurs, prendre un hébergement permet d'éviter tout ces configurations ? Ou peut-être que les solutions d'hébergement sont déjà configurés pour l'envoi de mail ?

Mammouth du PHP | 1651 Messages

27 juin 2019, 10:58

Oui une solution d'hebergement tout fait ne demande pas de configurer quoique ce soit. la fonction mail peut ne pas être disponible, mais c'est plutot rare.
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone de rubik's cube

Eléphanteau du PHP | 12 Messages

27 juin 2019, 11:03

Parfait ! Le script est assez simple à prendre en main. Dommage que ça soit compliqué de le tester en local !

Merci pour vos réponses en tout cas !

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 8471 Messages

27 juin 2019, 13:56

Alors la solution complexe auquel j'avais pensé c'était d'installer un serveur d'envoi de mail en local et c'est pas simple.

Toutefois il existe aussi 2 autres solutions plus simples sous Windows :
1) indiquer le SMTP de ton FAI dans le fichier php.ini (fais un phpinfo() pour trouver où il est)
Voici un exemple si tu es chez Orange :

Code : Tout sélectionner

; For Win32 only. ; http://php.net/smtp SMTP = smtp.orange.fr ; http://php.net/smtp-port smtp_port = 25
- Free : smtp.free.fr
- Orange : smtp.orange.fr
- Bouygues : smtp.bbox.fr
- SFR : smtp.sfr.fr

2) utiliser une librairie en PHP type PHPMailer et indiquer un SMTP externe (comme Gmail par exemple si tu as un compte Gmail).
https://github.com/PHPMailer/PHPMailer
Tuto : https://www.berejeb.com/2009/09/envoyer ... -de-gmail/
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 22 Messages

28 juin 2019, 00:04

Bonsoir,

J'ajoute une autre solution à la liste si c'est uniquement pour tester que le mail part et visualiser le contenu.

Installer un faux serveur SMTP comme FakeSMTP (http://nilhcem.com/FakeSMTP/index.html).

Une fois le logiciel démarré il suffit de pointer le code PHP vers localhost port 25 et il sera possible de visualiser les mails envoyés dans FakeSMTP.

Bonne soirée

Eléphanteau du PHP | 12 Messages

01 juil. 2019, 11:50

Une fois le logiciel démarré il suffit de pointer le code PHP vers localhost port 25
Merci à tous pour vos réponses !

J'avais juste une question sur ce "pointer le codephp vers le localhost port 25"

Actuellement je suis en (voir dessous) dans mon php.ini, c'est de ça dont Wolan parlait ?

Code : Tout sélectionner

smtp_port = 25
Je tiens à préciser que je suis sous linux (Je ne sais pas si ça change quelque chose même si je sais que ça change tout.)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 8471 Messages

01 juil. 2019, 17:19

Sous Linux, tu es obligé d'avoir un serveur d'envoi de mail pour que ça fonctionne, tu ne peux pas utiliser directement le SMTP de ton FAI...

Voici un petit tuto :
https://medium.com/@jezhalford/phps-mai ... 9c03cd9e54

Attention, à bien configurer ton serveur mail our ne pas qu'il puisse servir de relai de spams, par ailleurs, il est possible que ton FAI te bloque l'envoi de mail si tu ne passes pas par son SMTP (vérifie dans ton espace client et/ou contacte le), et il est probable que les systèmes antispam des boites mails des destinataires bloquent ces emails envoyés depuis une ligne ADSL/Fibre. Tu es prévenu :-)
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 22 Messages

01 juil. 2019, 19:58

Sous WIndows les valeurs par défaut (localhost et port 25) sont suffisantes mais sous Unix il faut suivre l'article d'@rthur effectivement.