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 :

[Mail] pour l'envoi d'email


Sujet :

Langage PHP

  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut [Mail] pour l'envoi d'email
    je n'arrive pas a envoyer d email:
    voici mon form
    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
    28
    <table width="500" border="0" cellspacing="0" cellpadding="0">
    <form action="envoi.php" method="post" enctype="application/x-www-form-urlencoded" name="formulaire">
    <tr>                
    <td colspan="3">Envoyer un message</td>
    </tr>
    <tr>
    <td><div align="right">Votre nom</div></td>
    <td colspan="2"><input type="text" name="nom" size="45" maxlength="100"></td>
    </tr>
    <tr>                
    <td width="17%"><div align="right">Votre mail</div></td>
    <td colspan="2"><input type="text" name="mail" size="45" maxlength="100"></td>
    </tr>
    <tr>                
    <td><div align="right">Sujet :</div></td>
    <td colspan="2"><input type="text" name="objet" size="45" maxlength="120"></td>
    </tr>
    <tr>                
    <td><div align="right">Message :</div></td>
    <td colspan="2"><textarea name="message" cols="50" rows="10"></textarea></td>
    </tr>
    <tr>                
    <td></td>
    <td width="42%"><center><input type="reset" name="Submit" value="Réinitialiser le formulaire"></center></td>
    <td width="41%"><center><input type="submit" name="Submit" value="Envoyer"></center></td>
    </tr>
    </form>
    </table>
    et mon traitement:
    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
    <?php 
    $nom=$HTTP_POST_VARS['nom']; 
    $mail=$HTTP_POST_VARS['mail']; 
    $objet=$HTTP_POST_VARS['objet']; 
    $message=$HTTP_POST_VARS['message']; 
     
    /////voici la version Mine 
    $headers = "MIME-Version: 1.0\r\n"; 
     
    //////ici on détermine le mail en format text 
    $headers .= "Content-type: text/plain; charset=iso-8859-1\r\n"; 
     
    ////ici on détermine l'expediteur et l'adresse de réponse 
    $headers .= "From: $nom <$mail>\r\nReply-to : $nom <$mail>\nX-Mailer:PHP"; 
     
    $subject="$objet"; 
    $destinataire="julienpuntous@hotmail.fr"; 
    $body="$message"; 
    if (mail($destinataire,$subject,$body,$headers)) { 
    echo "Votre mail a été envoyé"; 
    } else { 
    echo "Une erreur s'est produite"; 
    } 
    ?>

    et voici le message derreur obtenu:

    Warning: mail(): SMTP server response: 530 authentication required - for help go to http://help.yahoo.com/help/us/mail/pop/pop-11.html in c:\program files\easyphp1-8\www\projet\envoi.php on line 19
    Une erreur s'est produite
    je precise que j'ai configurer mon php.ini comme ceci:

    smtp_port = 587

    SMTP =smtp.mail.yahoo.com


    ; For Win32 only.
    sendmail_from = perarnaudlaurent@yahoo.fr
    merci d'avance pasque je ne m'en sors pas

  2. #2
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    il suffit de prendre le messsage d'erreur a la lettre :
    Warning: mail(): SMTP server response: 530 authentication required
    il faut que tu t'identifie sur le serveur smtp (oui maintenant les FAI demande ce genre de choses pour lutter contre le spam en principe)

    va falloir chercher dans la doc comment s'identifier ou changer de serveur smtp (peut etre en utilisant un smtp perso c'est pas mal non plus !)

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    je complete j'ai essaye avec d'autre sfai j'ai pas reussi non plus et avec un serveur perso ca me parait impossible c'est un projet a rendre

    Pour l'dentification j'ai rien trouvé de valable je suis dessus depuis hier je m'en sors pas

  4. #4
    Invité
    Invité(e)
    Par défaut
    Je ne suis pas un pro en négociation smtp mais avec la fonction mail() il ne serait pas possible d'envoyer des en-têtes additionnels pour s'authentifier?

    bool mail ( string to, string subject, string message [, string additional_headers [, string additional_parameters]] )
    webrider

  5. #5
    Invité
    Invité(e)
    Par défaut
    Voici une réponse à ta question trouvée sur php.net... La fonction développée crée un socket vers le serveur et envoie des headers spécifiques pour l'authentification smtp. A mon avis ça doit aussi fonctionner avec la fonction mail() de php comme je l'ai dit dans mon post précédent.

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    // modified to provide authenticated logins
    function mymail($to,$subject,$message,$headers)
    {
     
      // set as global variable
      global $GLOBAL;
     
      // get From address
      if ( preg_match("/From:.*?[A-Za-z0-9\._%-]+\@[A-Za-z0-9\._%-]+.*/", $headers, $froms) ) {
         preg_match("/[A-Za-z0-9\._%-]+\@[A-Za-z0-9\._%-]+/", $froms[0], $fromarr);
         $from = $fromarr[0];
      }
     
      // Open an SMTP connection
      $cp = fsockopen ($GLOBAL["SMTP_SERVER"], $GLOBAL["SMTP_PORT"], &$errno, &$errstr, 1);
      if (!$cp)
       return "Failed to even make a connection";
      $res=fgets($cp,256);
      if(substr($res,0,3) != "220") return "Failed to connect";
     
      // Say hello...
      fputs($cp, "HELO ".$GLOBAL["SMTP_SERVER"]."\r\n");
      $res=fgets($cp,256);
      if(substr($res,0,3) != "250") return "Failed to Introduce";
     
      // perform authentication
      fputs($cp, "auth login\r\n");
      $res=fgets($cp,256);
      if(substr($res,0,3) != "334") return "Failed to Initiate Authentication";
     
      fputs($cp, base64_encode($GLOBAL["SMTP_USERNAME"])."\r\n");
      $res=fgets($cp,256);
      if(substr($res,0,3) != "334") return "Failed to Provide Username for Authentication";
     
      fputs($cp, base64_encode($GLOBAL["SMTP_PASSWORD"])."\r\n");
      $res=fgets($cp,256);
      if(substr($res,0,3) != "235") return "Failed to Authenticate";
     
      // Mail from...
      fputs($cp, "MAIL FROM: <$from>\r\n");
      $res=fgets($cp,256);
      if(substr($res,0,3) != "250") return "MAIL FROM failed";
     
      // Rcpt to...
      fputs($cp, "RCPT TO: <$to>\r\n");
      $res=fgets($cp,256);
      if(substr($res,0,3) != "250") return "RCPT TO failed";
     
      // Data...
      fputs($cp, "DATA\r\n");
      $res=fgets($cp,256);
      if(substr($res,0,3) != "354") return "DATA failed";
     
      // Send To:, From:, Subject:, other headers, blank line, message, and finish
      // with a period on its own line (for end of message)
      fputs($cp, "To: $to\r\nFrom: $from\r\nSubject: $subject\r\n$headers\r\n\r\n$message\r\n.\r\n");
      $res=fgets($cp,256);
      if(substr($res,0,3) != "250") return "Message Body Failed";
     
      // ...And time to quit...
      fputs($cp,"QUIT\r\n");
      $res=fgets($cp,256);
      if(substr($res,0,3) != "221") return "QUIT failed";
     
      return true;
    }
    webrider

Discussions similaires

  1. configuer sugarcrm pour l'envoie d'email
    Par fleure dans le forum SugarCRM
    Réponses: 1
    Dernier message: 06/01/2010, 23h10
  2. Réponses: 0
    Dernier message: 24/12/2008, 05h51
  3. Réponses: 2
    Dernier message: 28/11/2007, 14h34
  4. Modifier la police pour l'envoi d'email
    Par tahiti17000 dans le forum VBA Access
    Réponses: 2
    Dernier message: 08/08/2007, 21h09
  5. [Mail] PHP et envoi d'email avec PHPmailer
    Par dolf13 dans le forum Langage
    Réponses: 6
    Dernier message: 14/07/2006, 00h51

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