Envoyer un E-mail Php

Résolu
Archeus01 Messages postés 1566 Date d'inscription   Statut Membre Dernière intervention   -  
 Aurel -
Bonjour,
Je cherche un tutrorial, ou tout ce qui pourrait m'aider à envoyer un Email en utilisant le PHP avec WAMP5. J'en ai essayé plusieurs mais il ne fonctionnent pas.
Configuration: Windows XP
Firefox 2.0.0.9

10 réponses

  1. le père
     
    re-bonjour
    Failed to connect to mailserver at "localhost"

    Comme tu n'as sûrement pas de serveur de mail sur ta machine, il ne faut pas mettre "localhost" comme serveur de mail. Je sais, ce n'est pas toi qui l'a mis, il est là parce que Php est livré comme ça.
    Va dans php.ini et dans la rubrique [mail function] modifie la ligne SMTP= pour mettre ton 'vrai' serveur de mail :
    SMTP = smtp.wanadoo.fr si TON FOURNISSEUR D'ACCES est wanadoo
    SMTP = smtp.free.fr si c'est free
    je ne sais pas pour les autres, mais ça apparaît sûrement quelque part sur le site de ton F.A.I.
    4
  2. Archeus01 Messages postés 1566 Date d'inscription   Statut Membre Dernière intervention   455
     
    Bonjour, merci de t'occuper de mon problème.

    J'ai essayé en utilisant zend framework que j'utilise pour mon site :
    code

    <?php
    /** Zend_Controller_Action */
    //require_once 'Zend/Controller/Action.php';
    class IndexController extends Zend_Controller_Action
    {
    public function indexAction()
    {

    require_once 'Zend/Mail.php';
    $mail = new Zend_Mail();
    $mail->setBodyText('Ceci est le texte du message.');
    $mail->setFrom('somebody@example.com', 'un expéditeur');
    $mail->addTo('somebody_else@example.com', 'un destinataire');
    $mail->setSubject('Sujet de test');
    $mail->send();
    die();
    }
    }

    pris sur http://framework.zend.com/manual/fr/zend.mail.html
    et j'ai :

    Fatal error: Uncaught exception 'Zend_Mail_Transport_Exception' with message 'Unable to send mail' in C:\Program Files\wamp\php\libraries\Zend\Mail\Transport\Sendmail.php:101 Stack trace: #0 C:\Program Files\wamp\php\libraries\Zend\Mail\Transport\Abstract.php(333): Zend_Mail_Transport_Sendmail->_sendMail() #1 C:\Program Files\wamp\php\libraries\Zend\Mail.php(648): Zend_Mail_Transport_Abstract->send(Object(Zend_Mail)) #2 C:\Program Files\wamp\www\siroco\application\controllers\IndexController.php(21): Zend_Mail->send() #3 C:\Program Files\wamp\php\libraries\Zend\Controller\Action.php(497): IndexController->indexAction() #4 C:\Program Files\wamp\php\libraries\Zend\Controller\Dispatcher\Standard.php(238): Zend_Controller_Action->dispatch('indexAction') #5 C:\Program Files\wamp\php\libraries\Zend\Controller\Front.php(920): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) #6 C:\Program Files\wamp\www\siroco\html\index.php(37): Zend_Controller_Front->disp in C:\Program Files\wamp\php\libraries\Zend\Mail\Transport\Sendmail.php on line 101

    donc j'ai abandonné Zend, et j'ai tenté plusieurs autres trucs dont

    <?php
    if($_POST){
    //Récupération des données du formulaire----------------------------
    $prenom = $_POST["prenom"];
    $nom = $_POST["nom"];
    $email = $_POST["email"];
    $tel = $_POST["tel"];
    $message = $_POST["message"];
    $subject = $_POST["subject"];
    //------------------------------------------------------------------

    //Gestion des erreurs de saisie-------------------------------------
    $erreurs = array();
    if( empty($prenom)) $erreurs = "il manque votre prénom";
    if( empty($nom)) $erreurs = "il manque votre nom";
    if( empty($email)) $erreurs = "il manque votre email";
    if( empty($tel)) $erreurs = "il manque votre téléphone";
    if( empty($message)) $erreurs = "il manque votre message";
    //------------------------------------------------------------------

    if(empty($erreurs)) {
    $from = $email;
    $reply = $from;
    $to = "archeus.monmail@free.fr"; //Mettez l'email de destination ici

    //Mise en forme du contenu au format HTML-----------------------
    $contenu = "message de : ".$prenom." ".$nom;
    $contenu .= "<br /> Tel: ".$tel;
    $contenu .= "<br /> Message: <br />";
    $contenu .= $message;
    //--------------------------------------------------------------

    //Entêtes de formatage de l'email en mode HTML------------------
    $headers = 'MIME-Version: 1.0' . "\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\n";
    $headers .= 'From: '.$from."\n";
    $reply = $headers."Reply-to: ".$reply."\n";
    //---------------------------------------------------------------

    //Déclenchement de l'email et reroutage vers une autre page-----
    $resultat = mail($to, $subject, $contenu, $reply);

    if($resultat) {
    echo "email envoyé";
    } else {
    echo "Echec dans l'envoi de l'email";
    }

    } else {
    $texte_erreur = implode("<br />",$erreurs);
    print $texte-erreur;
    }

    }

    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Envoi d'email</title>
    </head>

    <body>
    <form action="<?php print $_SERVER["PHP_SELF"]; ?>" method="post" enctype="multipart/form-data" name="form1" id="form1">
    <table width="100%" border="0" cellspacing="1" cellpadding="2">
    <tr>
    <td width="19%">Prénom : </td>
    <td width="81%"><input name="prenom" type="text" id="prenom" value="<?php print $prenom; ?>" size="50" maxlength="100" /></td>
    </tr>
    <tr>
    <td>Nom : </td>
    <td><input name="nom" type="text" id="nom" value="<?php print $nom; ?>" size="50" maxlength="100" /></td>
    </tr>
    <tr>
    <td>Téléphone : </td>
    <td><input name="tel" type="text" id="tel" value="<?php print $tel; ?>" size="50" maxlength="50" /></td>
    </tr>
    <tr>
    <td>Votre email : </td>
    <td><input name="email" type="text" id="email" value="<?php print $email; ?>" size="50" maxlength="100" /></td>
    </tr>
    <tr>
    <td valign="top">Sujet du message : </td>
    <td><input name="subject" type="text" id="subject" value="<?php print $subject; ?>" size="50" maxlength="100" /></td>
    </tr>
    <tr>
    <td valign="top">Texte du message : </td>
    <td><textarea name="message" cols="38" rows="10" id="message"><?php print $message; ?></textarea></td>
    </tr>
    <tr>
    <td colspan="2"> <input type="submit" style="margin-left:200px;" name="Submit" value="Envoyer le message" /> </td>
    </tr>
    </table>
    </form>
    </body>
    </html>

    code pris sur http://www.intras.fr/tutoriels/formation-php-formulaire-email.php
    et j'ai

    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\wamp\www\export\formulaire-prise-contact.php on line 41
    Echec dans l'envoi de l'email
    1
  3. le père
     
    Bonjour

    Peux-tu montrer ton script et donner quelques informations : message d'erreur, comportement innattendu...
    0
  4. Archeus01 Messages postés 1566 Date d'inscription   Statut Membre Dernière intervention   455
     
    Ok, je me suis renseigné (je suis en stage en entreprise alors c'est pas simplement un truc du genre smtp.free.fr que je peux trouver facilement ^^').
    j'éditerai mon message dans 2-3 minutes pou dire si ça marche

    [Edit]
    voila la réponse :( :
    Warning: mail() [function.mail]: SMTP server response: 550 5.7.1 Unable to relay for archeus.frederic@free.fr in C:\Program Files\wamp\www\export\formulaire-prise-contact.php on line 41
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. le père
     
    Si tu as un client email dans ta machine (outlook express) avec un compte qui marche, regarde ce qu'il y a comme serveur SMTP (Outils / comptes / propriétés / serveurs)
    0
  7. Archeus01 Messages postés 1566 Date d'inscription   Statut Membre Dernière intervention   455
     
    C'est bon, on m'a donné l'information et je l'ai remplacé dans php.ini (mais on n'a pas voulu me dire comment la trouver et outlook express n'était pas configuré, j'y accède par webmail.). A la limite, maintenant que je l'ai , je m'en fous ^^ de savoir comment l'obtenir.
    Tout marche, même le code avec Zend ^^.
    Merci beaucoup
    0
  8. mokninoi
     
    Bonjour,
    j'aimerais envoyer un mail depuis un script php,mais ceci fonctionne bien lorsque je fais l'hebergement sur un site de type www.site.com
    Par contre il ne fonctionne jamais orsque je fais l'hebergement sur un site de type www.site.com.tn
    merci de me repondre
    0
  9. real_achilles Messages postés 48 Statut Membre 4
     
    salut
    pour ta question a propos des site ***.tn
    .tn = tunisie
    le port 25 de l smtp est bloqué en Tunisie je sais pas pourquoi je suis tunisien aussi et c'est l'ati qui le bloque
    0
  10. Aurel
     
    Je viens de tomber sur ce topic un peu ancien. Mais au cas où ça peut aider, il y a un tuto complet pour envoyer un mail en PHP sans qu'il finisse dans les indésirables ici :

    http://www.webtuto.fr/tuto-envoyer-un-mail-en-php-formulaire/
    0