Fonction mail avec socket et comportement différent sous EasyPHP et Apache sous

DaCodeManiak Messages postés 3 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 17 janvier 2011 - 12 nov. 2007 à 17:29
DaCodeManiak Messages postés 3 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 17 janvier 2011 - 13 nov. 2007 à 06:48
Voilà... depuis le début de la journée, je me prends la tête pour trouver la raison pour laquelle, un script fonctionne à merveille sous XP / EasyPHP et refuse de de fonctionner sous Debian sur le serveur de prod.

En résumé...

Le code suivant :
       // Envoi le PDF par mail au différents contacts
        $mailer = new mail(false,"\n");
        $mailer->setServerConfig(MAIL_SERVER,25);
        $mailer->setMimeType(3); // Multipart avec pièce jointe
        $mailer->set_ehlo_value("toto.fr"); // Message de présentation au serveur SMTP
        $mailer->set_smtp_from_address("[mailto:info@toto.fr info@toto.fr]");
       
        // Remplacer par le destinataire définitif
        $mailer->set_rcpt_to_address($_SESSION["web_user"]->mail_address);
       
        $mailer->setsubject("Confirmation de réservation");
       
        $mailer->from("[mailto:mon_adresse@monserveur.com","Réservation mon_adresse@monserveur.com","Réservation]");
       
        // Remplacer par le destinataire du mail tiré du compte client
        $mailer->to($_SESSION["web_user"]->client_nom_raison_sociale,$_SESSION["web_user"]->mail_address);       
       
        // Ajoute le fichier PDF généré
        $mailer->addAttachment($file_manager);
       
        $mailer->setbody("Un texte quelconque");
       
        // Procède à l'envoi proprement dit
        if(!$mailer->send()){
          echo "Erreur d'envoi du mail
\n";
        } // Force l'envoi par la fonction mail

FOnctionne très bien sous XP mais le mail n'est pas du tout envoyé lorsque je bascule en mode prod sous Debian/Apache2

SI je passe en commentaire la méthode addAttachment, le mail part bien... La méthode addAttachement est incluses dans une classe mail dérivée de PHP_Mailer.

SI quelqu'un a une idée ou est tombé sur un problème de ce genre, je suis preneur...


 


Merci
DaCodeMaNIaK

2 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
12 nov. 2007 à 22:32
Hello,

difficile de t'aider sans voir la classe que tu utilises, parce que le problème vient d'elle, pas de ce code-ci.
En général, les probèmes de ce genre proviennent des headers...vérifie tes line feeds. Test \r\n et \n\n.
0
DaCodeManiak Messages postés 3 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 17 janvier 2011
13 nov. 2007 à 06:48
Yes... Effectivement, je n'ai pas inclu la classe mail, mais je vais remédier à ça de suite...

Le code est le suivant, et il est vrai que je me demande si le problème ne vient pas des séparateurs même si.... même si un autre script, incluant lui aussi une pièce jointe en csv de taille très réduite fonctionne très bien... Bref... Voilà le code de la classe mail :

<?
/******************************************************************************/
/* Nom                              : mail.class.php                          */
/* Auteur                           : Dièse Include                           */
/* Date                             : Juin 2007                               */
/* Projet                           : Framework Dièse Include                 */
/* Objet                            : classe pour la gestion des mails        */
/******************************************************************************/



class mail {
    /**************************************************************************/
    /* Définition des propriétés                                              */
    /**************************************************************************/
    var $smtp_from_address  = ""; // Adresse à utiliser
    var $rcpt_to_address    = array(); // Destinataire du protocole SMTP
    var $ehlo_value         = ""; // Valeur du ehlo à transmettre
   
    var $from               = ""; // Adresse de l'émetteur du message
    var $fromname           = ""; // Nickname de l'émetteur du message
   
    var $to                 = array(); // Adresses des destinataires du message
      // Tableau contenant les couples to_address | to_name
         
    var $subject      = ""; // Sujet du message
   
    var $body         = ""; // Corps du message (partie texte)
    var $html_body    = ""; // Corps HTML du message multipart
   
    var $defaultMime  = ""; // Type MIME complet pour l'envoi du message
   
    var $returnPath   = "";  // Adresse de retour pour les erreurs
   
    var $reply_to     = "";  // Adresse de réponse pour les messages



    var $headers      = array(); // En-tête additionnelles
   
    var $attachments  = array(); // Stocke les pièces jointes éventuelles
   
    var $separator    = ""; // Séparateur pour les données du message



    var $server       = "127.0.0.1"; // Adresse du serveur de mail
    var $port         = 25; // Port SMTP à utiliser



    var $debug        = false; // Gère le mode debug pour l'affichage de la transaction SMTP
    var $debugLine    = ""; // Ligne de debogage



    var $boundary     = ""; // Délimiteur pour les mails en multipart/alternative



    /**************************************************************************/
    /* Implémentation                                                         */
    /**************************************************************************/
   
    /**************************************************************************/
    /* Constructeur : void mail(bool $debug=false,string $header_sep="\r\n")  */
    /* Paramètres   :                                                         */
    /*    bool $debug=false => permet d'afficher le résultat du processus     */
    /*    string $header_sep="\r\n" => séparateur des commandes SMTP          */
    /* Valeur de retour :                                                     */
    /**************************************************************************/
    function mail($debug=false, $header_sep="\r\n") {
        $this->debug = $debug;
        $this->separator = $header_sep;
       
        return;
    }
   
    /**************************************************************************/
    /* public bool send(bool force_using_internal=false)                      */
    /*  @access public                                                        */
    /*  @type Méthode d'envoi d'un courrier électronique                      */
    /*  @param optional bool $force_using_internal = false                    */
    /*    Permet de forcer l'utilisation de la fonction native mail           */
    /* Valeur de retour :                                                     */
    /*    booléen => valide ou non l'envoi du message                         */
    /* Objet : envoie le mail en fonction des paramètres définis              */
    /*    en utilisant les fonctions socket de PHP                            */
    /* RFC : tous les serveurs n'acceptent pas les fonction sockets           */
    /*    Prévoir un contrôle pour rebasculer sur la fonction mail() de PHP   */
    /**************************************************************************/
    function send($force_using_internal=false){
        /**********************************************************************/
        /* Déclaration des variables locales                                  */
        /**********************************************************************/
        $smtpCnx          = null; // Objet de liaison SMTP
        $use_std_mail     = false; // Vrai si utilisation de la fonction mail() native
       
        $email_message    = ""; // Variables utilisées pour la fonction native mail()
        $email_header     = "";
        $email_to         = "";
        $email_subject    = "";
        /**********************************************************************/
        /* Implémentation                                                     */
        /**********************************************************************/
        $smtpCnx = fsockopen($this->server,$this->port,$errno,$errtext,60);
       
        #stream_set_timeout($smtpCnx,60); // Définit le timeout nécessaire pour l'envoi des messages
       
        if(!$smtpCnx){
            $use_std_mail = true;
        }
       
        // Mise à jour Nov. 2007
        if($force_using_internal)
          $use_std_mail = true;
         
        if(!($use_std_mail)){
          /**********************************************************************/
          /* Initialisation de la transaction SMTP                              */
          /**********************************************************************/
          fputs($smtpCnx,"ehlo " . $this->ehlo_value . $this->separator); // Début de transaction
          $this->debugLine = " helo " . $this->ehlo_value . "
" . fgets($smtpCnx,1024). "
";
         
          fputs($smtpCnx,"mail from: " . $this->smtp_from_address . $this->separator); // Définit l'émetteur
          $this->debugLine . = "mail from : " . $this->smtp_from_address . "
" . fgets($smtpCnx,1024) . "
";
         
          // Génère la liste des destinataires
          for($i= 0;$i<sizeof($this->rcpt_to_address);$i++){
            fputs($smtpCnx,"rcpt to: " . $this->rcpt_to_address[$i] . $this->separator); // Définit le destinataire
            $this->debugLine .= "rcpt to: " . $this->rcpt_to_address[$i] . "
" . fgets($smtpCnx,1024) . "
";
          }
                 
          /**********************************************************************/
          /* Ajout des données                                                  */
          /**********************************************************************/       
          fputs($smtpCnx,"data" . $this->separator); // Débute les données du message
          $this->debugLine . = " data
" . fgets($smtpCnx,1024) . "br/>";
 
          fputs($smtpCnx,$this->returnPath); // Définit l'adresse de renvoi des erreurs d'envoi
          $this->debugLine . = $this->returnPath . "
";
 
          fputs($smtpCnx,$this->reply_to); // Définit l'adresse de réponse
          $this->debugLine .= $this->reply_to . "
";
         
          fputs($smtpCnx,$this->defaultMime); // Définit le type du message à envoyer
          $this->debugLine .= $this->defaultMime . "
";
         
          fputs($smtpCnx,"from: " . $this->fromname . " " . $this->from . $this->separator); // En-têtes obligatoires
          $this->debugLine .= " from: " . $this->fromname . " " . $this->from . "
";
         
          // Les detinataires peuvent être plusieurs
          if(sizeof($this->to) > 0){
            for($i =0;$i<sizeof($this->to);$i++){
              if($this->to[$i]["to_name"] != "")
                $email_to .= $this->to[$i]["to_name"] . " ";
              else
                $email_to .= $this->to[$i]["to_address"];
             
              $email_to .= "<" . $this->to[$i]["to_address"] . ">,"; 
            }
          } else {
            // Génère la liste des destinataires
            for($i=0;$i<sizeof($this->rcpt_to_address);$i++){
              $email_to .= $this->rcpt_to_address[$i] . " <" . $this->rcpt_to_address[$i] . ">,";
            }           
          }
          // Supprime la dernière virgule inutile
          $email_to = substr($email_to,0,strlen($email_to)-1);
          // Envoie l'information au socket courant
          fputs($smtpCnx,"to: " . $email_to . $this->separator); // en-tête obligatoires
          $this->debugLine .= " to: &nbsp;
 " . $email_to . "

\n";
         
          fputs($smtpCnx,"subject: " . $this->subject . $this->separator);
          $this->debugLine . = "subject: " . $this->subject . "
";
         
          // En-têtes supplémentaires
          for($i= 0;$i<sizeof($this->headers);$i++){
              fputs($smtpCnx,$this->headers[$i] . $this->separator);
              $this->debugLine .= $this->headers[$i] . "
";
          }
 
          // Contenu du message : sujet et contenu
          if(strstr($this->defaultMime,"multipart")){
            fputs($smtpCnx,$this->getBoundary()); // Ajout le délimiteur
            fputs($smtpCnx,$this->getMimePart().$this->separator); // Type du message
          }
          fputs($smtpCnx,$this->body . $this->separator);
          $this->debugLine .= " Contenu texte du message : " . $this->body . "

";
         
          if($this->html_body ! = ""){
            if(strstr($this->defaultMime,"alternative")){
              fputs($smtpCnx,$this->getBoundary()); // Ajout le délimiteur
              fputs($smtpCnx,$this->getMimePart(1).$this->separator); // text/html 
              fputs($smtpCnx,$this->html_body . $this->separator);
              $this->debugLine .= " Contenu html du message : " . $this->html_body . "

";         
            }       
          }
         
          // Ajoute les éventuelles pièces jointes
          for($i =0;$i<sizeof($this->attachments);$i++){
              fputs($smtpCnx,$this->attachments[$i] . $this->separator);
              $this->debugLine .= "Ajout des pièces jointes
";
          }
                 
          // Termine le message
          fputs($smtpCnx,"." . $this->separator);
 
          // Quitte la session SMTP
          fputs($smtpCnx,"QUIT" . $this->separator);
          $this->debugLine .= " QUIT
" . fgets($smtpCnx,1024) . " br/>";
 
          // Ferme le flux ouvert
          fclose($smtpCnx);
 
          if($this->debug)
              $this->debugtoHTML();
 
          return true;
        } else { // Utilisation de la fonction mail() native de PHP
          $email_message = $this->returnPath . $this->separator;
          $email_message .= $this->reply_to . $this->separator;
          $email_message .= $this->defaultMime . $this->separator;
          $email_message .= "from: " . $this->fromname . " " . $this->from . $this->separator;



          // Génère les en-têtes du message
          for($i=0;$i<sizeof($this->headers);$i++){
            $email_header .= $this->headers[$i];
          }
          // Contenu du message : sujet et contenu
          if(strstr($this->defaultMime,"multipart")){
            $email_message .= $this->getBoundary();
            $email_message .= $this->getMimePart().$this->separator;
          }
          $email_message .= $this->body . $this->separator;
          if($this->html_body != ""){
            if(strstr($this->defaultMime,"alternative")){
              $email_message .= $this->getBoundary();
              $email_message .= $this->getMimePart(1) . $this->separator;       
              $email_message .= $this->html_body . $this->separator;
            }       
          }
          // Ajoute les éventuelles pièces jointes
          for($i=0;$i<sizeof($this->attachments);$i++){
              $email_message .= $this->attachments[$i] . $this->separator;
          }
          // Envoie du mail en mode PHP natif
          $email_to = $this->toname . " " . $this->to;
          $email_subject = $this->subject;
          return mail($email_to,$email_subject,$email_message,$email_header);        
        }
       
    }
   
    /**************************************************************************/
    /* public void set_smtp_from_address(string smtp_from_name)               */
    /*  @access public                                                        */
    /*  @type setter                                                          */
    /*  @param string $smtp_from_name                                         */
    /*  @return void                                                          */
    /*  @abstract Définit l'attribut $this->smtp_from_address                 */
    /**************************************************************************/
    function set_smtp_from_address($smtp_from_address){
      /************************************************************************/
      /* Déclaration des variables locales                                    */
      /************************************************************************/
     
      /************************************************************************/
      /* Implémentation                                                       */
      /************************************************************************/
      $this->smtp_from_address = $smtp_from_address;
     
      return;
    }
   
    /**************************************************************************/
    /* public void set_smtp_rcpt_to_address(mixed rcpt_to_address)            */
    /*  @access public                                                        */
    /*  @type setter                                                          */
    /*  @param mixed $rcpt_to_address                                         */
    /*  @return void                                                          */
    /*  @abstract Définit l'attribut $this->rcpt_to_address                   */
    /**************************************************************************/
    function set_rcpt_to_address($rcpt_to_address){
      /************************************************************************/
      /* Déclaration des variables locales                                    */
      /************************************************************************/
     
      /************************************************************************/
      /* Implémentation                                                       */
      /************************************************************************/
      if(!is_array($rcpt_to_address))
        $this->rcpt_to_address[] = $rcpt_to_address; // Ajout un destinataire à la liste
      else
        $this->rcpt_to_address = $rcpt_to_address;
     
      return;
    }
   
    /**************************************************************************/
    /* public void set_ehlo_value(string ehlo_value)                          */
    /*  @access public                                                        */
    /*  @type setter                                                          */
    /*  @param string $ehlo_value => valeur de courtoisie serveur             */
    /*  @return void                                                          */
    /*  @abstract Définit l'attribut $this->ehlo_value                        */
    /**************************************************************************/
    function set_ehlo_value($ehlo_value){
      /************************************************************************/
      /* Déclaration des variables locales                                    */
      /************************************************************************/
     
      /************************************************************************/
      /* Implémentation                                                       */
      /************************************************************************/
      $this->ehlo_value = $ehlo_value;
     
      return;
    }
   
    /**************************************************************************/
    /* Méthode    : void to(string $to,string $to_name="")                    */
    /* Paramètres :                                                           */
    /*    string $to => adresse e-mail du destinataire                        */
    /*    string $to_name => nom en clair du destinataire (optionnel)         */
    /* Valeur de retour :                                                     */
    /* Objet : Ajoute un destinataire à la liste des destinataires            */
    /**************************************************************************/
    function to($to,$toname=""){
      /************************************************************************/
      /* Définition des variables locales                                     */
      /************************************************************************/
      $temp_array         = array(); // Tableau temporaire pour la définition
     
      /************************************************************************/
      /* Implémentation                                                       */
      /************************************************************************/
      $temp_array["to_address"] = $to;
     
      if(strlen($toname))
         $temp_array["to_name"] = $toname;
      else
        $temp_array["to_name"] = "";
       
      $this->to[] = $temp_array;
    
      return;
    }



    /**************************************************************************/
    /* Méthode    : void from(string $from,string $from_name="")              */
    /* Paramètres :                                                           */
    /*    string $from => adresse e-mail de l'émetteur                        */
    /*    string $from_name => nom en clair de l'émetteur (optionnel)         */
    /* Valeur de retour :                                                     */
    /* Objet : Défini l'émetteur du message                                   */
    /**************************************************************************/
    function from($from,$fromname=""){
        if(strlen($fromname))
            $this->fromname = ""$fromname""; // Nom en clair affiché
       
        $this->from = "<$from>"; // Adresse de l'émetteur
       
        if($this->debug){
          echo "Emétteur : " . $this->from . " ($from)
";
        }
       
        return;
    }



    /**************************************************************************/
    /* Méthode    : void setsubject(string $subject)                          */
    /* Paramètres :                                                           */
    /*    string $subject => sujet du message                                 */
    /* Valeur de retour :                                                     */
    /* Objet : Définit le sujet du message                                    */
    /**************************************************************************/
    function setsubject($subject){
        $this->subject = $subject;
       
        return;
    }



    /**************************************************************************/
    /* Méthode    : void setbody(string $body)                                */
    /* Paramètres :                                                           */
    /*    string $body => Corps du message                                    */
    /* Valeur de retour :                                                     */
    /* Objet : Définit le corps du message                                    */
    /**************************************************************************/
    function setbody($body){
        $this->body = $body;
       
        return;
    }
   
    /**************************************************************************/
    /* Méthode    : void sethtmlbody(string $body)                            */
    /* Paramètres :                                                           */
    /*    string $body => Corps du message                                    */
    /* Valeur de retour :                                                     */
    /* Objet : Définit le corps du message                                    */
    /**************************************************************************/
    function sethtmlbody($body){
        $this->html_body = $body;
       
        return;
    }



    /**************************************************************************/
    /* Méthode    : void replyto(string $replyto)                             */
    /* Paramètres :                                                           */
    /*    string $replyto => adresse de réponse                               */
    /* Valeur de retour :                                                     */
    /* Objet : Définit l'adresse de réponse aux messages envoyés              */
    /**************************************************************************/
    function replyto($replyto){
        $this->reply_to = "Reply-To: <" . $replyto . ">" . $this->separator;
       
        return;
    }



    /**************************************************************************/
    /* Méthode    : void addCc(string $cc)                                    */
    /* Paramètres :                                                           */
    /*    string $cc => adresse mail en copie conforme                        */
    /* Valeur de retour :                                                     */
    /* Objet : Ajoute une adresse de copie conforme                           */
    /**************************************************************************/
    function addCc($cc){
        array_push($this->headers, "Cc: <" . $cc . ">");
       
        return;
    }



    /**************************************************************************/
    /* Méthode    : void addBcc(string $bcc)                                  */
    /* Paramètres :                                                           */
    /*    string $bcc => adresse mail en copie invisible                      */
    /* Valeur de retour :                                                     */
    /* Objet : Ajoute une adresse de copie invisible                          */
    /**************************************************************************/
    function addBcc($bcc){
        array_push($this->headers, "Bcc: <" . $bcc . ">");
       
        return;
    }



    /**************************************************************************/
    /* Méthode    : void setPriority(int $priority)                           */
    /* Paramètres :                                                           */
    /*    int $priority => définit le niveau de priorité du message           */
    /* Valeur de retour :                                                     */
    /* Objet : Ajout le niveau de priorités aux en-têtes du message           */
    /**************************************************************************/
    function setPriority($priority){
        array_push($this->headers,"X-Priority: " . $priority);
       
        return;
    }



    /**************************************************************************/
    /* Méthode    : void seterrorMailPath(string $errorMailAdd)               */
    /* Paramètres :                                                           */
    /*    string $errorMailAdd => adresse e-mail de destination des erreurs   */
    /* Valeur de retour :                                                     */
    /* Objet : Définit l'adresse de retour des messages en erreur             */
    /**************************************************************************/
    function seterrorMailPath($errorMailAdd){
        $this->returnPath = "Return-Path: <" . $errorMailAdd . ">" . $this->separator;
       
        return;
    }



    /**************************************************************************/
    /* Méthode    : void setMimeType(int $type)                               */
    /* Paramètres :                                                           */
    /*    int $type => définit le type MIME du message à envoyer              */
    /*      0 => Texte plein                                                  */
    /*      1 : Texte/HTML                                                    */
    /*      2 : Multipart                                                     */
    /* Valeur de retour :                                                     */
    /* Objet : Définit le type MIME du message à envoyer                      */
    /**************************************************************************/
    function setMimeType($type=0){
        $this->defaultMime = "MIME-Version: 1.0" . $this->separator . "Content-Type: ";
        switch($type) {
            case 0 : // Texte plein
                $this->defaultMime .= "text/plain; charset="iso-8859-1"";
            break;
            case 1 : // Texte HTML
                $this->defaultMime .= "text/html; charset="iso-8859-1"";
            break;
            case 2 : // Contenu multipart/alternative
                $this->defaultMime .= "multipart/alternative;" . $this->separator;
                $this->boundary = $this->makeBoundary(); // Récupère le délimiteur
                $this->defaultMime .= "\t" . "boundary="" . $this->boundary . """;
            break;
            case 3 : // Multipart avec pièces jointes
                $this->defaultMime .= "multipart/mixed;" . $this->separator;
                $this->boundary = $this->makeBoundary(); // Récupère le délimiteur
                $this->defaultMime .= "\t" . "boundary="" . $this->boundary . """;
            break;
        }





        $this->defaultMime .= $this->separator;



        return;
    }



    /**************************************************************************/
    /* Méthode    : void setServerConfig(string $server="localhost",          */
    /*    int $port=25)                                                       */
    /* Paramètres :                                                           */
    /*    string $server="localhost" => définit l'adresse du serveur SMTP     */
    /*    int $port => port SMTP utilisé                                      */
    /* Valeur de retour :                                                     */
    /* Objet : Définit les paramètres du serveur SMTP                         */
    /**************************************************************************/
    function setServerConfig($server="localhost",$port=25){
         $this->server = $server;
         $this->port = $port;
        
         return;
    }
   
    /**************************************************************************/
    /* Méthode : bool addAttachment(object $a_file, string $file_type="")     */
    /* Paramètres :                                                           */
    /*    object $a_file => Objet de type filemanager.class.php               */
    /*    string $file_type="" => type MIME du fichier à joindre              */
    /* Valeur de retour :                                                     */
    /* Objet : ajoute une pièce jointe au message                             */
    /**************************************************************************/
    function addAttachment($a_file){
      /************************************************************************/
      /* Définition des variables locales                                     */
      /************************************************************************/
      $mime_type          = ""; // Type du fichier à joindre
      $return_header      = ""; // Chaîne à ajouter en en-tête du message
      $file_handle        = null; // Handle sur le fichier à lire
      $file_content       = null; // Contenu du fichier
      $content_disposition= ""; // Type de disposition de la pièce jointe
     
      /************************************************************************/
      /* Implémentation                                                       */
      /************************************************************************/
     
      // Teste si le fichier existe
      if($a_file->exists()){
        // Identifie le type de fichier à joindre au message
        $mime_type = $a_file->get_file_info("src","file_mime_type");
        // En fonction du type, détermine la disposition
        if(strstr($mime_type,"image")){
          $content_disposition = "inline";
        } else {
          $content_disposition = "attachment";
        }



        // Récupération du contenu du fichier
        if($file_handle = fopen($a_file->get_file_info("src","file_complete_name"),"rb")){
          while(!feof($file_handle)){
            $file_content .= fread($file_handle,4096);
          }
          fclose($file_handle); // Ferme le fichier source
         
          // Encodage du fichier récupéré
          $file_content = chunk_split(base64_encode($file_content));
          // Construit la chaîne d'attachement
          $return_header = $this->getBoundary();
          $return_header .= "Content-Type:$mime_type;";
          $return_header .= " name=" . $a_file->get_file_info("src","file_name") . $this->separator;
          $return_header .= "Content-Transfer-Encoding:base64" . $this->separator;
          $return_header .= "Content-Disposition: $content_disposition; filename="" . $a_file->get_file_info("src","file_name") . """ . $this->separator . $this->separator;
          $return_header .= $file_content . $this->separator; // Contenu de la pière jointe
          $return_header .= $this->getBoundary();
         
          // Ajoute l'en-tête au tableau des en-têtes
          array_push($this->attachments,$return_header);
         
        } else {
          return false; // Impossible d'ouvrir le fichier à joindre
        }
      } else {
        return false; // Le fichier n'existe pas
      }
      return true;
    }
     
    /**************************************************************************/
    /* Définition des méthodes privées                                        */
    /**************************************************************************/
   
    /**************************************************************************/
    /* Méthode    : private string makeBoundary(void)                         */
    /* Paramètres :                                                           */
    /* Valeur de retour :                                                     */
    /*      string boundary => chaîne unique de délimitation des parties      */
    /*        d'un message multi-part                                         */
    /* Objet : Définit le délimiteur des parties d'un message                 */
    /**************************************************************************/
   function makeBoundary()
   {
       // fonction qui renvoie un numéro unique servant à délimiter les parties du message
       srand((double)microtime()*10000);
      
       return md5(uniqid(rand()));
   }



    /**************************************************************************/
    /* Méthode    : private string getBoundary(void)                          */
    /* Paramètres :                                                           */
    /* Valeur de retour :                                                     */
    /*      string boundary => chaîne unique de délimitation des parties      */
    /*        d'un message multi-part                                         */
    /* Objet : Retourne le délimiteur des parties d'un message                */
    /**************************************************************************/
   function getBoundary(){
       return "--" . $this->boundary . $this->separator;
   }



    /**************************************************************************/
    /* Méthode    : private string getMultipartHeader(void)                   */
    /* Paramètres :                                                           */
    /* Valeur de retour :                                                     */
    /*      string header => contenu spécifique du message multi-part         */
    /* Objet : Retourne le délimiteur des parties d'un message                */
    /**************************************************************************/
   function getMultipartHeader(){
       return "This is a multi-part message in MIME format." . $this->separator;
   }



    /**************************************************************************/
    /* Méthode    : private string getMimePart(int $type=0)                   */
    /* Paramètres :                                                           */
    /*    int $type=0 => retourne le type de message courant                  */
    /* Valeur de retour :                                                     */
    /*      string mimePart => chaîne unique de délimitation des parties      */
    /*        d'un message multi-part                                         */
    /* Objet : Retourne le type MIME du message courant                       */
    /**************************************************************************/
   function getMimePart($type=0){
       if($type == 0)
           return "Content-Type: text/plain; charset="iso-8859-1"" . $this->separator;
       else
           return "Content-Type: text/html; charset="iso-8859-1"" . $this->separator;
   }
  
    /**************************************************************************/
    /* Méthode    : void debugtoHTML(void)                                    */
    /* Paramètres :                                                           */
    /* Valeur de retour :                                                     */
    /* Objet : Renvoie les informations de debug sur la sortie HTML           */
    /**************************************************************************/
    function debugtoHTML(){
        echo "
\n";
        echo "\n\n";
        echo "Transaction SMTP
\n";
        echo $this->debugLine;
        echo "

\n\n
\n";



        return;
    }



} // Fin de la classe
?>




DaCodeMaNIaK
0
Rejoignez-nous