1 | <?php |
---|
2 | |
---|
3 | include_spip('phpmailer/class.phpmailer'); |
---|
4 | include_spip('phpmailer/class.smtp'); |
---|
5 | |
---|
6 | class phpMail extends PHPMailer { |
---|
7 | |
---|
8 | function phpMail($email, $objet, $message_html, $message_texte, $charset) { |
---|
9 | |
---|
10 | $fromname = $GLOBALS['meta']['nom_site']; |
---|
11 | |
---|
12 | if ($GLOBALS['meta']['spiplistes_charset_envoi']!=$GLOBALS['meta']['charset']){ |
---|
13 | include_spip('inc/charsets'); |
---|
14 | $fromname = unicode2charset(charset2unicode($fromname),$GLOBALS['meta']['spiplistes_charset_envoi']); |
---|
15 | } |
---|
16 | |
---|
17 | $this->FromName = $fromname ; |
---|
18 | |
---|
19 | $this->CharSet = $charset ; |
---|
20 | $this->Mailer = 'mail'; |
---|
21 | $this->Subject = $objet; |
---|
22 | $this->AddAddress($email); |
---|
23 | |
---|
24 | if ($smtp_sender = $GLOBALS['meta']['smtp_sender']) { |
---|
25 | $this->Sender = $GLOBALS['meta']['spip_lettres_smtp_sender']; |
---|
26 | } |
---|
27 | |
---|
28 | $envoi_par_smtp = $GLOBALS['meta']['mailer_smtp'] ; |
---|
29 | |
---|
30 | if($envoi_par_smtp == "oui"){ |
---|
31 | if ($smpt_server = $GLOBALS['meta']['smtp_server']) { |
---|
32 | $this->IsSMTP(); // telling the class to use SMTP |
---|
33 | $this->Mailer = 'smtp'; |
---|
34 | $this->Host = $GLOBALS['meta']['smtp_server']; |
---|
35 | $this->Port = $GLOBALS['meta']['smtp_port']; |
---|
36 | |
---|
37 | $smtp_identification = $GLOBALS['meta']['smtp_identification'] ; |
---|
38 | |
---|
39 | if ($smtp_identification == "oui") { |
---|
40 | $this->SMTPAuth = true; |
---|
41 | $this->Username = $GLOBALS['meta']['smtp_login']; |
---|
42 | $this->Password = $GLOBALS['meta']['smtp_pass']; |
---|
43 | } else { |
---|
44 | $this->SMTPAuth = false; |
---|
45 | } |
---|
46 | } |
---|
47 | } |
---|
48 | if (!empty($message_html) AND !empty($message_texte)) { |
---|
49 | $this->Body = $message_html; |
---|
50 | $this->AltBody = $message_texte; |
---|
51 | //$this->spiplistes_JoindreImagesHTML(); |
---|
52 | } |
---|
53 | if (!empty($message_texte) AND empty($message_html)) { |
---|
54 | |
---|
55 | $this->IsHTML(false); |
---|
56 | $this->Body = $message_texte; |
---|
57 | |
---|
58 | } |
---|
59 | } |
---|
60 | function SetAddress($address, $name = "") { |
---|
61 | $this->to=array(); |
---|
62 | $this->AddAddress($address,$name); |
---|
63 | } |
---|
64 | |
---|
65 | /** |
---|
66 | * d'apres SPIP-Lettres : plugin de gestion de lettres d'information |
---|
67 | * inutilisé mais ca pourra peut etre servir pour emabarquer les images |
---|
68 | * Copyright (c) 2006 |
---|
69 | * Agence Atypik Creations |
---|
70 | * |
---|
71 | * |
---|
72 | **/ |
---|
73 | |
---|
74 | function spiplistes_JoindreImagesHTML() { |
---|
75 | $image_types = array( |
---|
76 | 'gif' => 'image/gif', |
---|
77 | 'jpg' => 'image/jpeg', |
---|
78 | 'jpeg' => 'image/jpeg', |
---|
79 | 'jpe' => 'image/jpeg', |
---|
80 | 'bmp' => 'image/bmp', |
---|
81 | 'png' => 'image/png', |
---|
82 | 'tif' => 'image/tiff', |
---|
83 | 'tiff' => 'image/tiff', |
---|
84 | 'swf' => 'application/x-shockwave-flash' |
---|
85 | ); |
---|
86 | while (list($key,) = each($image_types)) |
---|
87 | $extensions[] = $key; |
---|
88 | |
---|
89 | preg_match_all('/"([^"]+\.('.implode('|', $extensions).'))"/Ui', $this->Body, $images); |
---|
90 | |
---|
91 | for ($i=0; $i<count($images[1]); $i++) { |
---|
92 | if (file_exists('../'.$images[1][$i])) { |
---|
93 | $html_images[] = '../'.$images[1][$i]; |
---|
94 | $this->Body = str_replace($images[1][$i], basename($images[1][$i]), $this->Body); |
---|
95 | } |
---|
96 | if (file_exists($images[1][$i])) { |
---|
97 | $html_images[] = $images[1][$i]; |
---|
98 | $this->Body = str_replace($images[1][$i], basename($images[1][$i]), $this->Body); |
---|
99 | } |
---|
100 | } |
---|
101 | |
---|
102 | $images = array(); |
---|
103 | preg_match_all("/'([^']+\.(".implode('|', $extensions)."))'/Ui", $this->Body, $images); |
---|
104 | |
---|
105 | for ($i=0; $i<count($images[1]); $i++) { |
---|
106 | if (file_exists('../'.$images[1][$i])) { |
---|
107 | $html_images[] = '../'.$images[1][$i]; |
---|
108 | $this->Body = str_replace($images[1][$i], basename($images[1][$i]), $this->Body); |
---|
109 | } |
---|
110 | if (file_exists($images[1][$i])) { |
---|
111 | $html_images[] = $images[1][$i]; |
---|
112 | $this->Body = str_replace($images[1][$i], basename($images[1][$i]), $this->Body); |
---|
113 | } |
---|
114 | } |
---|
115 | |
---|
116 | if (!empty($html_images)) { |
---|
117 | $html_images = array_unique($html_images); |
---|
118 | sort($html_images); |
---|
119 | for ($i=0; $i<count($html_images); $i++) { |
---|
120 | $cid = md5(uniqid(time())); |
---|
121 | $this->AddEmbeddedImage($html_images[$i], $cid); |
---|
122 | $this->Body = str_replace(basename($html_images[$i]), "cid:$cid", $this->Body); |
---|
123 | } |
---|
124 | } |
---|
125 | } |
---|
126 | |
---|
127 | } |
---|
128 | |
---|
129 | ?> |
---|