[ Index ] |
|
Code source de SPIP Agora 1.4 |
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("’", "'", $texte); 90 $sujet = str_replace("’", "'", $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 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Sat Feb 24 14:40:03 2007 | par Balluche grâce à PHPXref 0.7 |