IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Erreur envoi formulaire contact par e-mail


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Octobre 2010
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2010
    Messages : 68
    Points : 29
    Points
    29
    Par défaut Erreur envoi formulaire contact par e-mail
    Bonjour à tous,
    Je suis en train de faire un forumulaire de cobtact et je bloque sur l'envoi du message.
    En fait, j'ai le message d'erreur suivant qui apparait :
    Warning: mail() [function.mail]: SMTP server response: 554 5.7.1 <LNeuilly-152-23-8-99.w193-252.abo.wanadoo.fr[193.252.39.99]>: Client host rejected: Access denied in C:\wamp\www\contact\contact.php on line 14
    Le mail a bien été envoyé.

    Il me semble que c'est du à gmail et wamp server, mais je n'ai pas réussi à avoir une réponse claire et compéhensible pour moi.

    Voici les fichiers en question :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <html>
    <head></head>
    <body>
    <form method="post" action="contact.php">
    Nom :<input type="text" name="nom" /><br />
    Email :<input type="text" name="email" /><br />
    Message :<textarea name="message" cols="30" rows="15"></textarea><br/>
    <input type="submit" value="Envoyer" />
    </form>
    </body>
    </html>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <?php
     
    if(isset($_POST) && isset($_POST['nom']) && isset($_POST['email']) && isset($_POST['message'])){
       extract($_POST);
       if(!empty($nom) && !empty($email) && !empty($message)){
    		$message=str_replace("\'","'",$message);
    		$destinataire="contact@gmail.com";
    		$sujet="Formulaire de contact";
    		$message="Une nouvelle question est arrivée \n
    		Nom : $nom \n
    		Email : $email \n
    		Message: $message";
    		$entete="From: $nom \n Reply-To: $email";
    		mail($destinataire,$sujet,$message,$entete);
    		echo "Le mail a bien été envoyé.";
       }
       else{
    		echo "Vous n'avez pas rempli tous les champs.";
       }
    }
    ?>
    Voici le fichier php.ini (dans wamp server):
    Code ini : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    [mail function]
    ; For Win32 only.
    ; <a href="http://php.net/smtp" target="_blank">http://php.net/smtp</a>
    SMTP = smtp.gmail.com
    ; <a href="http://php.net/smtp-port" target="_blank">http://php.net/smtp-port</a>
    smtp_port = 25

    Code ini : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ; For Win32 only.
    ; <a href="http://php.net/sendmail-from" target="_blank">http://php.net/sendmail-from</a>
    sendmail_from = <a href="mailto:contact@gmail.com">contact@gmail.com</a>

  2. #2
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    salut,

    As tu essayé de changer de destinataire ?
    Développeur | Zend Certified Engineer

    Étapes Pour mieux se servir du forum:
    1. Commencez par lire les cours et tutoriels ;
    2. Faites une recherche;
    3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

    Nix>_Rien n'est plus pratique que la théorie

  3. #3
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2010
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2010
    Messages : 86
    Points : 304
    Points
    304
    Par défaut
    Salut,

    Les problèmes d'envoi de mail depuis une machine locale via le smtp gmail sont assez récurrents.
    Pour l'utilisation de son smtp, gmail demande d'utiliser SSL avec un compte valide, depuis le port 465 (et non 25)
    Comme il est un peu galère de configurer ça, personnellement j'utilise la classe toute faite PhpMailer (disponible ici: http://phpmailer.worxware.com/ ) qui gère très bien gmail.

    En espérant que cela puisse t'aider.

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Octobre 2010
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2010
    Messages : 68
    Points : 29
    Points
    29
    Par défaut
    Cela ne fonctionne pas :

    - J'ai essayé de changer de destinataire mais sans succés,
    - J'ai également essayé de changer le numéro du port comme ceci "gmail demande d'utiliser SSL avec un compte valide, depuis le port 465 (et non 25)",
    - Enfin, j'ai télécharger ce lien PhpMailer (disponible ici: http://phpmailer.worxware.com/ ), mais je ne sais pas où le mettre et comment le configurer...

    Quelqu'un saurait-il me dépanner ?

  5. #5
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Développeur | Zend Certified Engineer

    Étapes Pour mieux se servir du forum:
    1. Commencez par lire les cours et tutoriels ;
    2. Faites une recherche;
    3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

    Nix>_Rien n'est plus pratique que la théorie

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Octobre 2010
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2010
    Messages : 68
    Points : 29
    Points
    29
    Par défaut
    Merci de ton retour:
    Voici ce que j'ai essayé de faire :

    J'ai mis le dossier phpmailer dans celui-ci : C:\wamp\bin\apache\Apache2.2.11\conf
    (je n'ai touché à rien).

    Ensuite j'ai inséré dans mon fichier contact.php ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    <?
    	require "répertoire_phpmailer/class.phpmailer.php";
    	$mail = new PHPmailer();
    	$mail->IsSMTP();
    	$mail->IsHTML(true);
    	$mail->Host='hote_smtp';
    	$mail->From='contact@gmail.com';
    	$mail->AddAddress('contact@gmail.com');
    	$mail->AddReplyTo('contact@gmail.com');	
    	$mail->Subject='Exemple trouvé sur DVP';
    	$mail->Body='<html><body><center><font size=8>l\'image est juste en dessous</font><br>';
    	$mail->Body.='<img src="http://developpez.net/forums/templates/subSilver/images/logo_developpez.gif">';
    	$mail->>Body.='</center></body></html>';		
     
     
    	if(!$mail->Send()){
    	  echo $mail->ErrorInfo; 
    	}
    	else{
    	  echo 'Le mail a été envoyé';
    	}
    	$mail->SmtpClose();
    	unset($mail);
     
     
     
    ?>
    et voici le message d'erreur qui apparait :
    IsSMTP(); $mail->IsHTML(true); $mail->Host='hote_smtp'; $mail->From='contact@gmail.com'; $mail->AddAddress('contact@gmail.com'); $mail->AddReplyTo('contact@gmail.com'); $mail->Subject='Exemple trouvé sur DVP'; $mail->Body='
    l\'image est juste en dessous
    '; $mail->Body.=''; $mail->>Body.='
    '; if(!$mail->Send()){ echo $mail->ErrorInfo; } else{ echo 'Le mail a été envoyé'; } $mail->SmtpClose(); unset($mail); ?>

  7. #7
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    Ce n'est pas un message d'erreur, c'est juste ton code qui n'a pas été interpreté. Peux-tu remplacer le tag php <? par <?php ?
    Développeur | Zend Certified Engineer

    Étapes Pour mieux se servir du forum:
    1. Commencez par lire les cours et tutoriels ;
    2. Faites une recherche;
    3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

    Nix>_Rien n'est plus pratique que la théorie

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Octobre 2010
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2010
    Messages : 68
    Points : 29
    Points
    29
    Par défaut
    j'ai modifié et le message qui apparait est :
    Warning: require(répertoire_phpmailer/class.phpmailer.php) [function.require]: failed to open stream: No such file or directory in C:\wamp\www\contact\contact.php on line 2

    Fatal error: require() [function.require]: Failed opening required 'répertoire_phpmailer/class.phpmailer.php' (include_path='.;C:\php5\pear') in C:\wamp\www\contact\contact.php on line 2

    mon chemin est : répertoire_phpmailer/class.phpmailer
    j'ai même essayé cela : C:\wamp\bin\apache\Apache2.2.11\conf\phpmailer.php sans succés

  9. #9
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    Citation Envoyé par novice100 Voir le message
    mon chemin est : répertoire_phpmailer/class.phpmailer
    Peux tu renommer le répertoire contenant phpmailer autrement (sans caractère spéciaux, accents, etc.) ? Ensuite tu le places dans C:\wamp\www\.

    Et alors tu pourras l'appeler via
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    require "../../phpmailer/class.phpmailer.php";
    Développeur | Zend Certified Engineer

    Étapes Pour mieux se servir du forum:
    1. Commencez par lire les cours et tutoriels ;
    2. Faites une recherche;
    3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

    Nix>_Rien n'est plus pratique que la théorie

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Octobre 2010
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2010
    Messages : 68
    Points : 29
    Points
    29
    Par défaut
    Voici ce que j'ai fait mais cela semble ne pas fonctionner :
    Warning: require(../../phpmailer/class.phpmailer.php) [function.require]: failed to open stream: No such file or directory in C:\wamp\www\contact\contact.php on line 2

    Fatal error: require() [function.require]: Failed opening required '../../phpmailer/class.phpmailer.php' (include_path='.;C:\php5\pear') in C:\wamp\www\contact\contact.php on line 2


    Voici où se trouve PHPMailer : C:\wamp\www\phpmailer

    et mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <?php
    	require "../../phpmailer/class.phpmailer.php";
    	$mail = new PHPmailer();
    	$mail->IsSMTP();
    	$mail->IsHTML(true);
    	$mail->Host='hote_smtp';
    	$mail->From='contact@gmail.com';
    	$mail->AddAddress('contact@gmail.com');
    	$mail->AddReplyTo('contact@gmail.com');	
    	$mail->Subject='Exemple trouvé sur DVP';
    	$mail->Body='<html><body><center><font size=8>l\'image est juste en dessous</font><br>';
    	$mail->Body.='<img src="http://developpez.net/forums/templates/subSilver/images/logo_developpez.gif"></center></body></html>';
     
    	if(!$mail->Send()){
    	  echo $mail->ErrorInfo; 
    	}
    	else{
    	  echo 'Le mail a été envoyé';
    	}
    	$mail->SmtpClose();
    	unset($mail);
     
    ?>

  11. #11
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    Tu as vérifié que le fichier class.phpmailer.php se trouve dans le répertoire phpmailer ?
    Développeur | Zend Certified Engineer

    Étapes Pour mieux se servir du forum:
    1. Commencez par lire les cours et tutoriels ;
    2. Faites une recherche;
    3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

    Nix>_Rien n'est plus pratique que la théorie

  12. #12
    Nouveau membre du Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Octobre 2010
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2010
    Messages : 68
    Points : 29
    Points
    29
    Par défaut
    Oui, le fichier class.phpmailer.php se trouve dans le répertoire phpmailer.
    Mais je n'y ai pas du tout touché !!

  13. #13
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    Ok, Dans ce cas c'est le chemin qui est mauvais. Peux tu tester avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    require $_SERVER['DOCUMENT_ROOT']."/phpmailer/class.phpmailer.php";
    Développeur | Zend Certified Engineer

    Étapes Pour mieux se servir du forum:
    1. Commencez par lire les cours et tutoriels ;
    2. Faites une recherche;
    3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

    Nix>_Rien n'est plus pratique que la théorie

  14. #14
    Nouveau membre du Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Octobre 2010
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2010
    Messages : 68
    Points : 29
    Points
    29
    Par défaut
    voici le message qui apparait :
    Warning: fsockopen() [function.fsockopen]: php_network_getaddresses: getaddrinfo failed: Hôte inconnu. in C:\wamp\www\phpmailer\class.smtp.php on line 105

    Warning: fsockopen() [function.fsockopen]: unable to connect to hote_smtp:25 (php_network_getaddresses: getaddrinfo failed: Hôte inconnu. ) in C:\wamp\www\phpmailer\class.smtp.php on line 105
    Language string failed to load: connect_host

  15. #15
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    Tu as bien lu le tutoriel ?
    $Host : Spécifie l'hôte (ou les hôtes)SMTP auquel il faut se connecter. Par défaut, le port utilisé est 25, on peut en spécifier un autre comme ceci: $mail->Host='hote:port' où port est le numéro de port
    'hote_smtp' n'est pas ton hôte. Tu dois le remplacer par des informations valides. Tu peux regarder les exemples présent dans le dossier phpmailer.
    Développeur | Zend Certified Engineer

    Étapes Pour mieux se servir du forum:
    1. Commencez par lire les cours et tutoriels ;
    2. Faites une recherche;
    3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

    Nix>_Rien n'est plus pratique que la théorie

  16. #16
    Nouveau membre du Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Octobre 2010
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2010
    Messages : 68
    Points : 29
    Points
    29
    Par défaut
    j'ai mis smtp.gmail.com, mais pas vraiment de résultat.
    Je vais esayer de voir si je trouve quelque chose.

Discussions similaires

  1. Envoi formulaire + Panier par Mail
    Par Le Druide 91 dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 16/03/2015, 10h49
  2. [PHP 4] envoi formulaire contact par mail
    Par xoftob dans le forum Langage
    Réponses: 6
    Dernier message: 28/05/2013, 22h32
  3. [PHP 5.0] Erreur envoi Formulaire de contact par mail
    Par mongolord dans le forum Langage
    Réponses: 7
    Dernier message: 18/05/2012, 17h37
  4. Envoi formulaire html par mail
    Par kck61 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 18/01/2011, 14h14
  5. Envoi formulaire POST par MAIL
    Par libuma dans le forum Services Web
    Réponses: 5
    Dernier message: 07/01/2010, 00h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo