source: trunk/mobile/inc/class.mobilemail.inc.php @ 534

Revision 534, 24.0 KB checked in by rafaelraymundo, 16 years ago (diff)

Destaque para as mensagens nao lidas, semelhante ao expressoMail

Line 
1<?php
2        /**************************************************************************\
3        * eGroupWare                                                               *
4        * http://www.egroupware.org                                                *
5        * The file written by Mário César Kolling <mario.kolling@serpro.gov.br>    *
6        * --------------------------------------------                             *
7        *  This program is free software; you can redistribute it and/or modify it *
8        *  under the terms of the GNU General Public License as published by the   *
9        *  Free Software Foundation; either version 2 of the License, or (at your  *
10        *  option) any later version.                                              *
11        \**************************************************************************/
12
13        //TODO: Criar a Classe Widget.
14
15        include_once(PHPGW_INCLUDE_ROOT.'/expressoMail1_2/inc/class.imap_functions.inc.php');
16
17        // Classe principal do Mini Mail
18        class mobilemail{
19
20                // Define as funções públicas
21                var $public_functions = array(
22                        'mail_list'     => True,
23                        'change_folder' => True,
24                        'change_page'   => True,
25                        'show_msg'      => True,
26                        'send_mail'     => True,
27                        //'reply_msg'   => True,
28                        'new_msg'       => True,
29                );
30
31                var $folders; // Pastas imap
32                var $current_folder; // Pasta corrente
33                var $current_page; // Página corrente da lista de e-mails da pasta corrente
34                var $imap_functions; // Variável que recebe um objeto do tipo class.imap_functions.inc.php
35                var $allowed_tags = '<p><a><br><em><strong><ol><li><ul><div><font>'; // Tags html que não serão removidas
36                        // ao mostrar corpo do e-mail
37
38
39                /*
40                 * @function mobilemail
41                 * @abstract Método construtor da classe principal do Mini Mail
42                 * @author Mário César Kolling <mario.kolling@serpro.gov.br>
43                 */
44                function mobilemail()
45                {
46
47                        // Recupera atributos da classe gravados na sessão
48                        $folders = $GLOBALS['phpgw']->session->appsession('mobilemail.folders','mobile');
49                        $current_folder = $GLOBALS['phpgw']->session->appsession('mobilemail.current_folder','mobile');
50                        $current_page = $GLOBALS['phpgw']->session->appsession('mobilemail.current_page','mobile');
51
52                        // Inicializa a classe class.imap_functions.inc.php
53                        $this->imap_functions = new imap_functions();
54
55                        // Testa a existência dos atributos da classe recuperadas da sessão, e as carrega ou inicializa.
56                        if ($folders)
57                        {
58                                $this->folders = $folders;
59                        }
60                        else
61                        {
62                                $this->folders = $this->imap_functions->get_folders_list();
63                        }
64
65                        if ($current_folder)
66                        {
67                                $this->current_folder = $current_folder;
68                        }
69                        else
70                        {
71                                $this->current_folder = 0; // Define o folder INBOX como o folder corrente
72                        }
73
74                        if ($current_page)
75                        {
76                                $this->current_page = $current_page;
77                        }
78                        else
79                        {
80                                $this->current_page = 1; // Define a primeira página como página padrão
81                        }
82
83                }
84
85                /*
86                 * @function save_session
87                 * @abstract Salva os atributos da classe na sessão
88                 * @author Mário César Kolling <mario.kolling@serpro.gov.br>
89                 */
90                function save_session()
91                {
92
93                        $GLOBALS['phpgw']->session->appsession('mobilemail.folders','mobile',$this->folders);
94                        $GLOBALS['phpgw']->session->appsession('mobilemail.current_folder','mobile',$this->current_folder);
95                        $GLOBALS['phpgw']->session->appsession('mobilemail.current_page','mobile',$this->current_page);
96
97                }
98
99                /*
100                 * @function change_page
101                 * @abstract Troca a página de exibição da lista de e-mails, e mostra a nova página
102                 * @author Mário César Kolling <mario.kolling@serpro.gov.br>
103                 */
104                function change_page()
105                {
106                        if (isset($_GET['page']))
107                        {
108                                $this->current_page = $_GET['page'];
109                        }
110                        $this->mail_list();
111                        $this->save_session();
112                }
113
114                /*
115                 * @function change_folder
116                 * @abstract Troca a pasta do imap, e mostra a primeira página da nova pasta
117                 * @author Mário César Kolling <mario.kolling@serpro.gov.br>
118                 */
119                function change_folder()
120                {
121                        $folder = $_GET['folder'];
122                        if (isset($folder))
123                        {
124                                $this->current_folder = $folder;
125                                $this->current_page = 1;
126                        }
127                        $this->mail_list();
128                        $this->save_session();
129                }
130
131                /*
132                 * @function show_msg
133                 * @abstract Mostra a mensagem de e-mail requisitada
134                 * @author Mário César Kolling <mario.kolling@serpro.gov.br>
135                 */
136                 // TODO: retirar msg_folder dos parâmentros necessários no GET e usar $this->current_folder
137                function show_msg()
138                {
139                        $params = array();
140
141                        //TODO: testar chamar sem parâmetros para determinar se ocorre algum problema
142                        if (isset($_GET['msg_number']) && isset($_GET['msg_folder']))
143                        {
144                                $params = array(
145                                        'msg_number' => $_GET['msg_number'],
146                                        'msg_folder' => $_GET['msg_folder'],
147                                );
148                        }
149
150                        $msg = $this->imap_functions->get_info_msg($params);
151
152                        // Carrega o template
153                        $p = CreateObject('phpgwapi.Template', PHPGW_SERVER_ROOT . '/mobile/templates/'.$GLOBALS['phpgw_info']['server']['template_set']);
154                        $p->set_file(
155                                Array(
156                                        'view_msg_t' => 'view_msg.tpl'
157                                )
158                        );
159                        $p->set_block('view_msg_t', 'mail_header');
160                        $p->set_block('view_msg_t', 'mail_body');
161                        $p->set_block('view_msg_t', 'mail_footer');
162                        $p->set_block('view_msg_t', 'reply_msg');
163                        $p->set_block('view_msg_t', 'attachment_list');
164                        $p->set_block('view_msg_t', 'begin_anchor');
165                        $p->set_block('view_msg_t', 'end_anchor');
166
167                        // Define o cabeçalho do e-mail
168                        $p->set_var('from_label', lang("From"));
169                        $p->set_var('from', $msg['from']['full']);
170                        $p->set_var('to_label', lang("To"));
171
172                        $p->set_var('subject_label', lang("Subject"));
173                        $p->set_var('subject', $msg['subject']);
174                        $p->set_var('date_label', lang("Date"));
175                        $p->set_var('date', $msg['fulldate']);
176
177
178                        // Mostra o corpo do e-mail
179                        $p->set_var('body', strip_tags($msg['body'], $this->allowed_tags)); // Usa a função strip_tags() para filtrar
180                                // as tags que estão presentes no corpo do e-mail.
181                        $p->set_var('link_text', lang("Return"));
182                        $p->set_var('link', "index.php?menuaction=mobile.mobilemail.mail_list");
183
184
185                        $p->set_var('reply_text', lang("Reply"));
186                        $msg_number = $_GET['msg_number'];
187                        $msg_folder = $_GET['msg_folder'];
188                        $p->set_var('reply', "index.php?menuaction=mobile.mobilemail.new_msg&msg_number=$msg_number&msg_folder=$msg_folder");
189
190                        if (!empty($msg['attachments']) && !empty($msg['attachments']['names']))
191                        {
192                                $p->set_var('attachment_message', lang('This message have attachment(s)'));
193                        }
194                        else
195                        {
196                                $p->set_var('attachment_message', lang('This message don\'t have attachment(s)'));
197                        }
198
199                        $p->parse('view_msg_t', 'end_anchor');
200                        $p->parse('view_msg_t', 'begin_anchor');
201                        //$p->pfp('view_msg_t', 'mail_header');
202                        $p->pfp('out', 'mail_header');
203                        //$p->pfp('view_msg_t', 'mail_body');
204                        $p->pfp('out', 'mail_body');
205                        //$p->pfp('view_msg_t', 'attachment_list');
206                        $p->pfp('out', 'attachment_list');
207                        //$p->pfp('view_msg_t', 'mail_footer');
208                        $p->pfp('out', 'reply_msg');
209                        //$p->pfp('out', 'mail_footer');
210
211                }
212
213                /*
214                 * @function index
215                 * @abstract Página inicial da aplicação mobilemail, mantém o estado atual. Ou seja, mostra lista de e-mails
216                 * do folder e página definidos pelos parâmetros current_folder e current_page.
217                 * @author Mário César Kolling <mario.kolling@serpro.gov.br>
218                 */
219                 // TODO: Talvez seja melhor voltar sempre para o Inbox e primeira página
220                function index()
221                {
222
223                        $this->print_folder_selection();
224                        $this->mail_list();
225
226                        $this->save_session();
227
228                }
229
230                /*
231                 * @function print_folder_selection
232                 * @abstract Imprime o folder corrente (INBOX)
233                 * @author Mário César Kolling <mario.kolling@serpro.gov.br>
234                 */
235                function print_folder_selection()
236                {
237
238                        $p = CreateObject('phpgwapi.Template', PHPGW_SERVER_ROOT . '/mobile/templates/'.$GLOBALS['phpgw_info']['server']['template_set']);
239                        $p->set_file(
240                                Array(
241                                        'mobilemail_t' => 'mobilemail.tpl'
242                                )
243                        );
244                        $p->set_block('mobilemail_t', 'inbox_folder_list');
245                        $p->set_var('lang_folder', lang('Folder'));
246                        $p->set_var('lang_inbox', lang('Inbox'));
247                        //$p->set_var('folder_items', $folder_items);
248                        $p->parse('mobilemail_t', 'inbox_folder_list');
249                        $p->pfp('out', 'mobilemail_t');
250
251                }
252
253                /*
254                 * @function old_print_folder_selection
255                 * @abstract Imprime na tela a caixa de seleção de folders
256                 * @author Mário César Kolling <mario.kolling@serpro.gov.br>
257                 */
258                function old_print_folder_selection()
259                {
260
261                        // Processa as options
262                        $folder_items = '';
263
264                        foreach ($this->folders as $i => $j)
265                        {
266
267                                $option_selected = '';
268                                $p = CreateObject('phpgwapi.Template', PHPGW_SERVER_ROOT . '/mobile/templates/'.$GLOBALS['phpgw_info']['server']['template_set']);
269                                $p->set_file(
270                                        Array(
271                                                'mobilemail_t' => 'mobilemail.tpl'
272                                        )
273                                );
274                                $p->set_block('mobilemail_t', 'folder_item');
275
276                                if (is_numeric($i))
277                                {
278                                        if ($i == $this->current_folder)
279                                        {
280                                                 $option_selected = 'selected="selected"';
281                                        }
282
283                                        $p->set_var('option_selected', $option_selected);
284                                        $p->set_var('folder_id', $j['folder_id']);
285                                        $p->set_var('folder_name', $j['folder_id']); // Mudar... provavelmente usar preg_replace
286                                                                                                                                 // para substituir cpf pelo nome do usuário.
287
288                                        if ($j['folder_unseen'] > 0)
289                                        {
290                                                $p->set_var('folder_unseen', ' - ('.$j['folder_unseen'].')');
291                                        }
292
293                                        $folder_items .= $p->fp('mobile_t', 'folder_item');
294                                }
295
296                        }
297
298                        // Processa o select
299                        $p = CreateObject('phpgwapi.Template', PHPGW_SERVER_ROOT . '/mobile/templates/'.$GLOBALS['phpgw_info']['server']['template_set']);
300                        $p->set_file(
301                                Array(
302                                        'mobilemail_t' => 'mobilemail.tpl'
303                                )
304                        );
305                        $p->set_block('mobilemail_t', 'folder_list');
306                        $p->set_var('folder_items', $folder_items);
307                        $p->parse('mobilemail_t', 'folder_list');
308                        $p->pfp('out', 'mobilemail_t');
309
310                }
311
312                /*
313                 * @function mail_list
314                 * @abstract Imprime a lista de e-mails
315                 * @author Mário César Kolling <mario.kolling@serpro.gov.br>
316                 */
317                function mail_list()
318                {
319
320                        $this->messages_per_page = 10; //TODO: Pegar esse valor de preferences
321//              var $pages;
322//              var $actual_page;
323//              var $number_of_messages;
324
325                        if (!isset($this->number_of_messages))
326                        {
327                                $params = array(
328                                        'folder' => $this->folders[$this->current_folder]['folder_id'],
329                                );
330                                $this->number_of_messages = $this->imap_functions->get_num_msgs($params);
331                        }
332
333                        // Recalcular as páginas
334                        $this->pages = ceil($this->number_of_messages/$this->messages_per_page);
335                        $page = $this->current_page;
336
337                        $params = array(
338                                'folder'                        => $this->folders[$this->current_folder]['folder_id'],
339                                'msg_range_begin'       => $this->current_page * $this->messages_per_page - ($this->messages_per_page - 1),
340                                'msg_range_end'         => $this->current_page * $this->messages_per_page,
341                                'sort_box_type'         => 'SORTARRIVAL',
342                                'sort_box_reverse'      => 1
343                        );
344
345                        $messages = $this->imap_functions->get_range_msgs2($params);
346
347                        $this->print_mails_list($messages);
348                        $this->print_page_navigation($this->pages, $this->current_page);
349
350                }
351
352                /*
353                 * @function print_mails_list
354                 * @abstract Imprime a lista de mensagens
355                 * @author Mário César Kolling <mario.kolling@serpro.gov.br>
356                 * @param array Um array com a lista de mensagens recuperado por $this->imap_functions->get_range_msgs2($params)
357                 */
358                function print_mails_list($messages)
359                {
360
361                        // Cria a lista de e-mails
362                        $mail_rows = '';
363                        if ($this->number_of_messages != 0)
364                        {
365                                foreach ($messages as $index => $msg)
366                                {
367                                        $p = CreateObject('phpgwapi.Template', PHPGW_SERVER_ROOT . '/mobile/templates/'.$GLOBALS['phpgw_info']['server']['template_set']);
368                                        $p->set_file(
369                                                Array(
370                                                        'mobilemail_t' => 'mobilemail.tpl'
371                                                )
372                                        );
373                                        $p->set_block('mobilemail_t', 'mail_row');
374                                        $p->set_block('mobilemail_t', 'end_strong');
375                                        $p->set_block('mobilemail_t', 'begin_strong');
376                                        $p->set_var('unseen_bkg', "#FFFFFF");
377
378                                        if (is_numeric($index))
379                                        {
380                                                !empty($msg['from']['name']) ? $from = $msg['from']['name'] : $from = $msg['from']['email'];
381                                                !empty($msg['subject']) ? $subject = $msg['subject'] : $subject = lang('[empty subject]');
382                                                if ($msg['Unseen'] == 'U'){ //Setando as mensagens nao lidas
383                                                        $p->set_var('strong_unseen_begin', trim($p->fp('mobilemail_t', 'begin_strong')));
384                                                        $p->set_var('strong_unseen_end', trim($p->fp('mobilemail_t', 'end_strong')));
385                                                        $p->set_var('unseen_bkg', "#E0ECFF");
386                                                        //$p->set_var('unseen_bkg', "#E8EEF7");
387                                        }
388                                                $p->set_var('from', $from);
389                                                $p->set_var('subject', $subject);
390                                                $p->set_var('msg_number', $msg['msg_number']);
391                                                $p->set_var('date', $msg['udate']);
392                                                $p->set_var('msg_folder', $this->folders[$this->current_folder]['folder_id']);
393                                                $p->set_var('from_label', lang('From'));
394                                                $mail_rows .= $p->fp('mobilemail_t', 'mail_row');
395                                        }
396                                }
397
398                                // Imprime a lista de e-mails
399                                $p = CreateObject('phpgwapi.Template', PHPGW_SERVER_ROOT . '/mobile/templates/'.$GLOBALS['phpgw_info']['server']['template_set']);
400                                $p->set_file(
401                                        Array(
402                                                'mobilemail_t' => 'mobilemail.tpl'
403                                        )
404                                );
405                                $p->set_block('mobilemail_t', 'mail_list');
406                                $p->set_var('mail_rows', $mail_rows);
407                                $p->pfp('out', 'mail_list');
408                        }
409                        else
410                        {
411                                // Lista de e-mails vazia
412                                $p = CreateObject('phpgwapi.Template', PHPGW_SERVER_ROOT . '/mobile/templates/'.$GLOBALS['phpgw_info']['server']['template_set']);
413                                $p->set_file(
414                                        Array(
415                                                'mobilemail_t' => 'mobilemail.tpl'
416                                        )
417                                );
418                                $p->set_block('mobilemail_t', 'empty_list');
419                                $p->set_var('empty_message', lang('Empty folder'));
420                                $p->pfp('out', 'empty_list');
421                        }
422                }
423
424                /*
425                 * @funtion print_page_navigation
426                 * @abstract Imprime a barra de navegação da lista de e-mails da pasta corrente. Quem chama essa função é quem faz o controle do modelo.
427                 * @author Mário César Kolling <mario.kolling@serpro.gov.br>
428                 * @param integer Número de páginas que serão geradas
429                 * @param integer Página corrente
430                 */
431                // TODO: mover este método para a classe page_navigation subclasse de widget
432                function print_page_navigation($number_of_pages, $page = 1)
433                {
434
435                        $pages = '';
436
437                        if ($number_of_pages != 0)
438                        {
439                                // Geração das páginas
440                                for ($i = 1; $i <= $number_of_pages ; $i++)
441                                {
442
443                                        $p = CreateObject('phpgwapi.Template', PHPGW_SERVER_ROOT . '/mobile/templates/'.$GLOBALS['phpgw_info']['server']['template_set']);
444                                        $p->set_file(
445                                                Array(
446                                                        'mobilemail_t' => 'mobilemail.tpl'
447                                                )
448                                        );
449
450                                        $p->set_block('mobilemail_t', 'space');
451                                        $p->set_block('mobilemail_t', 'begin_anchor');
452                                        $p->set_block('mobilemail_t', 'end_anchor');
453                                        $p->set_block('mobilemail_t', 'page_item');
454                                        $p->set_block('mobilemail_t', 'begin_strong');
455                                        $p->set_block('mobilemail_t', 'end_strong');
456
457                                        if ($i == $page)
458                                        {
459                                                // Se for a página sendo gerada for a página corrente,
460                                                // não gera a âncora e destaca o número (negrito)
461                                                $p->set_var('end_anchor', '');
462                                                $p->set_var('begin_anchor', '');
463                                                $p->set_var('begin_strong', trim($p->fp('mobilemail_t', 'begin_strong')));
464                                                $p->set_var('end_strong', trim($p->fp('mobilemail_t', 'end_strong')));
465                                        }
466                                        else
467                                        {
468                                                // Senão, gera a âncora
469                                                $p->set_var('begin_strong', '');
470                                                $p->set_var('end_strong', '');
471                                                $p->set_var('end_anchor', trim($p->fp('mobilemail_t', 'end_anchor')));
472                                                $p->set_var('begin_anchor_href', "index.php?menuaction=mobile.mobilemail.change_page&page=$i");
473                                                $p->set_var('begin_anchor', trim($p->fp('mobilemail_t', 'begin_anchor')));
474                                        }
475
476                                        $p->set_var('page', $i);
477                                        //$pages .= trim($p->fp('mobilemail_t', 'page_item'));
478
479                                }
480                                $pages .= " ".$page." ".lang("of")." ".$number_of_pages." ";
481
482                                // Geração dos links "anterior" e "próximo"
483                                $p = CreateObject('phpgwapi.Template', PHPGW_SERVER_ROOT . '/mobile/templates/'.$GLOBALS['phpgw_info']['server']['template_set']);
484                                $p->set_file(
485                                        Array(
486                                                'mobilemail_t' => 'mobilemail.tpl'
487                                        )
488                                );
489
490                                //$p->set_block('mobilemail_t', 'space');
491                                $p->set_block('mobilemail_t', 'mail_footer');
492                                $p->set_block('mobilemail_t', 'previous');
493                                $p->set_block('mobilemail_t', 'next');
494
495                                $next_page = $page + 1;
496                                $previous_page = $page - 1;
497
498                                if ($page == 1)
499                                {
500                                        // Se for a primeira página, não imprime o link "anterior""
501                                        $p->set_var('previous', '');
502                                        if ($page == $number_of_pages)
503                                        {
504                                                // Se só existir uma página, não imprime o link "próximo"
505                                                $p->set_var('next', '');
506                                        }
507                                        else
508                                        {
509                                                $p->set_var('next_href', "index.php?menuaction=mobile.mobilemail.change_page&page=$next_page");
510                                                $p->set_var('next', trim($p->fp('mobilemail_t', 'next')));
511                                        }
512
513                                }
514                                else if ($page == $number_of_pages)
515                                {
516                                        // Se for a última página, não imprime o link "próximo"
517                                        $p->set_var('next', '');
518                                        $p->set_var('previous_href', "index.php?menuaction=mobile.mobilemail.change_page&page=$previous_page");
519                                        $p->set_var('previous', trim($p->fp('mobilemail_t', 'previous')));
520                                }
521                                else
522                                {
523                                        // Senão, imprime os links "anterior" e "próximo"
524                                        $p->set_var('previous_href', "index.php?menuaction=mobile.mobilemail.change_page&page=$previous_page");
525                                        $p->set_var('previous', trim($p->fp('mobilemail_t', 'previous')));
526
527                                        $p->set_var('next_href', "index.php?menuaction=mobile.mobilemail.change_page&page=$next_page");
528                                        $p->set_var('next', trim($p->fp('mobilemail_t', 'next')));
529                                }
530
531                                $p->set_var('pages', $pages);
532                                $p->pfp('out', 'mail_footer');
533                        }
534
535                }
536
537                /*
538                 * @function new_msg()
539                 * @abstract Gera o formulário para criar novo e-mail.
540                 * @author Rommel de Brito Cysne <rommel.cysne@serpro.gov.br>
541                 
542                function new_msg()
543                {
544                        $p = CreateObject('phpgwapi.Template', PHPGW_SERVER_ROOT . '/mobile/templates/'.$GLOBALS['phpgw_info']['server']['template_set']);
545                        $p->set_file(
546                                Array(
547                                        'new_msg_t' => 'new_msg.tpl'
548                                )
549                        );
550
551                        $p->set_block('new_msg_t', 'msg_header');
552                        $p->set_block('new_msg_t', 'text');
553                        $p->set_block('new_msg_t', 'begin_form');
554                        $p->set_block('new_msg_t', 'end_form');
555                        $p->set_block('new_msg_t', 'hidden_area');
556
557                        $p->set_var('to_label', lang("To"));
558                        $p->set_var('to', "");
559                        $p->set_var('to_mail', "");
560
561                        $p->set_var('subject_label', lang("Subject"));
562                        $p->set_var('subject', "");
563
564                        $p->set_var('msg_number', $_GET['msg_number']);
565                        $p->set_var('msg_folder', $_GET['msg_folder']);
566
567                        $p->set_var('send_label', lang("Send"));
568
569                        $p->set_var('form_action', "index.php?menuaction=mobile.mobilemail.send_mail");
570
571                        $p->pfp('out', 'begin_form');
572                        $p->pfp('out', 'msg_header');
573                        $p->pfp('out', 'text');
574                        $p->pfp('out', 'hidden_area');
575                        $p->pfp('out', 'end_form');
576
577               
578                }
579*/
580                /*
581                 * @function new_msg()
582                 * @abstract Gera o formulário para criar/enviar novo e-mail ou resposta de e-mail.
583                 * @author Rommel de Brito Cysne <rommel.cysne@serpro.gov.br>
584                 */
585                function new_msg()
586                {
587                        $p = CreateObject('phpgwapi.Template', PHPGW_SERVER_ROOT . '/mobile/templates/'.$GLOBALS['phpgw_info']['server']['template_set']);
588                        $p->set_file(
589                                Array(
590                                        'new_msg_t' => 'new_msg.tpl'
591                                )
592                        );
593
594
595                        if (isset($_GET['msg_number']))
596                        {
597                                $params = array(
598                                        'msg_number' => $_GET['msg_number'],
599                                );
600
601                                $msg_number = $_GET['msg_number'];
602                        }
603               
604                        if($params)
605                                $msg = $this->imap_functions->get_info_msg($params);
606
607
608                        $p->set_block('new_msg_t', 'msg_header');
609                        $p->set_block('new_msg_t', 'text');
610                        $p->set_block('new_msg_t', 'begin_form');
611                        $p->set_block('new_msg_t', 'end_form');
612                        $p->set_block('new_msg_t', 'hidden_area');
613
614                        if($_GET['clk'])
615                        {
616
617                                $p->set_var('to_label', lang("To"));
618                                $p->set_var('to', "");
619                                $p->set_var('to_mail', "");
620                                $p->set_var('subject_label', lang("Subject"));
621                                $p->set_var('subject', "");
622
623                        }
624                        else if($_GET['cc_mob'])
625                        {
626
627                                $p->set_var('to_label', lang("To"));
628                                $p->set_var('to', $_GET['input_to']);
629                                $p->set_var('to_mail', $_GET['input_to_mail']);
630
631                                $p->set_var('subject_label', lang("Subject"));
632                                $p->set_var('subject', "");
633
634                                $p->set_var('msg_number', $_GET['msg_number']);
635                                $p->set_var('msg_folder', $_GET['msg_folder']);
636
637                                $p->set_var('read_only', 'readonly');
638                        }
639                        else
640                        {
641
642                                $p->set_var('from_label', lang("From"));
643                                $p->set_var('from', $msg['toaddress2']);
644
645                                $p->set_var('to_label', lang("To"));
646                                $mail_to = $msg['from']['full'];
647                                $p->set_var('to', $msg['from']['name']);
648                                $p->set_var('to_mail', $msg['from']['email']);
649
650                                $p->set_var('subject_label', lang("Subject"));
651                                $p->set_var('subject', "Re:" . $msg['subject']);
652
653                                $p->set_var('msg_number', $_GET['msg_number']);
654                                $p->set_var('msg_folder', $_GET['msg_folder']);
655
656                                $p->set_var('read_only', "readonly");
657                        }
658
659                        $p->set_var('send_label', lang("Send"));
660
661                        $p->set_var('form_action', "index.php?menuaction=mobile.mobilemail.send_mail");
662
663                        $p->pfp('out', 'begin_form');
664                        $p->pfp('out', 'msg_header');
665                        $p->pfp('out', 'text');
666                        $p->pfp('out', 'hidden_area');
667                        $p->pfp('out', 'end_form');
668
669               
670                }
671
672                /*
673                 * @function send_mail()
674                 * @abstract Função que realiza o envio de e-mails.
675                 * @author Rommel de Brito Cysne <rommel.cysne@serpro.gov.br>
676                 */
677                function send_mail()
678                {
679                        //Chamada da classe phpmailer
680                        include_once(PHPGW_SERVER_ROOT."/phpgwapi/inc/class.phpmailer.inc.php");
681
682                        //Recebe os dados do form (passados pelo POST)
683                        $userName = $_POST['input_to']; //"User Someone";
684                        $userMail = $_POST['input_to_mail']; //"user.someone@mail.com.br";
685                        $subject = $_POST['input_subject']; //"Mail Subject";
686                        $body = $_POST['body']; //"Mail body. Any text.";
687
688                        if($userMail == "")
689                        {
690                                $userMail = $userName;
691                        }
692
693                        //Cria objeto
694                        $mail = new PHPMailer();
695
696                        if(!$this->imap_functions->add_recipients("to", $userMail, &$mail))
697                        {
698                                $error_msg = lang("Some addresses in the To field were not recognized. Please make sure that all addresses are properly formed");
699                        }
700
701                        $mail->IsSMTP();
702                        $mail->Host = $_SESSION['phpgw_info']['expressomail']['email_server']['smtpServer'];
703                        $mail->Port = $_SESSION['phpgw_info']['expressomail']['email_server']['smtpPort'];
704
705                        //Envia os emails em formato HTML; se false -> desativa.
706                        $mail->IsHTML(true);
707                        //Email do remetente da mensagem
708                        $mail->Sender = $mail->From = $_SESSION['phpgw_info']['expressomail']['user']['email'];
709                        //Nome do remetente do email
710                        $mail->SenderName = $mail->FromName = $_SESSION['phpgw_info']['expressomail']['user']['fullname'];
711                        //Endereço de destino do email, ou seja, pra onde a mensagem vai
712                        //$mail->AddAddress("$userMail");
713                        //Assunto da mensagem
714                        $mail->Subject = $subject;
715                        //Corpo da mensagem
716                        $mail->Body .= "<br />$body<br />";
717
718                        //Cria um objeto template
719                        $p = CreateObject('phpgwapi.Template', PHPGW_SERVER_ROOT . '/mobile/templates/'.$GLOBALS['phpgw_info']['server']['template_set']);
720                        //Define o template para mensagens de retorno da funcao
721                        $p->set_file(
722                                Array(
723                                        'sent_msg_t' => 'sent_msg.tpl'
724                                )
725                        );
726
727                        $p->set_block('sent_msg_t','retorno');
728                        @header('Refresh: 1; url=./');
729
730                        //Se o e-mail nao for enviado por qualquer motivo...
731                        if(!$mail->Send())
732                        {
733                                //... é exibida a mensagem abaixo e o respectivo erro...
734                                $p->set_var('msg', lang("Message not sent"));
735                                $p->set_var('erro', lang("error") . $mail->ErrorInfo);
736
737                        //... caso contrário...
738                        }else {
739                                //... mostra mensagem de sucesso e link de retorno à lista de e-mail
740                                $p->set_var('msg', lang("Message sent successfully"));
741                                //$p->set_var('link_text', lang("Return"));
742                                //$p->set_var('link', "mobilemail_index.php");
743
744                        }
745
746                        $p->pfp('out','retorno');
747
748
749                }
750
751
752
753
754                //PAREI
755                function delete_msg()
756                {
757               
758                        $this->username           = $_SESSION['phpgw_info']['expressomail']['user']['userid'];
759                        $this->password           = $_SESSION['phpgw_info']['expressomail']['user']['passwd'];
760                        $this->imap_server        = $_SESSION['phpgw_info']['expressomail']['email_server']['imapServer'];
761                        $this->imap_port          = $_SESSION['phpgw_info']['expressomail']['email_server']['imapPort'];
762                        $this->imap_delimiter = $_SESSION['phpgw_info']['expressomail']['email_server']['imapDelimiter'];
763
764                        $mbox_stream = @imap_open("{".$this->imap_server.":".$this->imap_port.$this->imap_options."}".$folder, $this->username, $this->password) or die(serialize(array('imap_error' => imap_last_error())));
765
766
767                }
768
769                function retorna()
770                {
771                       
772                }
773
774        }
775?>
Note: See TracBrowser for help on using the repository browser.