source: trunk/expressoAdmin1_2/inc/class.imap_functions.inc.php @ 2

Revision 2, 3.9 KB checked in by niltonneto, 17 years ago (diff)

Removida todas as tags usadas pelo CVS ($Id, $Source).
Primeira versão no CVS externo.

  • Property svn:eol-style set to native
  • Property svn:executable set to *
Line 
1<?php
2
3class imap_functions
4{
5        var $imap;
6        var $imapDelimiter;
7        var $imap_admin;
8        var $imap_passwd;
9        var $imap_server;
10        var $imap_port;
11       
12        function imap_functions(){
13                $this->imap_admin       = $_SESSION['phpgw_info']['expresso']['email_server']['imapAdminUsername'];
14                $this->imap_passwd      = $_SESSION['phpgw_info']['expresso']['email_server']['imapAdminPW'];
15                $this->imap_server      = $_SESSION['phpgw_info']['expresso']['email_server']['imapServer'];
16                $this->imap_port        = $_SESSION['phpgw_info']['expresso']['email_server']['imapPort'];
17                $this->imapDelimiter= $_SESSION['phpgw_info']['expresso']['email_server']['imapDelimiter'];
18                $this->imap             = imap_open('{'.$this->imap_server.':'.$this->imap_port.'/novalidate-cert}', $this->imap_admin, $this->imap_passwd, OP_HALFOPEN);
19        }
20       
21        function create($uid, $mailquota)
22        {
23                if (!imap_createmailbox($this->imap, '{'.$this->imap_server.'}' . "user" . $this->imapDelimiter . $uid))
24                {
25                        $error = imap_errors();
26                        $result['status'] = false;
27                        $result['msg'] = 'Erro na funcao imap_function->create(INBOX): ' . $error[0];
28                        return $result;
29                }
30                if (!imap_createmailbox($this->imap, '{'.$this->imap_server.'}' . "user" . $this->imapDelimiter . $uid . $this->imapDelimiter . "Enviados"))
31                {
32                        $error = imap_errors();
33                        $result['status'] = false;
34                        $result['msg'] = 'Erro na funcao imap_function->create(Enviados): ' . $error[0];
35                        return $result;
36                }
37                if (!imap_createmailbox($this->imap, '{'.$this->imap_server.'}' . "user" . $this->imapDelimiter . $uid . $this->imapDelimiter . "Rascunhos"))
38                {
39                        $error = imap_errors();
40                        $result['status'] = false;
41                        $result['msg'] = 'Erro na funcao imap_function->create(Rascunho): ' . $error[0];
42                        return $result;
43                }
44                if (!imap_createmailbox($this->imap, '{'.$this->imap_server.'}' . "user" . $this->imapDelimiter . $uid . $this->imapDelimiter . "Lixeira"))
45                {
46                        $error = imap_errors();
47                        $result['status'] = false;
48                        $result['msg'] = 'Erro na funcao imap_function->create(Lixeira): ' . $error[0];
49                        return $result;
50                }
51                if (!imap_set_quota($this->imap,"user" . $this->imapDelimiter . $uid, ($mailquota*1024)))
52                {
53                        $error = imap_errors();
54                        $result['status'] = false;
55                        $result['msg'] = 'Erro na funcao imap_function->create(set_quota): ' . $error[0];
56                        return $result;
57                }
58               
59                $result['status'] = true;
60                return $result;
61        }
62       
63        function get_user_info($uid)
64        {
65                $get_quota = @imap_get_quotaroot($this->imap,"user" . $this->imapDelimiter . $uid);
66               
67                if (count($get_quota) == 0)
68                {
69                        $quota['mailquota'] = '-1';
70                        $quota['mailquota_used'] = '-1';
71                }       
72                else
73                {
74                        $quota['mailquota'] = ($get_quota['limit'] / 1024);
75                        $quota['mailquota_used'] = ($get_quota['usage'] / 1024);
76                }
77                       
78                return $quota;
79        }
80       
81        function change_user_quota($uid, $quota)
82        {
83                $set_quota = imap_set_quota($this->imap,"user" . $this->imapDelimiter . $uid, ($quota*1024));
84                return true;
85        }
86       
87        function delete_user($uid)
88        {
89                $result['status'] = true;
90               
91                //Seta acl imap para poder deletar o user.
92                // Esta sem tratamento de erro, pois o retorno da funcao deve ter um bug.
93                imap_setacl($this->imap, "user" . $this->imapDelimiter . $uid, $this->imap_admin, 'c');
94               
95                if (!imap_deletemailbox($this->imap, '{'.$this->imap_server.'}' . "user" . $this->imapDelimiter . $uid))
96                {
97                        $result['status'] = false;
98                        $result['msg'] = "Erro na funcao imap_function->delete_user.\nRetorno do servidor: " . imap_last_error();
99                }
100               
101                return $result;
102        }
103       
104        function rename_mailbox($old_mailbox, $new_mailbox)
105        {
106                $result['status'] = true;               
107                $result_rename = imap_renamemailbox($this->imap,
108                                                '{'.$this->imap_server.':'.$this->imap_port.'}user' . $this->imapDelimiter . $old_mailbox,
109                                                '{'.$this->imap_server.':'.$this->imap_port.'}user' . $this->imapDelimiter . $new_mailbox);
110               
111                if (!$result_rename)
112                {
113                        $result['status'] = false;
114                        $result['msg'] = "Erro na funcao imap_function->rename_mailbox.\nRetorno do servidor: " . imap_last_error();
115                }
116                return $result;
117        }
118}
Note: See TracBrowser for help on using the repository browser.