Envoyer un courrier depuis une page web.
    En étudiant le code source du fichier forum.html qui est généré automatiquement quand on crée un forum sur Altern, on découvre (merci Padigon) la fonction smtpsend qui n'est documentée nulle part, encore moins dans la doc PHP puisqu'elle a dû être implantée par Valentin le webmaster d'Altern lui-même.

    Et pourtant elle est bien pratique puisqu'elle permet d'envoyer automatiquement un message depuis une page web.

    Attention, ce script est donné sous toutes réserves...
    Le comportement de smtpsend est très variable (à cause de ceux qui utilisent altern.org pour envoyer des spams). Aux dernières nouvelles, on ne pouvait envoyer un courrier qu'aux adresses ...@altern.org. Du coup, le script perd beaucoup de son utilité.

    Voici la syntaxe telle qu'elle apparaît dans le fichier forum.html :

    /* 
    $dest est le destinataire du message 
    */
    $dest = "$user-$forum";
    
    /*
     smtpsend permet aussi d'envoyer un fichier avec le message.
     On doit lui fournir 6 paramètres :
       $from : l'adresse email de l'expéditeur du message (attention
               depuis la campagne de spam qu'a subi Altern, le champ $from
               doit impérativement être présent et contenir au moins le caractère @ 
               sinon smptsend n'envoie aucun message et exprime son
               mécontentement par un message d'erreur.)
       $nom : le nom de l'expéditeur du message.
       $dest : l'adresse email du destinataire du message.		   
       $sujet : l'objet du message
       $texte : le corps du message
       $attach (optionnel) : les paramètres liés au fichier attaché s'il y
               en a un, une chaîne vide (" "), s'il n'y en a pas.
    */
    if ($userfile == "none");
      /* 
      S'il n'y a pas de fichier attaché
      */
      $res = smtpsend($from,$nom,$dest,$sujet,$texte," ");
    else;
      /* 
      sinon on commence par préciser quelques renseignements relatifs au fichier 
      attaché (son emplacement sur le disque dur de celui qui l'expédie pour
      pouvoir l'envoyer vers le serveur, le nom qu'il prendra, et son type mime).
      */
      $attach = "$userfile;$userfile_name;$userfile_type";
      $res = smtpsend($from,$nom,$dest,$sujet,$texte,$attach);
      /*
      Quand le message a été envoyé, on supprime le fichier qui a été stocké dans
      un emplacement temporaire sur le serveur.
      */
      unlink($userfile);
    endif;
    


    Ci-dessous vous trouverez un exemple de script qui récupère les données d'un formulaire et les envoie sous forme d'email grâce à smtpsend. Pensez à modifier le contenu de $dest pour qu'il contienne votre adresse email.

    <HTML>
    <BODY>
    <?
    if (!$envoi) ; 
    >
    <FORM enctype="multipart/form-data" ACTION="<? echo $PHP_SELF; >" METHOD=POST>
    <TABLE CELLPADDING=2 CELLSPACING=0 BORDER=1>
    <TR><TD ALIGN=RIGHT>Votre nom : </TD>
    <TD><INPUT TYPE="text" NAME="nom"></TD>
    </TR>
    <TR><TD ALIGN=RIGHT>Votre email : </TD>
    <TD><INPUT TYPE="text" NAME="from"></TD>
    </TR>
    <TR><TD COLSPAN=2 ALIGN=CENTER>
    Commentaires éventuels (255 caractères max.)<BR>
    <TEXTAREA NAME="comment" COLS=60 ROWS=3></TEXTAREA>
    </TD></TR>
    </TABLE>
    <P><CENTER><INPUT TYPE="submit" NAME="envoi" VALUE="Envoyer">
    <INPUT TYPE="reset" VALUE="Annuler"></center></P>
    </FORM>
    
    <?
    else ;
    
    echo "<HR NOSHADE SIZE=1>";
    if ( ($from == "") || (!eregi("@",$from)) ) ;
      echo "Votre adresse email, svp... Retournez à la page précédente et vérifiez votre saisie";
      echo "</BODY></HTML>";
      exit;
    endif;
    if (strlen($comment) > 255);
      echo "Commentaires trop longs... Retournez à la page précédente et vérifiez votre saisie";
      echo "</BODY></HTML>";
      exit;
    endif;
    
    /* Attention dans le corps du message, chaque passage à la ligne
    doit être fait avec \r\n */
    $texte =  "Test de courrier sur Altern\r\n";
    $texte += "-----\r\n";
    $texte += "Nom : $nom\r\n";
    $texte += "Email : $from\r\n";
    $texte += "Commentaires : $comment\r\n";
    $texte += "-----\r\n\r\n";
    
    $dest = "???@???????.???"; 
    
    $res = smtpsend($from,$nom,$dest,"Test de courrier",$texte," ");
    
    echo "<P>Merci...";
    >
    </BODY>
    </HTML>
    


    Autre exemple : le même que le premier mais avec envoi de fichier attaché.

    <HTML>
    <BODY>
    <?
    if (!$envoi) ; 
    >
    <FORM enctype="multipart/form-data" ACTION="<? echo $PHP_SELF; >" METHOD=POST>
    <TABLE CELLPADDING=2 CELLSPACING=0 BORDER=1>
    <TR><TD ALIGN=RIGHT>Votre nom : </TD>
    <TD><INPUT TYPE="text" NAME="nom"></TD>
    </TR>
    <TR><TD ALIGN=RIGHT>Votre email : </TD>
    <TD><INPUT TYPE="text" NAME="from"></TD>
    </TR>
    <TR><TD COLSPAN=2 ALIGN=CENTER>
    <INPUT NAME="userfile" TYPE="file">
    </TD></TR>
    <TR><TD COLSPAN=2 ALIGN=CENTER>
    Commentaires éventuels (255 caractères max.)<BR>
    <TEXTAREA NAME="comment" COLS=60 ROWS=3></TEXTAREA>
    </TD></TR>
    </TABLE>
    <P><CENTER><INPUT TYPE="submit" NAME="envoi" VALUE="Envoyer">
    <INPUT TYPE="reset" VALUE="Annuler"></center></P>
    </FORM>
    
    <?
    else ;
    
    echo "<HR NOSHADE SIZE=1>";
    if ( ($from == "") || (!eregi("@",$from)) ) ;
      echo "Votre adresse email, svp... Retournez à la page précédente et vérifiez votre saisie";
      echo "</BODY></HTML>";
      exit;
    endif;
    if (strlen($comment) > 255);
      echo "Commentaires trop longs... Retournez à la page précédente et vérifiez votre saisie";
      echo "</BODY></HTML>";
      exit;
    endif;
    
    /* Attention dans le corps du message, chaque passage à la ligne
    doit être fait avec \r\n */
    $texte =  "Test de courrier sur Altern\r\n";
    $texte += "-----\r\n";
    $texte += "Nom : $nom\r\n";
    $texte += "Email : $from\r\n";
    $texte += "Commentaires : $comment\r\n";
    $texte += "-----\r\n\r\n";
    
    $dest = "???@???????.???"; 
    
    if ($userfile == "none");
      $res = smtpsend($from,$nom,$dest,"Test de courrier",$texte," "); 
    else;
      $attach = "$userfile;$userfile_name;$userfile_type";
      $res = smtpsend($from,$nom,$dest,"Test de courrier",$texte,$attach);
      unlink($userfile); 
    endif;
    
    echo "<P>Merci...";
    >
    </BODY>
    </HTML>
    

    Page consultée fois.