Envoie d'un formulaire en php [Résolu]

Signaler
Messages postés
41
Date d'inscription
mardi 17 janvier 2006
Statut
Membre
Dernière intervention
14 octobre 2009
-
Messages postés
1123
Date d'inscription
mardi 8 janvier 2002
Statut
Modérateur
Dernière intervention
21 avril 2009
-
Bonjour à tous, voilà mon soucil. Dans le site que je suis entrain de créer, je veux mettre un formulaire en php, voici ce que j'ai mis ( source trouvé sur le net)

premiere page contact.html:

donc j'ai mon formulaire

ensuite quand je clique sur envoyer, j'appelle ma page formmail.php avec le code ci dessus :

<?php
$TO = "mon adresse";

$h  = "From: " . $TO;

$message = "";

while (list($key, $val) = each($HTTP_POST_VARS)) {
  $message .= "$key : $val\n";
}

mail($TO, $subject, $message, $h);

//Header("Location: http://");

?>

Pour vérifier si l'envoie fonctionne apres redirection sur la page formmail.php, j'obtiens ce message d'erreur :

<Warning: mail() [function.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:\Program Files\EasyPHP 2.0b1\www\test mail\formmail.php on line 12>

Est ce du au faite que j'utilise une adresse hotmail ou s'agit il d'un autre soucis???

Cordialement Arnaud

16 réponses

Messages postés
962
Date d'inscription
samedi 19 janvier 2002
Statut
Membre
Dernière intervention
2 août 2010
1
Plus clairement ça veut dire que tu dois entrer le serveur smtp de ton FAI dans ton fichier php.ini, tu remplace localhost par le smtp de ton FAI (ou un autre de ton choix)..

-------------------
Vous cherchez un hebergement Php/MySQL Gratuit et sans publicités ??
Et bien c'est la : www.e3b.org  
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
35
Salut,

je pense que c'est effectivement du au fait que l'addresse que tu a fourni est hotmail or ces types d'adresse n'utilise pas le protocol SMTP

Si t'a besoin d'aide, MP !!!
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
41
salut
nicomilville, ca n'a aucun rapport...

le message d'erreur est explicite...
explication de l'erreur :
Failed to connect to mailserver at "localhost" port 25
facon de le corriger :
verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set()
/**
* @author coucou747 <coucou747@hotmail.com>
* @see irc://cominweb.uni-irc.net/#programmation
*/
Messages postés
41
Date d'inscription
mardi 17 janvier 2006
Statut
Membre
Dernière intervention
14 octobre 2009

Ok, je suppose que sa ne marchera pas non plus avec compte gmail??? Si s'est bien cela le problème, quel genre de messagerie serait accepté.??


Sinon quelle pourrait en etre la cause, pour information, je fais test sur easyphp.


 


Cordialement Arnaud
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
41
ce que nicomiville t'a dit etait faux... le probleme vient de ton php.ini qui n'est pas configure, LIS TON MESSAGE D'ERREUR !
verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set()
tu dois verifier ce qui concerne SMTP dans php.ini...
/**
* @author coucou747 <coucou747@hotmail.com>
* @see irc://cominweb.uni-irc.net/#programmation
*/
Messages postés
1123
Date d'inscription
mardi 8 janvier 2002
Statut
Modérateur
Dernière intervention
21 avril 2009
1
Nicomilville, je me demande bien comment tu à pu deviner que le probleme venait d'une adresse telle que hotmail, puisque nulle part il est indiqué que c'est une adresse Hotmail qui est utilisé.
Peut-être n'apprécie tu pas leur attitude au niveau de l'accessibilité pour leur mail, et de ce coté là je suis tout à fait d'accord avec toi : Se prendre la tete pour pouvoir lire tes mails avec ton webmail, alors qu'avec outloock, ca marche finger in the nose, c'est du bon foutage de gueule à la crosoft.

Maintenant pour en revenir à nos moutons, si tu regarde bien l'erreur que donne ArnaudT62, tu remarquera que le problème est en local. Est-ce que tu à déjà essayé d'envoyer des emails ? En mettant n'importe quoi comme adresse emetteur ? Si oui, tu remarquera que le message d'erreur n'est plus "failed to connect to mailserver", mais un truc genre "you have no rights to send emails with this domain". Dans ce cas, ce demander quel était le mail emetteur aurait été une possibilité, qui plus est, est ptete hotmail aussi ;)

En fait dans ton cas ArnaudT62, il faut que tu modifie la directive SMTP dans la section mail function de ton php.ini :
[mail function]
; For Win32 only.
SMTP = smtp.tonFai.tld

Généralement, tu met smtp.[] avec [] qui correspond à la partie apres l'arobase. Par exemple si tu envoie un mail en bob@gmail.com, tu mettra smtp.gmail.com (ou mail.gmail.com je sais plus, à vérifier chez eux). L'idée, c'est que si tu envoie un mail bob@gmail.com en mettant en smtp : smtp.free.fr, tu aura une erreur de refus (essaye, c'est marrant le message d'erreur (sur certain serveur ils te demandent carrément si tu te moque pas d'eux :D) ;))

Normallement ca devrait marcher. Biensur dans le cas de hotmail/msn, tu peux changer d'email, ils ont pas de serveur smtp te permettant d'y acceder, tout est fermé chez eux, meme l'utilisation de leur produit en dehors du cadre qu'ils autorisent ...

http://www.ReFlectiv.Net
Messages postés
41
Date d'inscription
mardi 17 janvier 2006
Statut
Membre
Dernière intervention
14 octobre 2009

okay voilà ce que j'ai dans mon php.init :
 
[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25



; For Win32 only.
;sendmail_from =
[mailto:me@example.com
me@example.com
]



; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
;sendmail_path =



; 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(), even in safe mode.
;mail.force_extra_parameters =





Donc que dois je mettre à la place, par exemple pour mon adresse hotmail.
De plus si j'ai bien compris le preoblème et dus à easy php, donc normalement une fois mon site est hébérgé, sa devrait marcher??? ou pas???

merci pour vos réponse.
Messages postés
1123
Date d'inscription
mardi 8 janvier 2002
Statut
Modérateur
Dernière intervention
21 avril 2009
1
Pour hotmail, t'oublie.
Tu compte héberger ton site ou ? Si c'est un serveur gratuit (style free), en général, ils n'implémentent pas de fonction mail te permettant d'en envoyer (mais ya des moyens de passer outre).
Si tu passe par un service payant, généralement ca marche. Ovh, 1&1 en tout cas de sur.

Dans ton cas, pour que ca marche, tu ne doit modifier que la partie "SMTP" en mettant, comme je t'ai dit avant, les indications fournies par la personnes chez qui tu possede ton mail :
smtp.free.fr, mail.gmail.com, etc. Ca ne marche pas avec hotmail.

http://www.ReFlectiv.Net
Messages postés
41
Date d'inscription
mardi 17 janvier 2006
Statut
Membre
Dernière intervention
14 octobre 2009

okay, merci pour ta reponse, je testerai sa demain et je vous dirai si sa marche, par contre je laisse le port en 25 ou dois je le changer?

Cordialement
AT
Messages postés
1123
Date d'inscription
mardi 8 janvier 2002
Statut
Modérateur
Dernière intervention
21 avril 2009
1
Le port normallement c'est bon (ca dépend de la configuration de ton fournisseur), mais dans les 99% ca change pas, donc laisse :)

http://www.ReFlectiv.Net, centre R&D de mes projets :)
Messages postés
41
Date d'inscription
mardi 17 janvier 2006
Statut
Membre
Dernière intervention
14 octobre 2009

^^, normalement le site sera hébérgé chez 1&1, et 'adresse utilise le dns de l'entreprise, dc du genre tcho@ocean.fr 
Messages postés
1123
Date d'inscription
mardi 8 janvier 2002
Statut
Modérateur
Dernière intervention
21 avril 2009
1
Le site sera hébergé chez ovh avec une redirection du type www.ocean.fr pointe sur le site sur 1&1 ? si oui c'est nikel :)
Apres normallement (par contre à tester ce que je vais dire), chez les fournisseurs de type 1&1, ils acceptent n'importe quoi en emetteur et destinataire (du moment que tu paie ;)), donc meme si c'est pas le cas (que ce soit un site ayant comme nom ocean.fr et un mail différent) ca devrait quand meme marcher. A verifier !

http://www.ReFlectiv.Net
Messages postés
41
Date d'inscription
mardi 17 janvier 2006
Statut
Membre
Dernière intervention
14 octobre 2009

re, je viens de faire la manip que tu m as dis, alors quand je mets smpt = smtp.gmail.com, il me met par la suite :

Warning : mail() [function.mail]: SMTP server response: 530 5.7.0 Must issue a STARTTLS command first e11sm18470177fga.5 in C:\Program Files\EasyPHP 2.0b1\www\test mail\formmail.php on line 12

et si je met smtp = mail.gmail.com, il me met :

Warning: mail() [function.mail]: Failed to connect to mailserver at "mail.gmail.com" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\Program Files\EasyPHP 2.0b1\www\test mail\formmail.php on line 12
Messages postés
1123
Date d'inscription
mardi 8 janvier 2002
Statut
Modérateur
Dernière intervention
21 avril 2009
1
Donc tu remarquera que la seconde erreur te retourne comme au début : Failed to connect to server. ce qui est indique que le serveur indiqué n'est pas bon. C'est donc smtp.gmail.com qu'il faut utiliser.

Le premier message d'erreur t'indique que gmail veux utiliser une indication tls. C'est une méthode qui augmente la sécurité en rapport avec l'authentification pour l'envoi d'email. Le probleme qui va t'être posé par la suite, c'est que pour envoyer des mails sur le serveur de gmail, il faut tres probablement être identifié. Et ca, je ne crois pas que ce soit possible avec gmail.

Si mes souvenirs sont bon, Free permet d'utiliser son smtp sans identification. Le probleme actuellement, c'est que les serveurs smtp sont plus restreints (demande d'authentification, etc), à cause du spam. Donc il faut trouver un serveur web qui autorise l'envoi d'email.

Apres si tu es motivé, et que tu à un serveur chez toi, tu peux installer sendmail ou postfix, mais ca, c'est une autre histoire ;)

http://www.ReFlectiv.Net
Messages postés
41
Date d'inscription
mardi 17 janvier 2006
Statut
Membre
Dernière intervention
14 octobre 2009

je vais laisser le code comme sa et je regarderai ce que sa fait a partir des serveurs de 1&1, sinon je te remercie pour toute tes réponses.
Sinon bonne nuit, moi je vais faire dodo ^^
Cordialement AT
Messages postés
1123
Date d'inscription
mardi 8 janvier 2002
Statut
Modérateur
Dernière intervention
21 avril 2009
1
Bonne nuit ;)

http://www.ReFlectiv.Net