Changeset 92829 in spip-zone


Ignore:
Timestamp:
Nov 11, 2015, 10:29:31 AM (4 years ago)
Author:
rastapopoulos@…
Message:

Reformatage de la fonction principale de notre classe Facteur + commentaires partout (on y voit plus clair…)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/facteur/trunk/classes/facteur.php

    r90866 r92829  
    3131         */
    3232        function Facteur($email, $objet, $message_html, $message_texte, $options = array()) {
     33                // On récupère toutes les options par défaut depuis le formulaire de config
    3334                $defaut = array();
    3435                foreach (array(
     
    4142                        $defaut[$config] = isset($GLOBALS['meta']["facteur_$config"]) ? $GLOBALS['meta']["facteur_$config"] : '';
    4243                }
     44                // On fusionne les options avec d'éventuelles surcharges lors de l'appel
    4345                $options = array_merge($defaut, $options);
    44 
     46               
     47                // Il est possible d'avoir beaucoup plus de logs avec 2, 3 ou 4, ce qui logs les échanges complets avec le serveur
    4548                if (defined('_FACTEUR_DEBUG_SMTP')) {
    4649                        $this->SMTPDebug = _FACTEUR_DEBUG_SMTP ;
    4750                }
    48                 if ($options['adresse_envoi'] == 'oui'
    49                   AND $options['adresse_envoi_email'])
     51               
     52                if (
     53                        $options['adresse_envoi'] == 'oui'
     54                        and $options['adresse_envoi_email']
     55                ) {
    5056                        $this->From = $options['adresse_envoi_email'];
    51                 else
    52                         $this->From = (isset($GLOBALS['meta']["email_envoi"]) AND $GLOBALS['meta']["email_envoi"])?
     57                }
     58                else {
     59                        $this->From = (isset($GLOBALS['meta']["email_envoi"]) AND $GLOBALS['meta']["email_envoi"]) ?
    5360                                $GLOBALS['meta']["email_envoi"]
    54                                 :$GLOBALS['meta']['email_webmaster'];
     61                                : $GLOBALS['meta']['email_webmaster'];
     62                }
    5563
    5664                // Si plusieurs emails dans le from, pas de Name !
    57                 if (strpos($this->From,",")===false){
    58                         if ($options['adresse_envoi'] == 'oui'
    59                           AND $options['adresse_envoi_nom'])
     65                if (strpos($this->From,",") === false) {
     66                        if (
     67                                $options['adresse_envoi'] == 'oui'
     68                                and $options['adresse_envoi_nom']
     69                        ) {
    6070                                $this->FromName = $options['adresse_envoi_nom'];
    61                         else
     71                        }
     72                        // Par défaut, l'envoyeur est le nom du site
     73                        else {
    6274                                $this->FromName = strip_tags(extraire_multi($GLOBALS['meta']['nom_site']));
     75                        }
    6376                }
    6477
     
    7083                if (is_array($email)) {
    7184                        foreach ($email as $cle => $adresseMail) {
    72                                 if (!$this->AddAddress($adresseMail))
    73                                         spip_log("Erreur AddAddress $adresseMail : ".print_r($this->ErrorInfo,true),'facteur');
    74                         }
    75                 }
    76                 else
    77                         if (!$this->AddAddress($email))
    78                                 spip_log("Erreur AddAddress $email : ".print_r($this->ErrorInfo,true),'facteur');
    79 
     85                                if (!$this->AddAddress($adresseMail)) {
     86                                        spip_log("Erreur AddAddress $adresseMail : ".print_r($this->ErrorInfo, true), 'facteur.'._LOG_ERREUR);
     87                                }
     88                        }
     89                }
     90                elseif (!$this->AddAddress($email)) {
     91                        spip_log("Erreur AddAddress $email : ".print_r($this->ErrorInfo, true), 'facteur.'._LOG_ERREUR);
     92                }
     93               
     94                // Retour des erreurs
    8095                if (!empty($options['smtp_sender'])) {
    8196                        $this->Sender = $options['smtp_sender'];
    8297                        $this->AddCustomHeader("Errors-To: ".$this->Sender);
    8398                }
    84 
     99               
     100                // Destinataires en copie, seulement s'il n'y a pas de destinataire de test
    85101                if (!defined('_TEST_EMAIL_DEST')){
    86102                        if (!empty($options['cc'])) {
    87                                 $this->AddCC( $options['cc'] );
     103                                $this->AddCC($options['cc']);
    88104                        }
    89105                        if (!empty($options['bcc'])) {
    90                                 $this->AddBCC( $options['bcc'] );
    91                         }
    92                 }
    93 
     106                                $this->AddBCC($options['bcc']);
     107                        }
     108                }
     109               
     110                // Si on envoie avec un SMTP explicite
    94111                if (isset($options['smtp']) AND $options['smtp'] == 'oui') {
    95112                        $this->Mailer   = 'smtp';
    96113                        $this->Host     = $options['smtp_host'];
    97114                        $this->Port     = $options['smtp_port'];
     115                       
     116                        // SMTP authentifié
    98117                        if ($options['smtp_auth'] == 'oui') {
    99118                                $this->SMTPAuth = true;
     
    104123                                $this->SMTPAuth = false;
    105124                        }
    106                         if (intval(phpversion()) == 5) {
    107                         if ($options['smtp_secure'] == 'ssl')
    108                                 $this->SMTPSecure = 'ssl';
    109                         if ($options['smtp_secure'] == 'tls')
    110                                 $this->SMTPSecure = 'tls';
    111                         }
    112                 }
    113 
     125                       
     126                        // À partir de PHP 5, on peut tester la sécurité de la connexion
     127                        if (intval(phpversion()) >= 5) {
     128                                if ($options['smtp_secure'] == 'ssl') {
     129                                        $this->SMTPSecure = 'ssl';
     130                                }
     131                                if ($options['smtp_secure'] == 'tls') {
     132                                        $this->SMTPSecure = 'tls';
     133                                }
     134                        }
     135                }
     136               
     137                // S'il y a un contenu HTML
    114138                if (!empty($message_html)) {
    115                         $message_html = unicode_to_utf_8(charset2unicode($message_html,$GLOBALS['meta']['charset']));
     139                        $message_html = unicode_to_utf_8(charset2unicode($message_html, $GLOBALS['meta']['charset']));
     140                       
    116141                        $this->Body = $message_html;
    117142                        $this->IsHTML(true);
    118                         if ($options['filtre_images'])
     143                        if ($options['filtre_images']) {
    119144                                $this->JoindreImagesHTML();
     145                        }
     146                       
    120147                        $this->UrlsAbsolues();
    121148                }
     149               
     150                // S'il y a un contenu texte brut
    122151                if (!empty($message_texte)) {
    123                         $message_texte = unicode_to_utf_8(charset2unicode($message_texte,$GLOBALS['meta']['charset']));
     152                        $message_texte = unicode_to_utf_8(charset2unicode($message_texte, $GLOBALS['meta']['charset']));
     153                       
     154                        // Si pas de HTML on le remplace en tant que contenu principal
    124155                        if (!$this->Body) {
    125156                                $this->IsHTML(false);
    126157                                $this->Body = $message_texte;
    127158                        }
     159                        // Sinon on met le texte brut en contenu alternatif
    128160                        else {
    129161                                $this->AltBody = $message_texte;
     
    131163                }
    132164
    133                 if ($options['filtre_iso_8859'])
     165                if ($options['filtre_iso_8859']) {
    134166                        $this->ConvertirUtf8VersIso8859();
    135 
     167                }
    136168        }
    137169
     
    294326                ob_end_clean();
    295327                if( !empty($error) ) {
    296                         spip_log("Erreur Facteur->Send : $error",'facteur.err');
     328                        spip_log("Erreur Facteur->Send : $error",'facteur.'._LOG_ERREUR);
    297329                }
    298330                return $retour;
     
    305337                ob_end_clean();
    306338                if( !empty($error) ) {
    307                         spip_log("Erreur Facteur->AddAttachment : $error",'facteur.err');
     339                        spip_log("Erreur Facteur->AddAttachment : $error",'facteur.'._LOG_ERREUR);
    308340                }
    309341                return $retour;
     
    316348                ob_end_clean();
    317349                if( !empty($error) ) {
    318                         spip_log("Erreur Facteur->AddReplyTo : $error",'facteur.err');
     350                        spip_log("Erreur Facteur->AddReplyTo : $error",'facteur.'._LOG_ERREUR);
    319351                }
    320352                return $retour;
     
    326358                ob_end_clean();
    327359                if( !empty($error) ) {
    328                         spip_log("Erreur Facteur->AddBCC : $error",'facteur.err');
     360                        spip_log("Erreur Facteur->AddBCC : $error",'facteur.'._LOG_ERREUR);
    329361                }
    330362                return $retour;
     
    336368                ob_end_clean();
    337369                if( !empty($error) ) {
    338                         spip_log("Erreur Facteur->AddCC : $error",'facteur.err');
     370                        spip_log("Erreur Facteur->AddCC : $error",'facteur.'._LOG_ERREUR);
    339371                }
    340372                return $retour;
    341373        }
    342374}
    343 
    344 ?>
Note: See TracChangeset for help on using the changeset viewer.