Envoie d'un formulaire en php

Résolu
ArnaudT62 Messages postés 41 Date d'inscription mardi 17 janvier 2006 Statut Membre Dernière intervention 14 octobre 2009 - 16 mars 2008 à 20:21
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 - 17 mars 2008 à 02:16
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

yoman64 Messages postés 962 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 2 août 2010 2
17 mars 2008 à 01:31
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  
3
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
16 mars 2008 à 20:38
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 !!!
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
16 mars 2008 à 22:01
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
*/
0
ArnaudT62 Messages postés 41 Date d'inscription mardi 17 janvier 2006 Statut Membre Dernière intervention 14 octobre 2009
16 mars 2008 à 23:49
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
17 mars 2008 à 00:00
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
*/
0
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
17 mars 2008 à 01:36
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
0
ArnaudT62 Messages postés 41 Date d'inscription mardi 17 janvier 2006 Statut Membre Dernière intervention 14 octobre 2009
17 mars 2008 à 01:39
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.
0
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
17 mars 2008 à 01:43
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
0
ArnaudT62 Messages postés 41 Date d'inscription mardi 17 janvier 2006 Statut Membre Dernière intervention 14 octobre 2009
17 mars 2008 à 01:43
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
0
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
17 mars 2008 à 01:45
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 :)
0
ArnaudT62 Messages postés 41 Date d'inscription mardi 17 janvier 2006 Statut Membre Dernière intervention 14 octobre 2009
17 mars 2008 à 01:45
^^, normalement le site sera hébérgé chez 1&1, et 'adresse utilise le dns de l'entreprise, dc du genre tcho@ocean.fr 
0
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
17 mars 2008 à 01:47
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
0
ArnaudT62 Messages postés 41 Date d'inscription mardi 17 janvier 2006 Statut Membre Dernière intervention 14 octobre 2009
17 mars 2008 à 01:59
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
0
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
17 mars 2008 à 02:07
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
0
ArnaudT62 Messages postés 41 Date d'inscription mardi 17 janvier 2006 Statut Membre Dernière intervention 14 octobre 2009
17 mars 2008 à 02:14
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
0
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
17 mars 2008 à 02:16
Bonne nuit ;)

http://www.ReFlectiv.Net
0
Rejoignez-nous