source: spip-zone/_plugins_/spip-listes/spip-listes_1_9_3/inc/spiplistes_mail.inc.php @ 50563

Last change on this file since 50563 was 50563, checked in by paladin@…, 9 years ago

documentation phpdoc

  • Property svn:keywords set to LastChangedBy LastChangedDate LastChangedRevision
File size: 4.2 KB
Line 
1<?php
2/**
3 * @package spiplistes
4 */
5 // $LastChangedRevision: 50563 $
6 // $LastChangedBy: paladin@quesaco.org $
7 // $LastChangedDate: 2011-08-19 12:14:53 +0000 (Fri, 19 Aug 2011) $s
8
9if(!defined('_ECRIRE_INC_VERSION')) return;
10
11include_spip('inc/spiplistes_api_globales');
12
13/**
14 * @return bool
15 */
16function spiplistes_utiliser_facteur()
17{
18        static $utiliser;
19        if($utiliser === null)
20        {
21                $utiliser =
22                        (_SPIPLISTES_UTILISER_FACTEUR == 'oui')
23                        && function_exists('liste_plugin_actifs')
24                        && ($p = liste_plugin_actifs())
25                        && isset($p['FACTEUR'])
26                        && spiplistes_log('plugin facteur');
27        }
28        return($utiliser);
29}
30
31//if(!spiplistes_utiliser_facteur() && !class_exists('PHPMailer'))
32//{
33        include_spip('phpmailer/class.phpmailer');
34        include_spip('phpmailer/class.smtp');
35//}
36
37        class phpMail extends PHPMailer_2003 {
38
39                function phpMail($email, $objet, $message_html, $message_texte, $charset) {
40               
41                        $this->FromName    =  $fromname ; 
42                        $this->CharSet  = $charset ;
43                $this->Mailer   = 'mail';
44                        $this->Subject  = $objet;
45                        $this->AddAddress($email); 
46                       
47                        if ($smtp_sender =  $GLOBALS['meta']['smtp_sender']) {
48                                //$this->Sender = $GLOBALS['meta']['spip_lettres_smtp_sender'];
49                                $this->Sender = $GLOBALS['meta']['smtp_sender'];
50                        }
51                       
52                        $envoi_par_smtp =  $GLOBALS['meta']['mailer_smtp'] ;
53
54                        if($envoi_par_smtp == "oui"){
55                                if ($smpt_server =  $GLOBALS['meta']['smtp_server']) {
56                                $this->IsSMTP(); // telling the class to use SMTP
57                                $this->Mailer   = 'smtp';
58                                    $this->Host         =  $GLOBALS['meta']['smtp_server'];
59                                    $this->Port         =  $GLOBALS['meta']['smtp_port'];
60                                       
61                                        $smtp_identification =  $GLOBALS['meta']['smtp_identification'] ;
62
63                                        if ($smtp_identification == "oui") {
64                                            $this->SMTPAuth = true;
65                                            $this->Username =  $GLOBALS['meta']['smtp_login'];
66                                            $this->Password =  $GLOBALS['meta']['smtp_pass'];
67                                        } else {
68                                            $this->SMTPAuth = false;
69                                        }
70                                }
71                        }
72                        if (!empty($message_html) AND !empty($message_texte)) {
73                        $this->Body = $message_html;
74                        $this->AltBody = $message_texte;
75                                //$this->spiplistes_JoindreImagesHTML();
76                        }
77                        if (!empty($message_texte) AND empty($message_html)) {
78                               
79                                        $this->IsHTML(false);
80                                        $this->Body = $message_texte;
81                               
82                        }
83                }
84                function SetAddress($address, $name = "") {
85                        $this->to=array();
86                        $this->AddAddress($address,$name);
87                }       
88
89        /**
90         * d'apres SPIP-Lettres : plugin de gestion de lettres d'information
91         * inutilise' mais ca pourra peut etre servir pour emabarquer les images
92         * Copyright (c) 2006
93         * Agence Atypik Creations
94         * 
95         * 
96         **/
97
98                function spiplistes_JoindreImagesHTML() {
99                        $image_types = array(
100                                                                'gif'   => 'image/gif',
101                                                                'jpg'   => 'image/jpeg',
102                                                                'jpeg'  => 'image/jpeg',
103                                                                'jpe'   => 'image/jpeg',
104                                                                'bmp'   => 'image/bmp',
105                                                                'png'   => 'image/png',
106                                                                'tif'   => 'image/tiff',
107                                                                'tiff'  => 'image/tiff',
108                                                                'swf'   => 'application/x-shockwave-flash'
109                                                        );
110                        while (list($key,) = each($image_types))
111                                $extensions[] = $key;
112
113                        preg_match_all('/"([^"]+\.('.implode('|', $extensions).'))"/Ui', $this->Body, $images);
114
115                        for ($i=0; $i<count($images[1]); $i++) {
116                                if (file_exists('../'.$images[1][$i])) {
117                                        $html_images[] = '../'.$images[1][$i];
118                                        $this->Body = str_replace($images[1][$i], basename($images[1][$i]), $this->Body);
119                                }
120                                if (file_exists($images[1][$i])) {
121                                        $html_images[] = $images[1][$i];
122                                        $this->Body = str_replace($images[1][$i], basename($images[1][$i]), $this->Body);
123                                }
124                        }
125
126                        $images = array();
127                        preg_match_all("/'([^']+\.(".implode('|', $extensions)."))'/Ui", $this->Body, $images);
128
129                        for ($i=0; $i<count($images[1]); $i++) {
130                                if (file_exists('../'.$images[1][$i])) {
131                                        $html_images[] = '../'.$images[1][$i];
132                                        $this->Body = str_replace($images[1][$i], basename($images[1][$i]), $this->Body);
133                                }
134                                if (file_exists($images[1][$i])) {
135                                        $html_images[] = $images[1][$i];
136                                        $this->Body = str_replace($images[1][$i], basename($images[1][$i]), $this->Body);
137                                }
138                        }
139
140                        if (!empty($html_images)) {
141                                $html_images = array_unique($html_images);
142                                sort($html_images);
143                                for ($i=0; $i<count($html_images); $i++) {
144                                        $cid = md5(uniqid(time()));
145                                        $this->AddEmbeddedImage($html_images[$i], $cid);
146                                        $this->Body = str_replace(basename($html_images[$i]), "cid:$cid", $this->Body);
147                                }
148                        }
149                }
150
151        }
152
Note: See TracBrowser for help on using the repository browser.