source: companies/serpro/mobile/inc/class.mobilemail.inc.php @ 903

Revision 903, 23.4 KB checked in by niltonneto, 15 years ago (diff)

Importacao inicial do Expresso do Serpro

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