[ Index ]
 

Code source de SPIP Agora 1.4

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

title

Body

[fermer]

/Agora1-4/ecrire/include/clevermail/admin/ -> queue_process.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  /*
  20   * @version       $Id$
  21   */
  22  //@Header ("Content-Type: text/plain");// Modification jpyrat
  23  /*
  24  -------------Ajout Clever Age abstraction BD---------
  25  */
  26  require_once (dirname(__FILE__). "/../../../../ecrire/include/bd/inc_auteur_factory.php");
  27  
  28  require_once (dirname(__FILE__). "/../../../../ecrire/include/bd/inc_subscriber_factory.php");
  29  require_once (dirname(__FILE__). "/../../../../ecrire/include/bd/inc_subscriber_link_factory.php");
  30  require_once (dirname(__FILE__). "/../../../../ecrire/include/bd/inc_meta_factory.php");
  31  require_once (dirname(__FILE__). "/../../../../ecrire/include/bd/inc_newsletter_factory.php");
  32  require_once (dirname(__FILE__). "/../../../../ecrire/include/bd/inc_newsletter_instance_factory.php");
  33  require_once (dirname(__FILE__). "/../../../../ecrire/inc_version.php");
  34  
  35  if (file_exists(dirname(__FILE__). "/../../../../ecrire/mes_options.php")) {
  36      require_once (dirname(__FILE__). "/../../../../ecrire/mes_options.php");
  37  }
  38  
  39  require_once (dirname(__FILE__). "/../../../../ecrire/inc_meta.php");
  40  require_once (dirname(__FILE__). "/include/appconfig.php");
  41  
  42  // TBI lire_meta() ne marche pas ?
  43  // à ajouter au lieu d'utiliser les globals"
  44  
  45  /*
  46  ----------------fin zone d'ajout---------------------
  47  */
  48  require_once("Mail.php");
  49  require_once("Mail/mime.php");
  50  
  51  if (isset($_GET['verbose'])) {
  52      $verbose = $_GET['verbose'];
  53  }
  54  else {
  55      $verbose = 'yes';
  56  }
  57  
  58  if (isset($_GET['number'])) {
  59      $number = $_GET['number'];
  60  }
  61  else {
  62      $number = $GLOBALS['meta']['CM_SEND_NUMBER'];
  63  }
  64  
  65  $newsletterInstanceMetier = &recuperer_instance_newsletter_instance();
  66  //Récupération de l'ensemble des mails à envoyer
  67  $allPosts = $newsletterInstanceMetier->getAllPosts($number);
  68  
  69  if (PEAR::isError($allPosts)) {
  70      die ($allPosts->getMessage());
  71  }
  72  
  73  //
  74  $text = ''; // Modification jpyrat
  75  $html = ''; // Modification jpyrat
  76  
  77  while (list(, $myPost) = each($allPosts)) {
  78      $loadOK = $newsletterInstanceMetier->load($myPost['pst_id']);
  79  
  80      if (PEAR::isError($loadOK)) {
  81          // die($loadOK->getMessage());
  82          echo $loadOK->getMessage(). "\n";
  83          continue;
  84      }
  85  
  86      $newsletterMetier = &recuperer_instance_newsletter();
  87      $loadOK = $newsletterMetier->load($newsletterInstanceMetier->getNewsletterId());
  88  
  89      if (PEAR::isError($loadOK)) {
  90          // die($loadOK->getMessage());
  91          echo $loadOK->getMessage(). "\n";
  92          continue;
  93      }
  94      if (!$newsletterInstanceMetier->isAlreadySend($myPost)) {
  95          $mode = ($myPost['mode'] == 1 ? 'html' : 'text');
  96  
  97          if ($myPost['id_sub'] != 0) {
  98              $subscriberMetier = &recuperer_instance_subscriber();
  99              $loadOK = $subscriberMetier->load($myPost['id_sub']);
 100  
 101              if (PEAR::isError($loadOK)) {
 102                  echo ($loadOK->getMessage());
 103                  $newsletterInstanceMetier->deletePostQueued($myPost);
 104                  continue;
 105              }
 106  
 107              // recipient
 108              if ($subscriberMetier->getFirstName(). $subscriberMetier->getMiddleName(). $subscriberMetier->getLastName()
 109                  == '') {
 110                  $to = $subscriberMetier->getEmail();
 111              }
 112              else {
 113                  $to = str_replace('  ',
 114                                    ' ',
 115                                    '"' . trim(
 116                                              $subscriberMetier->getFirstName(). ' ' . $subscriberMetier->getMiddleName(). ' ' . $subscriberMetier->getLastName()). '" <' . $subscriberMetier->getEmail(). '>');
 117              }
 118  
 119              // subject
 120              $subject = trim(($newsletterMetier->getSubjectTag() == 1 ? '[' . $newsletterMetier->getName(). '] '
 121                                  : ''). $newsletterInstanceMetier->getSubject());
 122  
 123              $headers = array('From' => $GLOBALS['meta']['CM_MAIL_FROM'], 'Reply-to' => $GLOBALS['meta']['CM_MAIL_FROM'],
 124                         'Subject' => $subject);
 125  
 126              if (($text == '') && ($html == '')) { // Modification jpyrat
 127                  // message content
 128                  $squeletteHTML = $newsletterMetier->getHtmlSkeleton();
 129                  $squeletteTexte = $newsletterMetier->getTexteSkeleton();
 130  
 131                  //$adresseHTML = $GLOBALS['meta']['adresse_site'].'/previsualisationNL.php?fondNL=' . $squeletteHTML . '&nl_preview_path=' . $newsletterMetier->getId().'/html/&id_post_newsletter='.$newsletterInstanceMetier->getId().'&id_personnalisation_newsletter='.$myPost['id_auteur'];//.'&recalcul=oui&submit=Recalculer+cette+page';// Modification jpyrat
 132                  $adresseHTML
 133                      = $GLOBALS['meta']['adresse_site']. '/previsualisationNL.php?fondNL=' . $squeletteHTML . '&id_personnalisation_newsletter=' . $myPost['id_auteur']. '&id_post_newsletter=' . $newsletterInstanceMetier->getId();
 134                  //$adresseTexte = $GLOBALS['meta']['adresse_site'].'/previsualisationNL.php?fondNL=' . $squeletteTexte . '&nl_preview_path=' . $newsletterMetier->getId().'/texte/&id_post_newsletter='.$newsletterInstanceMetier->getId().'&id_personnalisation_newsletter='.$myPost['id_auteur'];//.'&recalcul=oui&submit=Recalculer+cette+page';// Modification jpyrat
 135                  $adresseTexte
 136                      = $GLOBALS['meta']['adresse_site']. '/previsualisationNL.php?fondNL=' . $squeletteTexte . '&id_personnalisation_newsletter=' . $myPost['id_auteur']. '&id_post_newsletter=' . $newsletterInstanceMetier->getId();
 137                  $text = implode('', file($adresseTexte));
 138                  $text = str_replace("(\r\n|\n|\r)", CM_NEWLINE, $text);
 139                  $html = implode('', file($adresseHTML));
 140                  $html = str_replace("(\r\n|\n|\r)", CM_NEWLINE, $html);
 141              } // Modification jpyrat
 142  
 143              $template = array();
 144              $template['#ADDRESS#'] = $subscriberMetier->getEmail();
 145              $template['#FORMAT#'] = $mode;
 146              //$template['#PROFILE#'] = $GLOBALS['meta']['CM_BASE_URL'].'profile.php?id='.$subscriberMetier->getProfile();
 147              // reliqua Clever Mail ? 
 148              // Modification Olivier Mansour 
 149              $subscriberlinkMetier = &recuperer_instance_subscriber_link();
 150              $subscriberlinkMetier->loadLstSub($newsletterMetier->getId(), $subscriberMetier->getId());
 151  
 152              // Composition du message de demande de confirmation
 153              if ($GLOBALS['meta']['CM_BASE_TEMPLATE']) {
 154                  //$squel = lire_meta('CM_BASE_TEMPLATE');
 155                  $CM_BASE_TEMPLATE = $GLOBALS['meta']['CM_BASE_TEMPLATE'];
 156              }
 157              else {
 158                  $CM_BASE_TEMPLATE = 'newsletter.php';
 159              }
 160  
 161              //$URL_SITE_SPIP = lire_meta ('adresse_site');
 162              $URL_SITE_SPIP = $GLOBALS['meta']['adresse_site'];
 163  
 164              // rajout d'un / éventuellement 
 165              if (substr($URL_SITE_SPIP, strlen($URL_SITE_SPIP) - 1, 1) != '/')
 166                  $URL_SITE_SPIP .= '/';
 167              $template['#UNSUBSCRIBE#']
 168                  = $URL_SITE_SPIP . $CM_BASE_TEMPLATE . '?id=' . $subscriberlinkMetier->getLsrId(). '&typeAction=unsubscribe_ask';
 169          //$template['#UNSUBSCRIBE#'] = $GLOBALS['meta']['CM_BASE_URL'].'rm.php?id='.$subscriberlinkMetier->getLsrId();
 170          //$template['#UNSUBSCRIBE#'] = $GLOBALS['meta']['CM_BASE_URL'].'rm.php?id='.$subscriberMetier->getId();
 171          // fin modification Olivier Mansour 
 172          }
 173  
 174          if ($myPost['id_auteur'] != 0) {
 175              $auteurMetier = &recuperer_instance_auteur();
 176              $loadOK = $auteurMetier->load($myPost['id_auteur']);
 177  
 178              if (PEAR::isError($loadOK)) {
 179                  die ($loadOK->getMessage());
 180              }
 181  
 182              // recipient
 183              if ($auteurMetier->getNom() == '') {
 184                  $to = $auteurMetier->getEmail();
 185              }
 186              else {
 187                  $to = str_replace('  ', ' ',
 188                                    '"' . trim($auteurMetier->getNom()). '" <' . $auteurMetier->getEmail(). '>');
 189              }
 190  
 191              // subject
 192              $subject = trim(($newsletterMetier->getSubjectTag() == 1 ? '[' . $newsletterMetier->getName(). '] '
 193                                  : ''). $newsletterInstanceMetier->getSubject());
 194  
 195              $headers = array('From' => $GLOBALS['meta']['CM_MAIL_FROM'], 'Reply-to' => $GLOBALS['meta']['CM_MAIL_FROM'],
 196                         'Subject' => $subject);
 197  
 198              // message content
 199              $squeletteHTML = $newsletterMetier->getHtmlSkeleton();
 200              $squeletteTexte = $newsletterMetier->getTexteSkeleton();
 201  
 202              $adresseHTML
 203                  = $GLOBALS['meta']['CM_BASE_URL']. '/previsualisationNL.php?fondNL=' . $squeletteHTML . '&nl_preview_path=' . $newsletterMetier->getId(). '/html/&id_post_newsletter=' . $newsletterInstanceMetier->getId(). '&id_personnalisation_newsletter=' . $myPost['id_auteur']. '&recalcul=oui&submit=Recalculer+cette+page';
 204              $adresseTexte
 205                  = $GLOBALS['meta']['CM_BASE_URL']. '/previsualisationNL.php?fondNL=' . $squeletteTexte . '&nl_preview_path=' . $newsletterMetier->getId(). '/texte/&id_post_newsletter=' . $newsletterInstanceMetier->getId(). '&id_personnalisation_newsletter=' . $myPost['id_auteur']. '&recalcul=oui&submit=Recalculer+cette+page';
 206  
 207              $text = implode('', file($adresseTexte));
 208              $text = str_replace("(\r\n|\n|\r)", CM_NEWLINE, $text);
 209              $html = implode('', file($adresseHTML));
 210              $html = str_replace("(\r\n|\n|\r)", CM_NEWLINE, $html);
 211  
 212              $template = array();
 213              $template['#ADDRESS#'] = $auteurMetier->getEmail();
 214              $template['#FORMAT#'] = $mode;
 215          }
 216  
 217          reset ($template);
 218  
 219          while (list($templateFrom, $templateTo) = each($template)) {
 220              $text2send = str_replace($templateFrom, $templateTo, $text); // Modification jpyrat
 221              $html2send = str_replace($templateFrom, $templateTo, $html); // Modification jpyrat
 222          }
 223  
 224          if ($mode == 'text') {
 225              // text message
 226              $body = $text2send; // Modification jpyrat
 227          }
 228          else {
 229              // Mime (HTML) message
 230              $mime = new Mail_mime(CM_NEWLINE);
 231              $mime->setTXTBody($text2send);  // Modification jpyrat
 232              $mime->setHTMLBody($html2send); // Modification jpyrat
 233              // On fixe le charset du message en fonction de celui defini sur le site
 234              $charset = lire_meta('charset');
 235              $builderParams = array('text_charset' => $charset, 'html_charset' => $charset);
 236  
 237              $body = $mime->get($builderParams);
 238  
 239              $headers = $mime->headers($headers);
 240          }
 241  
 242          $mail = &Mail::factory('mail');
 243          if ($mail->send($to, $headers, $body)) {
 244              $newsletterInstanceMetier->deletePostQueued($myPost);
 245  
 246              $setPostDoneOK = $newsletterInstanceMetier->setPostDone($myPost);
 247              if (PEAR::isError($setPostDoneOK)) {
 248                  echo $setPostDoneOK->getMessage(). "\n"; // on ne devrait pas y arriver normallement 
 249              }
 250              else {
 251                  if ($verbose == 'yes') {
 252                      echo "\n" . 'Message from list "' . $newsletterMetier->getName(). '" sent to ' . $to . ' in ' . $mode . ' format' . "\n";
 253                  }
 254              }
 255          }
 256      }
 257      else {
 258          if ($verbose == 'yes') {
 259              echo "\n" . 'Message from list "' . $newsletterMetier->getName(). '" already sent to ' . $myPost['email']. "\n";
 260              // effacer ce mail de la pile post_queued
 261              $newsletterInstanceMetier->deletePostQueued($myPost);
 262          }
 263      }
 264  }
 265  ?>


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