Problème fonction mail() en php

[Résolu/Fermé]
Signaler
Messages postés
25
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
18 juin 2010
-
Messages postés
783
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
5 juin 2014
-
Hello !

Bon je suis novice en Php, cependant j'ai réussi à faire mon site web, depuis hier je m'étais lancé dans la configuration d'envoi de mails depuis mon site.

Jusqu'à ce midi, tout marchait niquel, je m'envoyais des mails parfaitement lors des différents test, sur les 3 pages d'envoi que j'ai crées, mais depuis tout à l'heure impossible d'y arriver de nouveau.

J'ai même repris un bout de code super basique que j'ai trouvé sur un site :

<?php
$headers ='From: "nom"<adresse@fai.fr>'."\n";
$headers .='Reply-To: adresse_de_reponse@fai.fr'."\n";
$headers .='Content-Type: text/plain; charset="iso-8859-1"'."\n";
$headers .='Content-Transfer-Encoding: 8bit';

if(mail('monadresse@live.fr', 'Sujet', 'Message de test', $headers))
{
echo 'Le message a bien été envoyé';
}
else
{
echo 'Le message n\'a pu être envoyé';
}
?>


En modifiant bien sur les variables par mon adresse mail par exemple, mais rien à faire, ça ne veut pas remarcher.

Je n'ai pourtant rien touché.

Savez vous d'où ce problème peut-il venir ?

Merci d'avance.

4 réponses

Messages postés
783
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
5 juin 2014
51
Aurais-tu un message d'erreur ou simplement une page blanche ?
Messages postés
25
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
18 juin 2010

Oui mais ça c'est pour tester en local qu'il faut activer php.ini non ?
Pcke je teste sur mon serveur là.
Mais ce qui m'embête c'est que depuis hier tout marchait parfaitement, et que je n'ai rien touché dans aucun fichier particulier lorsqu'elle s'est mise à ne plus marcher ..
Messages postés
783
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
5 juin 2014
51
Non, php.ini est un fichier qui se trouve sur n'importe quel serveur. Il définit les réglages de PHP. Souvent il n'est pas accessible par soucis de sécurité du reste...

Tu dis que hier le script marché sur le MÊME serveur que celui ou tu test ?
Messages postés
25
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
18 juin 2010

Ah d'accord autant pour moi je ne savais pas.

Oui depuis hier je testais cette fonction mail sur 3 différentes pages de mon site web, que j'ai mis en ligne sur un serveur, et tout marchais correctement.
Messages postés
783
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
5 juin 2014
51
Et tu dis que tu n'a rien touché au code ? Bizarre...
Messages postés
25
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
18 juin 2010

C'est bien pour cela que je n'y comprend plus rien =(

Encore une fois, sur mon site, je viens de mettre un lien tout simple vers une page PHP "TestMail.php" ou j'ai simplement mis cela :

<?php
$email_destinataire="monadresse@live.fr";
$msg = "lol \n";
if(!mail($email_destinataire, "Resultat formulaire", $msg))
{
echo "ERREUR : l'e-mail n'a pas été envoyé";
}
else{
echo"Message envoye";
}
?>

Et encore une fois, j'ai une page blanche avec le message " ERREUR : l'e-mail n'a pas été envoyé".
Messages postés
783
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
5 juin 2014
51
Essaye ce code :

<?php 
     $headers ='From: "nom"<adresse@fai.fr>'."\n"; 
     $headers .='Reply-To: adresse_de_reponse@fai.fr'."\n"; 
     $headers .='Content-Type: text/plain; charset="iso-8859-1"'."\n"; 
     $headers .='Content-Transfer-Encoding: 8bit'; 

     if(mail('adresse_du_destinataire@fai.fr', 'Sujet', 'Message de test', $headers)) 
     { 
          echo 'Le message a bien été envoyé'; 
     } 
     else 
     { 
          echo 'Le message n\'a pu être envoyé'; 
     } 
?>


S'il ne marche pas, cela vient de ton serveur...
Messages postés
25
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
18 juin 2010

Non, j'ai toujours le message d'erreur ...
J'vais essayer de voir les configurations sur mon serveur, merci quand même de tes réponses en tout cas.
Messages postés
783
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
5 juin 2014
51
Pour voir de quoi il en est, crée un fichier php contenant le code suivant :

<?php
phpinfo(INFO_ALL);
?>


Et regarde les lignes concernant les mails et les serveurs SMTP...
Messages postés
25
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
18 juin 2010

Je viens de tester ton code, rien d'anormal il me semble.

Cependant, je viens de tester la fonction mail avec une adresse email associée à mon nom de domaine, et là cela fonctionne.

Il semble donc que mail() ne marche qu'avec les adresses mails que j'ai pu associer à mon domaine, ce qui m'est complètement inutile si je ne peux pas l'utiliser avec n'importe quelle adresse .
Salut,

Essaie:

<?php

$dest = 'ton_adresse@domaine.com'
$sujet = 'ton sujet'
$corps = 'Test fonction mail'

mail($dest, $sujet, $corps);

?>

J'espere que ça t'aidera.
Messages postés
25
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
18 juin 2010

Merci bien, mes autres codes ont l'air de fonctionner, cela était apparement dû à mon hebergeur qui avait activé un antispam sur l'adresse mail du domaine dont je me servais pour effectuer mes tests.
Etant donné que j'effectuais un nombre conséquent de tests, ils ont du prendre cela pour une tentative de spam, et donc bloquer cette adresse.

J'ai désactivé cette option antispam et pour le moment ça fonctionne.

Merci encore à vous ;)
Messages postés
783
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
5 juin 2014
51
Ah vive la sécurité =_=