[ Index ]
 

Code source de SPIP Agora 1.4

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/Agora1-4/ecrire/ -> inc_mail.php (source)

   1  <?php
   2  /*****************************************************
   3  * This file is part of Agora, web based content management system.
   4  *
   5  * Agora is free software; you can redistribute it and/or modify
   6  * it under the terms of the GNU General Public License as published by
   7  * the Free Software Foundation; version 2 of the License.
   8  *
   9  * Agora is distributed in the hope that it will be useful,
  10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12  * GNU General Public License for more details (file "COPYING").
  13  *
  14  * Copyright © Arnaud Martin, Antoine Pitrou et Philippe Rivière.
  15  * List of authors detailed in "copyright_fr.html" file.
  16  * E-mail : agora@sig.premier-ministre.gouv.fr
  17  * Web site : http://www.agora.gouv.fr
  18  *****************************************************/
  19  // Ce fichier ne sera execute qu'une fois
  20  if (defined("_ECRIRE_INC_MAIL"))
  21      return;
  22  
  23  define("_ECRIRE_INC_MAIL", "1");
  24  
  25  //
  26  // Chez lyconiania, envoyer un mail coupe la connection MySQL (sic)
  27  //
  28  
  29  $GLOBALS['queue_mails'] = '';
  30  
  31  function envoyer_queue_mails () {
  32      global $queue_mails;
  33  
  34      if (!$queue_mails)
  35          return;
  36  
  37      reset($queue_mails);
  38  
  39      while (list(, $val) = each($queue_mails)) {
  40          $email = $val['email'];
  41          $sujet = $val['sujet'];
  42          $texte = $val['texte'];
  43          $headers = $val['headers'];
  44          @mail($email, $sujet, $texte, $headers);
  45      }
  46  }
  47  
  48  if ($GLOBALS['hebergeur'] == 'lycos') {
  49      register_shutdown_function(envoyer_queue_mails);
  50  }
  51  
  52  function tester_mail () {
  53      global $hebergeur;
  54      $test_mail = true;
  55  
  56      if ($hebergeur == 'free')
  57          $test_mail = false;
  58  
  59      return $test_mail;
  60  }
  61  
  62  function envoyer_mail ($email, $sujet, $texte, $from = "", $headers = "") {
  63      global $hebergeur, $queue_mails, $flag_wordwrap, $os_serveur;
  64      include_ecrire ("inc_filtres.php");
  65  
  66      if (!$from) {
  67          $email_envoi = lire_meta("email_envoi");
  68          $from = email_valide($email_envoi) ? $email_envoi : $email;
  69      }
  70  
  71      if (!email_valide($email))
  72          return false;
  73  
  74      if ($email == _T('info_mail_fournisseur'))
  75          return false; // tres fort
  76  
  77      spip_log("mail ($email): $sujet");
  78  
  79      $charset = lire_meta('charset');
  80  
  81      $headers
  82          = "From: $from\n" . "MIME-Version: 1.0\n" . "Content-Type: text/plain; charset=$charset\n" . "Content-Transfer-Encoding: 8bit\n$headers";
  83  
  84      $texte = filtrer_entites($texte);
  85      $sujet = filtrer_entites($sujet);
  86  
  87      // fignoler ce qui peut l'etre...
  88      if ($charset <> 'utf-8') {
  89          $texte = str_replace("&#8217;", "'", $texte);
  90          $sujet = str_replace("&#8217;", "'", $sujet);
  91      }
  92  
  93      // encoder le sujet si possible selon la RFC
  94      if ($GLOBALS['flag_multibyte']AND@mb_internal_encoding($charset))
  95          $sujet = mb_encode_mimeheader($sujet, $charset, 'Q');
  96  
  97      if ($flag_wordwrap)
  98          $texte = wordwrap($texte);
  99  
 100      if ($os_serveur == 'windows') {
 101          $texte = ereg_replace("\r*\n", "\r\n", $texte);
 102          $headers = ereg_replace("\r*\n", "\r\n", $headers);
 103      }
 104  
 105      switch ($hebergeur) {
 106          case 'lycos':
 107              $queue_mails[] = array('email' => $email, 'sujet' => $sujet, 'texte' => $texte, 'headers' => $headers);
 108              return true;
 109  
 110          case 'free':
 111              return false;
 112  
 113          case 'online':
 114              return@email('webmaster', $email, $sujet, $texte);
 115  
 116          default:
 117              return@mail($email, $sujet, $texte, $headers);
 118      }
 119  }
 120  
 121  function nettoyer_titre_email ($titre) {
 122      $titre = ereg_replace("\n", ' ', supprimer_tags($titre));
 123      return ($titre);
 124  }
 125  
 126  function envoyer_mail_publication ($id_article) {
 127      global $connect_nom;
 128      $adresse_suivi = lire_meta("adresse_suivi");
 129      $adresse_site = lire_meta("adresse_site");
 130      $nom_site_spip = lire_meta("nom_site");
 131      $suivi_edito = lire_meta("suivi_edito");
 132  
 133      if ($suivi_edito == "oui") {
 134          //-------Zone de modification Clever Age----------
 135          $articleMetier = recuperer_instance_article();
 136          $articleMetier->load($id_article);
 137          if (!PEAR::isError($articleMetier) && $articleMetier->getArticleId() == $id_article) {
 138  
 139              // selectionne langue du site
 140              $lang_utilisateur = $GLOBALS['spip_lang'];
 141              changer_langue($GLOBALS['langue_site']);
 142  
 143              $titre = nettoyer_titre_email($articleMetier->getTitre());
 144  
 145              $sujet = _T('info_publie_1', array('nom_site_spip' => $nom_site_spip, 'titre' => $titre));
 146              $courr = _T('info_publie_2'). "\n\n";
 147              $courr .= _T('info_publie_01', array('titre' => $titre, 'connect_nom' => $connect_nom)). "\n\n\n";
 148              $courr = filtrer_entites($courr). $articleMetier->getExtract();
 149              $courr = $courr . $articleMetier->getExtract();
 150              envoyer_mail($adresse_suivi, $sujet, $courr);
 151  
 152              // reinstalle la langue utilisateur (au cas ou)
 153              changer_langue($lang_utilisateur);
 154          }
 155      }
 156  }
 157  
 158  function envoyer_mail_proposition ($id_article) {
 159      $adresse_suivi = lire_meta("adresse_suivi");
 160      $adresse_site = lire_meta("adresse_site");
 161      $nom_site_spip = lire_meta("nom_site");
 162      $suivi_edito = lire_meta("suivi_edito");
 163  
 164      if ($suivi_edito == "oui") {
 165          //-------Zone de modification Clever Age----------
 166          $articleMetier = recuperer_instance_article();
 167          $articleMetier->load($id_article);
 168          if (!PEAR::isError($articleMetier) && $articleMetier->getArticleId() == $id_article) {
 169              $titre = nettoyer_titre_email($articleMetier->getTitre());
 170  
 171              $sujet = _T('info_propose_1', array('nom_site_spip' => $nom_site_spip, 'titre' => $titre));
 172              $courr = _T('info_propose_2'). "\n\n";
 173              $courr .= _T('info_propose_3', array('titre' => $titre)). "\n";
 174              $courr .= _T('info_propose_4'). "\n";
 175              $courr .= _T('info_propose_5'). "\n";
 176              $courr .= $adresse_site . "/ecrire/articles.php?id_article=$id_article\n\n\n";
 177              $courr = $courr . $articleMetier->getExtract();
 178              envoyer_mail($adresse_suivi, $sujet, $courr);
 179  
 180              changer_langue($lang_utilisateur);
 181          }
 182      }
 183  }
 184  ?>


Généré le : Sat Feb 24 14:40:03 2007 par Balluche grâce à PHPXref 0.7