source: trunk/prototype/services/SMTP.php @ 5341

Revision 5341, 3.3 KB checked in by wmerlotto, 12 years ago (diff)

Ticket #2434 - Commit inicial do novo módulo de agenda do Expresso - expressoCalendar

Line 
1<?php
2
3
4
5class SMTP {
6       
7        var $smtp;
8        var $config;
9        var $mail;
10       
11        public function SMTP(){
12               
13                @session_start();
14                $_SESSION['rootPath'] = ROOTPATH .'/../';
15               
16                require_once ( ROOTPATH.'/../library/mime/mimePart.php' );
17                require_once ( ROOTPATH.'/../library/mime/mime.php' );
18                require_once ( ROOTPATH.'/../library/Mail/Mail.php');
19       
20        }
21       
22        public function find     ( $uri, $justthese = false, $criteria = false ){}
23
24    public function read     ( $uri, $justthese = false/*, $criteria = false*/ ){}
25
26//---------------
27
28    public function deleteAll( $uri, $justthese = false, $criteria = false ){}
29
30    public function delete   ( $uri, $justthese = false/*, $criteria = false*/ ){}// avaliar
31
32//---------------
33
34    public function replace  ( $uri, $data, $criteria = false ){}
35
36    public function update   ( $uri, $data/*, $criteria = false*/ ){}
37
38//---------------
39
40    public function create   ( $uri, $data/*, $criteria = false*/ )
41        {
42       
43        $this->mail = new Mail_mime(array('html_charset' => 'UTF-8'));
44       
45                if( isset($data['body']) )
46                {
47                        if( isset($data['isHtml']) && $data['isHtml'] == true ) $this->mail->setHTMLBody( $data['body'] );
48                        else $this->mail->setTXTBody( $data['body'] );
49                }
50
51                if( isset($data['subject']) ) $this->mail->setSubject ( mb_convert_encoding($data['subject'] , 'ISO-8859-1' , 'UTF-8,ISO-8859-1') );
52       
53        if( isset($data['attachments']) ){
54           
55            foreach ($data['attachments'] as $attachment)
56            {
57                if(!isset($attachment['encode']))
58                    $attachment['encode'] = 'base64';
59                if(!isset($attachment['disposition']))
60                    $attachment['disposition'] = 'attachment';
61 
62                $this->mail->addAttachment($attachment['source'], $attachment['type'], $attachment['name'], false, $attachment['encode'], $attachment['disposition'] , '' ,   '' ,   '' , 'base64');
63            }
64           
65        }
66
67                if( !isset($data['from']) ) $data['from'] = $this->config['email'];
68
69                $this->mail->setFrom( $data['from'] );
70
71                $this->mail->addTo($data['to']);
72
73                if( isset($data['bcc']) ) $this->mail->addBcc ($data['bcc']);
74
75                if( isset($data['cc']) ) $this->mail->addCc ($data['cc']);
76
77                if(!isset($data['headersFields']))
78                        $data['headersFields'] = array();
79       
80       
81                $hdrs = $this->mail->headers($data['headersFields']);
82
83                $recipients = '';
84
85                if( isset($hdrs["To"]) )
86                        $recipients .= $hdrs["To"];
87                if( isset($hdrs["Cc"]) && $recipients)
88                        $recipients .= ', '.$hdrs["Cc"];
89                if( isset($hdrs["Cc"]) && !$recipients)
90                        $recipients = $hdrs["Cc"];
91
92                if( isset($hdrs["Bcc"]))
93                        $arrayBcc = explode(',',$hdrs["Bcc"]);
94       
95                if($recipients)
96                                $sent = $this->smtp->send($recipients, $hdrs , $this->mail->getMessageBody());
97
98                if(isset($arrayBcc)){
99                        foreach ($arrayBcc as $bcc)
100                                if($bcc)
101                                        $sent = $this->smtp->send($bcc, $hdrs , $this->mail->getMessageBody());
102                }
103                if($sent !== true)
104                        return $sent->message;
105               
106             return true;
107        }
108//---------------
109
110    public function open     ( $config )
111        {
112                $this->config = $config;
113                $this->smtp =& Mail::factory( "smtp" , $config );
114               
115        }
116
117    public function close(){}
118   
119    public function begin(){}
120     
121    public function commit(){}
122   
123    public function rollback(){}
124
125    public function setup(){}
126
127    public function teardown(){}
128       
129}
130
131?>
Note: See TracBrowser for help on using the repository browser.