[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Phpgroupware-cvs] CVS: email/inc class.boaction.inc.php,1.14,1.15 class
From: |
Dave Hall <address@hidden> |
Subject: |
[Phpgroupware-cvs] CVS: email/inc class.boaction.inc.php,1.14,1.15 class.bocompose.inc.php,1.4,1.5 class.bofilters.inc.php,1.12,1.13 class.bofolder.inc.php,1.5,1.6 class.boindex.inc.php,1.26,1.27 class.bomessage.inc.php,1.10,1.11 class.bopreferences.inc.php,1.20,1.21 class.bosend.inc.php,1.9,1.10 class.mail_dcom.inc.php,1.8,1.9 class.mail_dcom_base.inc.php,1.6,1.7 class.mail_dcom_base_sock.inc.php,1.22,1.23 class.mail_dcom_imap.inc.php,1.19,1.20 class.mail_dcom_imap_sock.inc.php,1.13,1.14 class.mail_dcom_nntp.inc.php,1.2,1.3 class.mail_dcom_nntp_sock.inc.php,1.3,1.4 class.mail_dcom_pop3.inc.php,1.9,1.10 class.mail_dcom_pop3_sock.inc.php,1.18,1.19 class.mail_msg.inc.php,1.2,1.3 class.mail_msg_base.inc.php,1.75,1.76 class.mail_msg_display.inc.php,1.37,1.38 class.mail_msg_wrappers.inc.php,1.33,1.34 class.mail_send.inc.php,1.9,1.10 class.uicompose.inc.php,1.2,1.3 class.uifilters.inc.php,1.10,1.11 class.uifolder.inc.php,1.2,1.3 class.uiindex.inc.php,1.18,1.19 class.uimessage.inc.php,1.6,1.7 class.uipreferences.inc.php,1.14,1.15 functions.inc.php,1.114,1.115 hook_admin.inc.php,1.4,1.5 hook_email_add_def_pref.inc.php,1.4,1.5 hook_home.inc.php,1.54,1.55 hook_manual.inc.php,1.4,1.5 hook_notifywindow.inc.php,1.9,1.10 hook_notifywindow_simple.inc.php,1.7,1.8 hook_preferences.inc.php,1.12,1.13 |
Date: |
Fri, 25 Oct 2002 08:45:57 -0400 |
Update of /cvsroot/phpgroupware/email/inc
In directory subversions:/tmp/cvs-serv3749/inc
Modified Files:
class.boaction.inc.php class.bocompose.inc.php
class.bofilters.inc.php class.bofolder.inc.php
class.boindex.inc.php class.bomessage.inc.php
class.bopreferences.inc.php class.bosend.inc.php
class.mail_dcom.inc.php class.mail_dcom_base.inc.php
class.mail_dcom_base_sock.inc.php class.mail_dcom_imap.inc.php
class.mail_dcom_imap_sock.inc.php class.mail_dcom_nntp.inc.php
class.mail_dcom_nntp_sock.inc.php class.mail_dcom_pop3.inc.php
class.mail_dcom_pop3_sock.inc.php class.mail_msg.inc.php
class.mail_msg_base.inc.php class.mail_msg_display.inc.php
class.mail_msg_wrappers.inc.php class.mail_send.inc.php
class.uicompose.inc.php class.uifilters.inc.php
class.uifolder.inc.php class.uiindex.inc.php
class.uimessage.inc.php class.uipreferences.inc.php
functions.inc.php hook_admin.inc.php
hook_email_add_def_pref.inc.php hook_home.inc.php
hook_manual.inc.php hook_notifywindow.inc.php
hook_notifywindow_simple.inc.php hook_preferences.inc.php
Log Message:
ported anglemail - used anglemail-1.1-pre5-12 release - finally :)
Index: class.boaction.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.boaction.inc.php,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -r1.14 -r1.15
*** class.boaction.inc.php 28 Sep 2002 15:20:19 -0000 1.14
--- class.boaction.inc.php 25 Oct 2002 12:45:52 -0000 1.15
***************
*** 1,481 ****
! <?php
!
/**************************************************************************\
! * phpGroupWare - email BO Class for Message Actions
*
! * http://www.phpgroupware.org
*
! * Written by Angelo (Angles) Puglisi <address@hidden> *
! * --------------------------------------------
*
! * This program is free software; you can redistribute it and/or modify
it *
! * under the terms of the GNU General Public License as published by
the *
! * Free Software Foundation; either version 2 of the License, or (at
your *
! * option) any later version.
*
[...1528 lines suppressed...]
! $GLOBALS['phpgw']->redirect($html_reference);
! //$GLOBALS['phpgw']->common->phpgw_footer();
! }
! else
! {
! $GLOBALS['phpgw']->msg->end_request();
! //$GLOBALS['phpgw']->common->phpgw_footer();
! }
! // close down ALL mailserver streams
! $GLOBALS['phpgw']->msg->end_request();
! // destroy the object
! $GLOBALS['phpgw']->msg = '';
! unset($GLOBALS['phpgw']->msg);
! // shut down this transaction
! $GLOBALS['phpgw']->common->phpgw_exit(False);
! }
!
!
! }
! ?>
Index: class.bocompose.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.bocompose.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -r1.4 -r1.5
*** class.bocompose.inc.php 26 Jan 2002 22:47:03 -0000 1.4
--- class.bocompose.inc.php 25 Oct 2002 12:45:52 -0000 1.5
***************
*** 1,511 ****
! <?php
!
/**************************************************************************\
! * phpGroupWare - email BO Class for Folder Actions and List Display
*
! * http://www.phpgroupware.org
*
! * Written by Angelo (Angles) Puglisi <address@hidden> *
! * --------------------------------------------
*
! * This program is free software; you can redistribute it and/or modify
it *
! * under the terms of the GNU General Public License as published by
the *
! * Free Software Foundation; either version 2 of the License, or (at
your *
! * option) any later version.
*
[...1250 lines suppressed...]
!
! //$this->xi['attachfile_js_link'] =
$GLOBALS['phpgw']->link(
! //
'/'.$GLOBALS['phpgw_info']['flags']['currentapp'].'/attach_file.php');
! $this->xi['body_box_name'] = 'body';
!
! if ($GLOBALS['phpgw']->msg->get_isset_pref('email_sig')
! && ($GLOBALS['phpgw']->msg->get_pref_value('email_sig')
!= ''))
! {
! $this->xi['do_checkbox_sig'] = True;
! }
! else
! {
! $this->xi['do_checkbox_sig'] = False;
! }
!
! }
!
!
! }
! ?>
Index: class.bofilters.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.bofilters.inc.php,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -r1.12 -r1.13
*** class.bofilters.inc.php 1 Feb 2002 23:07:02 -0000 1.12
--- class.bofilters.inc.php 25 Oct 2002 12:45:52 -0000 1.13
***************
*** 1,1677 ****
! <?php
!
/**************************************************************************\
! * phpGroupWare - E-Mail Filters
*
! * Written by Angelo (Angles) Puglisi <address@hidden> *
! * Copyright (C) 2001 Angelo Puglisi (Angles)
*
! * -----------------------------------------------
*
! * This program is free software; you can redistribute it and/or modify
it *
! * under the terms of the GNU General Public License as published by
the *
! * Free Software Foundation; either version 2 of the License, or (at
your *
! * option) any later version.
*
[...3525 lines suppressed...]
! $this->result_set = $initial_result_set;
! if ($this->debug > 0) { echo 'bofilters:
do_imap_search: number of matches = ' .count($this->result_set).'<br>'."\r\n"; }
! // make a "fake" folder_info array to make
things simple for get_msg_list_display
! $this->fake_folder_info['is_imap'] = True;
! $this->fake_folder_info['folder_checked'] =
$GLOBALS['phpgw']->msg->get_arg_value('folder');
! $this->fake_folder_info['alert_string'] = 'you
have search results';
! $this->fake_folder_info['number_new'] =
count($this->result_set);
! $this->fake_folder_info['number_all'] =
count($this->result_set);
! // retrieve user displayable data for each
message in the result set
! $this->result_set_mlist =
$GLOBALS['phpgw']->msg->get_msg_list_display($this->fake_folder_info,$this->result_set);
! }
! $GLOBALS['phpgw']->msg->end_request();
! //echo 'bofilters: do_imap_search: returned:<br>';
var_dump($this->result_set); echo "<br>\r\n";
! }
! */
!
!
! // end of class
! }
! ?>
Index: class.bofolder.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.bofolder.inc.php,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -r1.5 -r1.6
*** class.bofolder.inc.php 20 Jan 2002 23:58:47 -0000 1.5
--- class.bofolder.inc.php 25 Oct 2002 12:45:52 -0000 1.6
***************
*** 1,379 ****
! <?php
!
/**************************************************************************\
! * phpGroupWare - email BO Class for Folder Actions and List Display
*
! * http://www.phpgroupware.org
*
! * Written by Angelo (Angles) Puglisi <address@hidden> *
! * xml-rpc and soap code template by Milosch and others
*
! * --------------------------------------------
*
! * This program is free software; you can redistribute it and/or modify
it *
! * under the terms of the GNU General Public License as published by
the *
! * Free Software Foundation; either version 2 of the License, or (at
your *
! * option) any later version.
*
!
\**************************************************************************/
!
! /* $Id$ */
!
! class bofolder
! {
! var $public_functions = array(
! 'get_langed_labels' => True,
! 'folder' => True,
! 'folder_action' => True,
! 'folder_data' => True
! );
! var $nextmatchs;
! var $index_base_link='';
! //var $debug = True;
! var $debug = False;
! var $xi;
! var $xml_functions = array();
!
! var $soap_functions = array(
! 'get_langed_labels' => array(
! 'in' => array('int'),
! 'out' => array('array')
! ),
! 'folder' => array(
! 'in' => array('int'),
! 'out' => array('array')
! )
! );
!
! function bofolder()
! {
!
! }
!
! function get_langed_labels()
! {
! // ---- Langs ----
! }
!
! function folder()
! {
! if ($this->debug) { echo 'ENTERING:
email.bofolder.folder'.'<br>'; }
! // create class objects
! $this->nextmatchs = CreateObject('phpgwapi.nextmatchs');
!
! if (is_object($GLOBALS['phpgw']->msg))
! {
! if ($this->debug) { echo
'email.bofolder.folder: is_object test: $GLOBALS[phpgw]->msg is already set, do
not create again<br>'; }
! }
! else
! {
! if ($this->debug) { echo
'email.bofolder.folder: $GLOBALS[phpgw]->msg is NOT set, creating mail_msg
object<br>'; }
! $GLOBALS['phpgw']->msg =
CreateObject("email.mail_msg");
! }
!
! $args_array = Array();
! $args_array['do_login'] = True;
! if ($this->debug == True) { echo
'email.bofolder.folder: call msg->begin_request with args array:<pre>';
print_r($args_array); echo '</pre>'; }
! $some_stream =
$GLOBALS['phpgw']->msg->begin_request($args_array);
! // error if login failed
! if (($args_array['do_login'] == True)
! && (!$some_stream))
! {
!
$GLOBALS['phpgw']->msg->login_error($GLOBALS['PHP_SELF'].', folder()');
! }
!
!
! // ---- Create or Delete or Rename a Folder ? ----
! // "folder_action()" handles checking if any action
should be taken
! $this->folder_action();
!
!
! // ---- Get a List Of All Folders AND Display them
----
! $this->folder_data();
!
! // end the email transaction
! $GLOBALS['phpgw']->msg->end_request();
! }
!
!
!
! function folder_action()
! {
! // ---- Create or Delete or Rename a Folder ? ----
! if (($GLOBALS['phpgw']->msg->get_arg_value('action') ==
'create')
! || ($GLOBALS['phpgw']->msg->get_arg_value('action') ==
'delete')
! || ($GLOBALS['phpgw']->msg->get_arg_value('action') ==
'rename')
! || ($GLOBALS['phpgw']->msg->get_arg_value('action') ==
'create_expert')
! || ($GLOBALS['phpgw']->msg->get_arg_value('action') ==
'delete_expert')
! || ($GLOBALS['phpgw']->msg->get_arg_value('action') ==
'rename_expert'))
! {
! // we have been requested to do a folder action
!
! // basic sanity check
! if (
($GLOBALS['phpgw']->msg->get_isset_arg('["target_fldball"]["folder"]') == False)
! ||
($GLOBALS['phpgw']->msg->get_arg_value('["target_fldball"]["folder"]') == '') )
! {
! // Error Result Message
! $action_report = lang('Please type a
folder name in the text box');
! }
! elseif (
(($GLOBALS['phpgw']->msg->get_arg_value('action') == 'rename')
! ||
($GLOBALS['phpgw']->msg->get_arg_value('action') == 'rename_expert'))
! &&
(($GLOBALS['phpgw']->msg->get_isset_arg('["source_fldball"]["folder"]') ==
False)
! ||
($GLOBALS['phpgw']->msg->get_arg_value('["source_fldball"]["folder"]') == '')) )
! {
! // Error Result Message
! $action_report = lang('Please select a
folder to rename');
! }
! else
! {
! $source_fldball =
$GLOBALS['phpgw']->msg->get_arg_value('source_fldball');
! $target_fldball =
$GLOBALS['phpgw']->msg->get_arg_value('target_fldball');
!
! // ---- Establish Email Server
Connectivity Conventions ----
! $server_str =
$GLOBALS['phpgw']->msg->get_arg_value('mailsvr_callstr');
! $name_space =
$GLOBALS['phpgw']->msg->get_arg_value('mailsvr_namespace');
! $dot_or_slash =
$GLOBALS['phpgw']->msg->get_arg_value('mailsvr_delimiter');
!
! // ---- Prep Target Folder
! // get rid of the escape \ that
magic_quotes HTTP POST will add
! // " becomes \" and ' becomes \'
and \ becomes \\
! $target_stripped =
$GLOBALS['phpgw']->msg->stripslashes_gpc($target_fldball['folder']);
! $target_fldball['folder'] =
$target_stripped;
! // == is that necessary ? == are folder
names allowed with ' " \ in them ? ===
! // rfc2060 does NOT prohibit them
!
! // obtain propper folder names
! // if this is a delete, the folder name
will (should) already exist
! // although the user had to type in the
folder name
! // for these actions, the "expert" tag
means:
! // "do not add the name space for me,
I'm an expert and I know what I'm doing"
! if
(($GLOBALS['phpgw']->msg->get_arg_value('action') == 'create_expert')
! ||
($GLOBALS['phpgw']->msg->get_arg_value('action') == 'delete_expert')
! ||
($GLOBALS['phpgw']->msg->get_arg_value('action') == 'rename_expert'))
! {
! // other than stripslashes_gpc,
do nothing
! // the user is an expert, do
not alter the phpgw->msg->get_arg_value('target_folder') name at all
! }
! else
! {
! // since the user is not an
"expert", we properly prepare the folder name
! // see if the folder already
exists in the folder lookup list
! // this would be the case if
the user is deleting a folder
! $target_lookup =
$GLOBALS['phpgw']->msg->folder_lookup('', $target_fldball['folder']);
! if ($target_lookup != '')
! {
! //
phpgw->msg->get_arg_value('target_folder') returned an official long name from
the lookup
!
$target_fldball['folder'] = $target_lookup;
! }
! else
! {
! // the lookup failed,
so this is not an existing folder
! // we have to add the
namespace for the user
! $target_long =
$GLOBALS['phpgw']->msg->get_folder_long($target_fldball['folder']);
!
$target_fldball['folder'] = $target_long;
! }
! }
!
! // add server string to target folder
! $target_fldball['folder'] =
$server_str.$target_fldball['folder'];
!
! // ===== NOTE: maybe some "are you
sure" code ???? =====
! if
(($GLOBALS['phpgw']->msg->get_arg_value('action') == 'create')
! ||
($GLOBALS['phpgw']->msg->get_arg_value('action') == 'create_expert'))
! {
! $success =
$GLOBALS['phpgw']->msg->phpgw_createmailbox($target_fldball);
! }
! elseif
(($GLOBALS['phpgw']->msg->get_arg_value('action') == 'delete')
! ||
($GLOBALS['phpgw']->msg->get_arg_value('action') == 'delete_expert'))
! {
! $success =
$GLOBALS['phpgw']->msg->phpgw_deletemailbox($target_fldball);
! }
! elseif
(($GLOBALS['phpgw']->msg->get_arg_value('action') == 'rename')
! ||
($GLOBALS['phpgw']->msg->get_arg_value('action') == 'rename_expert'))
! {
! //
phpgw->msg->get_arg_value('source_folder') is taken directly from the listbox,
so it *should* be official long name already
! // but it does need to be
prep'd in because we prep out the foldernames put in that listbox
! $source_preped =
$GLOBALS['phpgw']->msg->prep_folder_in($source_fldball['folder']);
! $source_fldball['folder'] =
$source_preped;
! // add server string to source
folder
! $source_fldball['folder'] =
$server_str.$source_fldball['folder'];
! $success =
$GLOBALS['phpgw']->msg->phpgw_renamemailbox($source_fldball, $target_fldball);
! }
!
! // Result Message
! if
(($GLOBALS['phpgw']->msg->get_arg_value('action') == 'rename')
! ||
($GLOBALS['phpgw']->msg->get_arg_value('action') == 'rename_expert'))
! {
! $action_report =
!
$GLOBALS['phpgw']->msg->get_arg_value('action') .' '.lang('folder').'
'.$GLOBALS['phpgw']->msg->get_arg_value('source_folder')
! .' '.lang('to').'
'.$GLOBALS['phpgw']->msg->get_arg_value('target_folder') .' <br>'
! .lang('result').' : ';
! }
! else
! {
! $action_report =
$GLOBALS['phpgw']->msg->get_arg_value('action').' '.lang('folder').'
'.$GLOBALS['phpgw']->msg->get_arg_value('target_folder').' <br>'
! .lang('result').' : ';
! }
! // did it work or not
! if ($success)
! {
! // assemble some feedback to
show
! $action_report = $action_report
.lang('OK');
! }
! else
! {
! $imap_err =
$GLOBALS['phpgw']->msg->phpgw_server_last_error();
! if ($imap_err == '')
! {
! $imap_err =
lang('unknown error');
! }
! // assemble some feedback to
show the user about this error
! $action_report = $action_report
.$imap_err;
! }
! }
! }
! else
! {
! // we were NOT requested to do a folder action
! // we did not have the key data needed
describing the desired action
! $action_report = '';
! $success = False;
! }
!
! // save the "action_report" to the $this->xi[] data
array
! $this->xi['action_report'] = $action_report;
!
! // we may have been called externally, return this
action report
! //return $action_report;
! // we may have been called externally, return if we
succeeded or not
! return $success;
! }
!
!
! function folder_data()
! {
! // ---- Establish Email Server Connectivity
Conventions ----
! $server_str =
$GLOBALS['phpgw']->msg->get_arg_value('mailsvr_callstr');
! $name_space =
$GLOBALS['phpgw']->msg->get_arg_value('mailsvr_namespace');
! $dot_or_slash =
$GLOBALS['phpgw']->msg->get_arg_value('mailsvr_delimiter');
!
! // ---- Get a List Of All Folders AND Display them
----
! $folder_list =
$GLOBALS['phpgw']->msg->get_folder_list();
! if ($this->debug) { echo 'email.bofolder.folder_data:
$folder_list[] dump:<pre>'; print_r($folder_list); echo '</pre>'; }
!
! $this->xi['folder_list_display'] = array();
! for ($i=0; $i<count($folder_list);$i++)
! {
! $folder_long = $folder_list[$i]['folder_long'];
! $folder_short =
$folder_list[$i]['folder_short'];
!
! // SA_ALL gets the stats for the number of:
messages, recent, unseen, uidnext, uidvalidity
! //$mailbox_status =
$GLOBALS['phpgw']->msg->dcom->status($GLOBALS['phpgw']->msg->get_mailsvr_stream(),"$server_str"."$folder_long",SA_ALL);
! $mailbox_status =
$GLOBALS['phpgw']->msg->phpgw_status("$folder_long");
! //$folder_info = array();
! //$folder_info =
$GLOBALS['phpgw']->msg->get_folder_status_info();
!
! //debug
! //$real_long_name =
$GLOBALS['phpgw']->msg->folder_lookup('',$folder_list[$i]['folder_short']);
! //if ($real_long_name != '')
! //{
! // echo 'folder exists, official long
name: '.$real_long_name.'<br>';
! //}
!
! $tr_color =
$this->nextmatchs->alternate_row_color($tr_color);
!
$this->xi['folder_list_display'][$i]['list_backcolor'] = $tr_color;
!
$this->xi['folder_list_display'][$i]['folder_link'] = $GLOBALS['phpgw']->link(
! '/index.php',
!
'menuaction=email.uiindex.index'
!
.'&fldball[folder]='.$GLOBALS['phpgw']->msg->prep_folder_out($folder_long)
!
.'&fldball[acctnum]='.$GLOBALS['phpgw']->msg->get_acctnum());
!
! //if
((isset($GLOBALS['phpgw']->msg->get_arg_value('show_long')))
! if
(($GLOBALS['phpgw']->msg->get_isset_arg('show_long') == True)
! &&
($GLOBALS['phpgw']->msg->get_arg_value('show_long') != ''))
! {
!
$this->xi['folder_list_display'][$i]['folder_name'] = $folder_long;
! }
! else
! {
!
$this->xi['folder_list_display'][$i]['folder_name'] = $folder_short;
! }
!
//$this->xi['folder_list_display'][$i]['folder_name'] =
$folder_list[$i]['folder_long']);
!
//$this->xi['folder_list_display'][$i]['folder_name'] =
$GLOBALS['phpgw']->msg->htmlspecialchars_encode($folder_long));
!
!
$this->xi['folder_list_display'][$i]['msgs_unseen'] =
number_format($mailbox_status->unseen);
!
//$this->xi['folder_list_display'][$i]['msgs_unseen'] =
number_format($folder_info['number_new']));
!
//$this->xi['folder_list_display'][$i]['msgs_total'] = $total_msgs);
!
$this->xi['folder_list_display'][$i]['msgs_total'] =
number_format($mailbox_status->messages);
!
//$this->xi['folder_list_display'][$i]['msgs_total'] =
number_format($folder_info['number_all']));
! }
! if ($this->debug) { echo 'email.bofolder.folder_data:
$this->xi[folder_list_display] dump:<pre>';
print_r($this->xi['folder_list_display']); echo '</pre>'; }
!
! // information for target folder for create and delete,
where no "source_fldball" is present
! // because you are NOT manipulating an *existing* folder
! $this->xi['hiddenvar_target_acctnum_name'] =
'target_fldball[acctnum]';
! $this->xi['hiddenvar_target_acctnum_value'] =
(string)$GLOBALS['phpgw']->msg->get_acctnum();
! $this->xi['target_fldball_boxname'] =
'target_fldball[folder]';
!
! // make your HTML listbox of all folders
! // FUTURE: $show_num_new value should be picked up from
the users preferences (need to add this pref)
! //$show_num_new = True;
! $show_num_new = False;
! // build the $feed_args array for the
all_folders_listbox function
! // anything not specified will be replace with a
default value if the function has one for that param
! $feed_args = Array(
! 'mailsvr_stream' => '',
! 'pre_select_folder' => '',
! 'skip_folder' => '',
! 'show_num_new' => $show_num_new,
! 'widget_name' =>
'source_fldball_fake_uri',
! 'folder_key_name' => 'folder',
! 'acctnum_key_name' => 'acctnum',
! 'on_change' => '',
! 'first_line_txt' => lang('choose for
rename')
! );
! // get you custom built HTML listbox (a.k.a. selectbox)
widget
! $this->xi['all_folders_listbox'] =
$GLOBALS['phpgw']->msg->all_folders_listbox($feed_args);
!
! // ---- Set Up Form Variables ---
! $this->xi['form_action'] = $GLOBALS['phpgw']->link(
! '/index.php',
! 'menuaction=email.uifolder.folder');
!
//$GLOBALS['phpgw']->template->set_var('all_folders_listbox',$GLOBALS['phpgw']->msg->all_folders_listbox('','','',False));
!
//$GLOBALS['phpgw']->template->set_var('select_name_rename','source_folder');
!
! $this->xi['form_create_txt'] = lang('Create a folder');
! $this->xi['form_delete_txt'] = lang('Delete a folder');
! $this->xi['form_rename_txt'] = lang('Rename a folder');
! $this->xi['form_create_expert_txt'] = lang('Create
(expert)');
! $this->xi['form_delete_expert_txt'] = lang('Delete
(expert)');
! $this->xi['form_rename_expert_txt'] = lang('Rename
(expert)');
! $this->xi['form_submit_txt'] = lang("submit");
!
! // ---- Set Up Other Variables ---
! $this->xi['title_backcolor'] =
$GLOBALS['phpgw_info']['theme']['em_folder'];
! $this->xi['title_textcolor'] =
$GLOBALS['phpgw_info']['theme']['em_folder_text'];
! $this->xi['title_text'] = lang('Folder Maintenance');
! $this->xi['label_name_text'] = lang('Folder name');
! //$this->xi['label_messages_text'] = lang('Messages');
! $this->xi['label_new_text'] = lang('New');
! $this->xi['label_total_text'] = lang('Total');
!
! $this->xi['view_long_txt'] = lang('long names');
! //$this->xi['view_long_lnk'] =
$GLOBALS['phpgw']->link('/'.$GLOBALS['phpgw_info']['flags']['currentapp'].'/folder.php?show_long=1');
! $this->xi['view_long_lnk'] = $GLOBALS['phpgw']->link(
! '/index.php',
!
'menuaction=email.uifolder.folder'
!
.'&fldball[folder]='.$GLOBALS['phpgw']->msg->prep_folder_out()
!
.'&fldball[acctnum]='.$GLOBALS['phpgw']->msg->get_acctnum()
! .'&show_long=1');
!
! $this->xi['view_short_txt'] = lang('short names');
! //$this->xi['view_short_lnk'] =
$GLOBALS['phpgw']->link('/'.$GLOBALS['phpgw_info']['flags']['currentapp'].'/folder.php');
! $this->xi['view_short_lnk'] = $GLOBALS['phpgw']->link(
! '/index.php',
!
'menuaction=email.uifolder.folder'
!
.'&fldball[folder]='.$GLOBALS['phpgw']->msg->prep_folder_out()
!
.'&fldball[acctnum]='.$GLOBALS['phpgw']->msg->get_acctnum());
!
! $this->xi['the_font'] =
$GLOBALS['phpgw_info']['theme']['font'];
! $this->xi['th_backcolor'] =
$GLOBALS['phpgw_info']['theme']['th_bg'];
!
! }
!
! }
! ?>
--- 1,361 ----
! <?php
!
/**************************************************************************\
! * phpGroupWare - email BO Class for Folder Actions and List Display
*
! * http://www.phpgroupware.org
*
! * Written by Angelo (Angles) Puglisi <address@hidden> *
! * xml-rpc and soap code template by Milosch and others
*
! * --------------------------------------------
*
! * This program is free software; you can redistribute it and/or modify
it *
! * under the terms of the GNU General Public License as published by
the *
! * Free Software Foundation; either version 2 of the License, or (at
your *
! * option) any later version.
*
!
\**************************************************************************/
!
! /* $Id$ */
!
! class bofolder
! {
! var $public_functions = array(
! 'folder' => True,
! 'folder_action' => True,
! 'folder_data' => True
! );
! var $nextmatchs;
! var $msg_bootstrap;
! var $index_base_link='';
! //var $debug = True;
! var $debug = False;
! var $xi;
!
! function bofolder()
! {
! return;
! }
!
!
! function folder()
! {
! if ($this->debug) { echo 'ENTERING:
email.bofolder.folder'.'<br>'; }
! // create class objects
! $this->nextmatchs = CreateObject('phpgwapi.nextmatchs');
!
! // make sure we have msg object and a server stream
! $this->msg_bootstrap =
CreateObject("email.msg_bootstrap");
!
$this->msg_bootstrap->ensure_mail_msg_exists('email.bofolder.folder',
$this->debug);
!
! // ---- Create or Delete or Rename a Folder ? ----
! // "folder_action()" handles checking if any action
should be taken
! $this->folder_action();
!
!
! // ---- Get a List Of All Folders AND Display them
----
! $this->folder_data();
!
! // end the email transaction
! //$GLOBALS['phpgw']->msg->end_request();
! // NO we may not be really done yet
! }
!
!
!
! function folder_action()
! {
! // ---- Create or Delete or Rename a Folder ? ----
! if (($GLOBALS['phpgw']->msg->get_arg_value('action') ==
'create')
! || ($GLOBALS['phpgw']->msg->get_arg_value('action') ==
'delete')
! || ($GLOBALS['phpgw']->msg->get_arg_value('action') ==
'rename')
! || ($GLOBALS['phpgw']->msg->get_arg_value('action') ==
'create_expert')
! || ($GLOBALS['phpgw']->msg->get_arg_value('action') ==
'delete_expert')
! || ($GLOBALS['phpgw']->msg->get_arg_value('action') ==
'rename_expert'))
! {
! // we have been requested to do a folder action
!
! // basic sanity check
! if (
($GLOBALS['phpgw']->msg->get_isset_arg('["target_fldball"]["folder"]') == False)
! ||
($GLOBALS['phpgw']->msg->get_arg_value('["target_fldball"]["folder"]') == '') )
! {
! // Error Result Message
! $action_report = lang('Please type a
folder name in the text box');
! }
! elseif (
(($GLOBALS['phpgw']->msg->get_arg_value('action') == 'rename')
! ||
($GLOBALS['phpgw']->msg->get_arg_value('action') == 'rename_expert'))
! &&
(($GLOBALS['phpgw']->msg->get_isset_arg('["source_fldball"]["folder"]') ==
False)
! ||
($GLOBALS['phpgw']->msg->get_arg_value('["source_fldball"]["folder"]') == '')) )
! {
! // Error Result Message
! $action_report = lang('Please select a
folder to rename');
! }
! else
! {
! $source_fldball =
$GLOBALS['phpgw']->msg->get_arg_value('source_fldball');
! $target_fldball =
$GLOBALS['phpgw']->msg->get_arg_value('target_fldball');
!
! // ---- Establish Email Server
Connectivity Conventions ----
! $server_str =
$GLOBALS['phpgw']->msg->get_arg_value('mailsvr_callstr');
! $name_space =
$GLOBALS['phpgw']->msg->get_arg_value('mailsvr_namespace');
! $dot_or_slash =
$GLOBALS['phpgw']->msg->get_arg_value('mailsvr_delimiter');
!
! // ---- Prep Target Folder
! // get rid of the escape \ that
magic_quotes HTTP POST will add
! // " becomes \" and ' becomes \'
and \ becomes \\
! $target_stripped =
$GLOBALS['phpgw']->msg->stripslashes_gpc($target_fldball['folder']);
! $target_fldball['folder'] =
$target_stripped;
! // == is that necessary ? == are folder
names allowed with ' " \ in them ? ===
! // rfc2060 does NOT prohibit them
!
! // obtain propper folder names
! // if this is a delete, the folder name
will (should) already exist
! // although the user had to type in the
folder name
! // for these actions, the "expert" tag
means:
! // "do not add the name space for me,
I'm an expert and I know what I'm doing"
! if
(($GLOBALS['phpgw']->msg->get_arg_value('action') == 'create_expert')
! ||
($GLOBALS['phpgw']->msg->get_arg_value('action') == 'delete_expert')
! ||
($GLOBALS['phpgw']->msg->get_arg_value('action') == 'rename_expert'))
! {
! // other than stripslashes_gpc,
do nothing
! // the user is an expert, do
not alter the phpgw->msg->get_arg_value('target_folder') name at all
! }
! else
! {
! // since the user is not an
"expert", we properly prepare the folder name
! // see if the folder already
exists in the folder lookup list
! // this would be the case if
the user is deleting a folder
! $target_lookup =
$GLOBALS['phpgw']->msg->folder_lookup('', $target_fldball['folder']);
! if ($target_lookup != '')
! {
! //
phpgw->msg->get_arg_value('target_folder') returned an official long name from
the lookup
!
$target_fldball['folder'] = $target_lookup;
! }
! else
! {
! // the lookup failed,
so this is not an existing folder
! // we have to add the
namespace for the user
! $target_long =
$GLOBALS['phpgw']->msg->get_folder_long($target_fldball['folder']);
!
$target_fldball['folder'] = $target_long;
! }
! }
!
! // add server string to target folder
! $target_fldball['folder'] =
$server_str.$target_fldball['folder'];
!
! // ===== NOTE: maybe some "are you
sure" code ???? =====
! if
(($GLOBALS['phpgw']->msg->get_arg_value('action') == 'create')
! ||
($GLOBALS['phpgw']->msg->get_arg_value('action') == 'create_expert'))
! {
! $success =
$GLOBALS['phpgw']->msg->phpgw_createmailbox($target_fldball);
! }
! elseif
(($GLOBALS['phpgw']->msg->get_arg_value('action') == 'delete')
! ||
($GLOBALS['phpgw']->msg->get_arg_value('action') == 'delete_expert'))
! {
! $success =
$GLOBALS['phpgw']->msg->phpgw_deletemailbox($target_fldball);
! }
! elseif
(($GLOBALS['phpgw']->msg->get_arg_value('action') == 'rename')
! ||
($GLOBALS['phpgw']->msg->get_arg_value('action') == 'rename_expert'))
! {
! //
phpgw->msg->get_arg_value('source_folder') is taken directly from the listbox,
so it *should* be official long name already
! // but it does need to be
prep'd in because we prep out the foldernames put in that listbox
! $source_preped =
$GLOBALS['phpgw']->msg->prep_folder_in($source_fldball['folder']);
! $source_fldball['folder'] =
$source_preped;
! // add server string to source
folder
! $source_fldball['folder'] =
$server_str.$source_fldball['folder'];
! $success =
$GLOBALS['phpgw']->msg->phpgw_renamemailbox($source_fldball, $target_fldball);
! }
!
! // Result Message
! if
(($GLOBALS['phpgw']->msg->get_arg_value('action') == 'rename')
! ||
($GLOBALS['phpgw']->msg->get_arg_value('action') == 'rename_expert'))
! {
! $action_report =
!
$GLOBALS['phpgw']->msg->get_arg_value('action') .' '.lang('folder').'
"'.htmlspecialchars($source_fldball['folder']).'" '
! .lang('to').'
"'.htmlspecialchars($target_fldball['folder']) .'" '
! .lang('result').' : ';
! }
! else
! {
! $action_report =
$GLOBALS['phpgw']->msg->get_arg_value('action').' '.lang('folder').'
"'.htmlspecialchars($target_fldball['folder']).'" '
! .lang('result').' : ';
! }
! // did it work or not
! if ($success)
! {
! // assemble some feedback to
show
! $action_report = $action_report
.lang('OK');
! }
! else
! {
! $imap_err =
$GLOBALS['phpgw']->msg->phpgw_server_last_error();
! if ($imap_err == '')
! {
! $imap_err =
lang('unknown error');
! }
! // assemble some feedback to
show the user about this error
! $action_report = $action_report
.$imap_err;
! }
! }
! }
! else
! {
! // we were NOT requested to do a folder action
! // we did not have the key data needed
describing the desired action
! $action_report = '';
! $success = False;
! }
!
! // save the "action_report" to the $this->xi[] data
array
! $this->xi['action_report'] = $action_report;
!
! // we may have been called externally, return this
action report
! //return $action_report;
! // we may have been called externally, return if we
succeeded or not
! return $success;
! }
!
!
! function folder_data()
! {
! // ---- Establish Email Server Connectivity
Conventions ----
! $server_str =
$GLOBALS['phpgw']->msg->get_arg_value('mailsvr_callstr');
! $name_space =
$GLOBALS['phpgw']->msg->get_arg_value('mailsvr_namespace');
! $dot_or_slash =
$GLOBALS['phpgw']->msg->get_arg_value('mailsvr_delimiter');
!
! // ---- Get a List Of All Folders AND Display them
----
! //$folder_list =
$GLOBALS['phpgw']->msg->get_folder_list();
! $folder_list =
$GLOBALS['phpgw']->msg->get_arg_value('folder_list');
! //$folder_list =&
$GLOBALS['phpgw']->msg->get_arg_value_ref('folder_list');
!
! if ($this->debug) { echo 'email.bofolder.folder_data:
$folder_list[] dump:<pre>'; print_r($folder_list); echo '</pre>'; }
!
! $this->xi['folder_list_display'] = array();
! for ($i=0; $i<count($folder_list);$i++)
! {
! $folder_long = $folder_list[$i]['folder_long'];
! $folder_short =
$folder_list[$i]['folder_short'];
!
! // SA_ALL gets the stats for the number of:
messages, recent, unseen, uidnext, uidvalidity
! //$mailbox_status =
$GLOBALS['phpgw']->msg->dcom->status($GLOBALS['phpgw']->msg->get_mailsvr_stream(),"$server_str"."$folder_long",SA_ALL);
! $mailbox_status =
$GLOBALS['phpgw']->msg->phpgw_status("$folder_long");
! //$folder_info = array();
! //$folder_info =
$GLOBALS['phpgw']->msg->get_folder_status_info();
!
! //debug
! //$real_long_name =
$GLOBALS['phpgw']->msg->folder_lookup('',$folder_list[$i]['folder_short']);
! //if ($real_long_name != '')
! //{
! // echo 'folder exists, official long
name: '.$real_long_name.'<br>';
! //}
!
! $tr_color =
$this->nextmatchs->alternate_row_color($tr_color);
!
$this->xi['folder_list_display'][$i]['list_backcolor'] = $tr_color;
!
$this->xi['folder_list_display'][$i]['folder_link'] = $GLOBALS['phpgw']->link(
! '/index.php',
!
'menuaction=email.uiindex.index'
!
.'&fldball[folder]='.$GLOBALS['phpgw']->msg->prep_folder_out($folder_long)
!
.'&fldball[acctnum]='.$GLOBALS['phpgw']->msg->get_acctnum());
!
! //if
((isset($GLOBALS['phpgw']->msg->get_arg_value('show_long')))
! if
(($GLOBALS['phpgw']->msg->get_isset_arg('show_long') == True)
! &&
($GLOBALS['phpgw']->msg->get_arg_value('show_long') != ''))
! {
!
$this->xi['folder_list_display'][$i]['folder_name'] = $folder_long;
! }
! else
! {
!
$this->xi['folder_list_display'][$i]['folder_name'] = $folder_short;
! }
!
//$this->xi['folder_list_display'][$i]['folder_name'] =
$folder_list[$i]['folder_long']);
!
//$this->xi['folder_list_display'][$i]['folder_name'] =
$GLOBALS['phpgw']->msg->htmlspecialchars_encode($folder_long));
!
!
$this->xi['folder_list_display'][$i]['msgs_unseen'] =
number_format($mailbox_status->unseen);
!
//$this->xi['folder_list_display'][$i]['msgs_unseen'] =
number_format($folder_info['number_new']));
!
//$this->xi['folder_list_display'][$i]['msgs_total'] = $total_msgs);
!
$this->xi['folder_list_display'][$i]['msgs_total'] =
number_format($mailbox_status->messages);
!
//$this->xi['folder_list_display'][$i]['msgs_total'] =
number_format($folder_info['number_all']));
! }
! if ($this->debug) { echo 'email.bofolder.folder_data:
$this->xi[folder_list_display] dump:<pre>';
print_r($this->xi['folder_list_display']); echo '</pre>'; }
!
! // information for target folder for create and delete,
where no "source_fldball" is present
! // because you are NOT manipulating an *existing* folder
! $this->xi['hiddenvar_target_acctnum_name'] =
'target_fldball[acctnum]';
! $this->xi['hiddenvar_target_acctnum_value'] =
(string)$GLOBALS['phpgw']->msg->get_acctnum();
! $this->xi['target_fldball_boxname'] =
'target_fldball[folder]';
!
! // make your HTML listbox of all folders
! // FUTURE: $show_num_new value should be picked up from
the users preferences (need to add this pref)
! //$show_num_new = True;
! $show_num_new = False;
! // build the $feed_args array for the
all_folders_listbox function
! // anything not specified will be replace with a
default value if the function has one for that param
! $feed_args = Array(
! 'mailsvr_stream' => '',
! 'pre_select_folder' => '',
! 'skip_folder' => '',
! 'show_num_new' => $show_num_new,
! 'widget_name' =>
'source_fldball_fake_uri',
! 'folder_key_name' => 'folder',
! 'acctnum_key_name' => 'acctnum',
! 'on_change' => '',
! 'first_line_txt' => lang('choose for
rename')
! );
! // get you custom built HTML listbox (a.k.a. selectbox)
widget
! $this->xi['all_folders_listbox'] =
$GLOBALS['phpgw']->msg->all_folders_listbox($feed_args);
!
! // ---- Set Up Form Variables ---
! $this->xi['form_action'] = $GLOBALS['phpgw']->link(
! '/index.php',
! 'menuaction=email.uifolder.folder');
!
//$GLOBALS['phpgw']->template->set_var('all_folders_listbox',$GLOBALS['phpgw']->msg->all_folders_listbox('','','',False));
!
//$GLOBALS['phpgw']->template->set_var('select_name_rename','source_folder');
!
! $this->xi['form_create_txt'] = lang('Create a folder');
! $this->xi['form_delete_txt'] = lang('Delete a folder');
! $this->xi['form_rename_txt'] = lang('Rename a folder');
! $this->xi['form_create_expert_txt'] = lang('Create
(expert)');
! $this->xi['form_delete_expert_txt'] = lang('Delete
(expert)');
! $this->xi['form_rename_expert_txt'] = lang('Rename
(expert)');
! $this->xi['form_submit_txt'] = lang("submit");
!
! // ---- Set Up Other Variables ---
! $this->xi['title_backcolor'] =
$GLOBALS['phpgw_info']['theme']['em_folder'];
! $this->xi['title_textcolor'] =
$GLOBALS['phpgw_info']['theme']['em_folder_text'];
! $this->xi['title_text'] = lang('Folder Maintenance');
! $this->xi['label_name_text'] = lang('Folder name');
! //$this->xi['label_messages_text'] = lang('Messages');
! $this->xi['label_new_text'] = lang('New');
! $this->xi['label_total_text'] = lang('Total');
! // Check if we are supposed to show long or short
folder names and create opposite link
! if (($GLOBALS['phpgw']->msg->get_isset_arg('show_long') == true) &&
($GLOBALS['phpgw']->msg->get_arg_value('show_long') != '')) {
! $this->xi['view_txt'] = lang('Show short names');
! // $this->xi['view_short_lnk'] =
$GLOBALS['phpgw']->link('/'.$GLOBALS['phpgw_info']['flags']['currentapp'].'/folder.php');
! $this->xi['view_lnk'] = $GLOBALS['phpgw']->link('/index.php',
! 'menuaction=email.uifolder.folder' . '&fldball[folder]=' .
$GLOBALS['phpgw']->msg->prep_folder_out() . '&fldball[acctnum]=' .
$GLOBALS['phpgw']->msg->get_acctnum());
! } else {
! $this->xi['view_txt'] = lang('Show long names');
! // $this->xi['view_long_lnk'] =
$GLOBALS['phpgw']->link('/'.$GLOBALS['phpgw_info']['flags']['currentapp'].'/folder.php?show_long=1');
! $this->xi['view_lnk'] = $GLOBALS['phpgw']->link('/index.php',
! 'menuaction=email.uifolder.folder' . '&fldball[folder]=' .
$GLOBALS['phpgw']->msg->prep_folder_out() . '&fldball[acctnum]=' .
$GLOBALS['phpgw']->msg->get_acctnum() . '&show_long=1');
! }
! // Depreciated
! // $this->xi['view_long_txt'] = lang('long names');
! //$this->xi['view_long_lnk'] =
$GLOBALS['phpgw']->link('/'.$GLOBALS['phpgw_info']['flags']['currentapp'].'/folder.php?show_long=1');
! // $this->xi['view_long_lnk'] = $GLOBALS['phpgw']->link(
! // '/index.php',
! //
'menuaction=email.uifolder.folder'
! //
.'&fldball[folder]='.$GLOBALS['phpgw']->msg->prep_folder_out()
! //
.'&fldball[acctnum]='.$GLOBALS['phpgw']->msg->get_acctnum()
! // .'&show_long=1');
!
! // $this->xi['view_short_txt'] = lang('short names');
! //$this->xi['view_short_lnk'] =
$GLOBALS['phpgw']->link('/'.$GLOBALS['phpgw_info']['flags']['currentapp'].'/folder.php');
! // $this->xi['view_short_lnk'] = $GLOBALS['phpgw']->link(
! // '/index.php',
! //
'menuaction=email.uifolder.folder'
! //
.'&fldball[folder]='.$GLOBALS['phpgw']->msg->prep_folder_out()
! //
.'&fldball[acctnum]='.$GLOBALS['phpgw']->msg->get_acctnum());
! //
! $this->xi['the_font'] =
$GLOBALS['phpgw_info']['theme']['font'];
! $this->xi['th_backcolor'] =
$GLOBALS['phpgw_info']['theme']['th_bg'];
!
! }
!
! }
! ?>
Index: class.boindex.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.boindex.inc.php,v
retrieving revision 1.26
retrieving revision 1.27
diff -C2 -r1.26 -r1.27
*** class.boindex.inc.php 29 Jun 2002 16:18:02 -0000 1.26
--- class.boindex.inc.php 25 Oct 2002 12:45:52 -0000 1.27
***************
*** 1,1026 ****
! <?php
!
/**************************************************************************\
! * phpGroupWare - email BO Class for Message Lists
*
! * http://www.phpgroupware.org
*
! * Written by Angelo (Angles) Puglisi <address@hidden> *
! * xml-rpc and soap code template by Milosch and others
*
! * --------------------------------------------
*
! * This program is free software; you can redistribute it and/or modify
it *
! * under the terms of the GNU General Public License as published by
the *
! * Free Software Foundation; either version 2 of the License, or (at
your *
[...2135 lines suppressed...]
! 'pre_select_folder' => '',
! 'skip_folder' =>
$GLOBALS['phpgw']->msg->get_folder_short($GLOBALS['phpgw']->msg->get_arg_value('folder')),
! 'show_num_new' =>
$this->xi['show_num_new'],
! 'widget_name' => 'tofolder',
! 'on_change' =>
'do_action(\'move\')',
! 'first_line_txt' => lang('move
selected messages into')
! );
! $this->xi['delmov_listbox'] =
$GLOBALS['phpgw']->msg->all_folders_listbox($feed_args);
! }
! else
! {
! $this->xi['delmov_listbox'] = ' ';
! }
! $this->xi['ftr_backcolor'] =
$GLOBALS['phpgw_info']['theme']['th_bg'];
! if ($this->debug_index_data == True) { echo 'LEAVING:
email.boindex: mlist_data'.'<br>'; }
! }
!
!
! }
! ?>
Index: class.bomessage.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.bomessage.inc.php,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -r1.10 -r1.11
*** class.bomessage.inc.php 28 Sep 2002 15:20:19 -0000 1.10
--- class.bomessage.inc.php 25 Oct 2002 12:45:52 -0000 1.11
***************
*** 1,1449 ****
! <?php
!
/**************************************************************************\
! * phpGroupWare - E-Mail BO for displaying email message content
*
! * http://www.phpgroupware.org
*
! * Based on Aeromail by Mark Cushman <address@hidden>
*
! * http://the.cushman.net/
*
! * --------------------------------------------
*
! * This program is free software; you can redistribute it and/or modify
it *
! * under the terms of the GNU General Public License as published by
the *
! * Free Software Foundation; either version 2 of the License, or (at
your *
[...3048 lines suppressed...]
! {
! $msg_type = explode(';',$msgtype);
! $id_array = explode('=',$msg_type[2]);
! $calendar_id =
intval(substr($id_array[1],1,strlen($id_array[1])-2));
!
! echo '<tr><td align="center">';
! \
$GLOBALS['phpgw']->hooks->single('email',$application)
! echo '</td></tr>';
! }
! } */
!
!
//$GLOBALS['phpgw']->template->pparse('out','T_message_main');
!
! // DO NOT end request yet because the "echo_out" part
(if exists) will require this connection
! //$GLOBALS['phpgw']->msg->end_request();
! if ($this->debug > 2) { echo
'email.bomessage.message_data: $this->part_nice (With Instructions) dump:
<pre>'; print_r($this->part_nice); echo '</pre>'; }
!
! }
! }
! ?>
Index: class.bopreferences.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.bopreferences.inc.php,v
retrieving revision 1.20
retrieving revision 1.21
diff -C2 -r1.20 -r1.21
*** class.bopreferences.inc.php 23 Apr 2002 14:31:04 -0000 1.20
--- class.bopreferences.inc.php 25 Oct 2002 12:45:52 -0000 1.21
***************
*** 1,1544 ****
! <?php
! /**************************************************************************\
! * phpGroupWare - E-Mail *
! * http://www.phpgroupware.org *
! * Based on Aeromail by Mark Cushman <address@hidden> *
! * http://the.cushman.net/ *
! * -------------------------------------------- *
! * This program is free software; you can redistribute it and/or modify it *
! * under the terms of the GNU General Public License as published by the *
! * Free Software Foundation; either version 2 of the License, or (at your *
[...3485 lines suppressed...]
! if ( (!isset($prelim_acctnum))
! || ($prelim_acctnum == $this->add_new_account_token)
! || ($prelim_acctnum == '##NOTHING##')
! || ((string)$prelim_acctnum == '')
! || ((string)$prelim_acctnum == '0') )
! {
! // get the next blank acctnum
! $final_acctnum =
$this->get_first_empty_ex_acctnum();
! }
! else
! {
! $final_acctnum = $prelim_acctnum;
! }
! if ($this->debug_set_prefs > 0) { echo
'email.bopreferences.obtain_ex_acctnum: LEAVING, returning $final_acctnum:
['.serialize($final_acctnum).'] <br>'; }
! return $final_acctnum;
! }
!
!
! }
! ?>
Index: class.bosend.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.bosend.inc.php,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -r1.9 -r1.10
*** class.bosend.inc.php 28 Sep 2002 15:20:19 -0000 1.9
--- class.bosend.inc.php 25 Oct 2002 12:45:52 -0000 1.10
***************
*** 1,1062 ****
! <?php
!
/**************************************************************************\
! * phpGroupWare - email BO Class for Folder Actions and List Display
*
! * http://www.phpgroupware.org
*
! * Written by Angelo (Angles) Puglisi <address@hidden> *
! * --------------------------------------------
*
! * This program is free software; you can redistribute it and/or modify
it *
! * under the terms of the GNU General Public License as published by
the *
! * Free Software Foundation; either version 2 of the License, or (at
your *
! * option) any later version.
*
[...2211 lines suppressed...]
!
$GLOBALS['phpgw']->common->phpgw_exit(False);
! }
! }
! else
! {
! // ERROR - mail NOT sent
! echo '<html><body>'."\r\n";
! echo '<h2>Your message could <b>not</b> be
sent!</h2>'."\r\n";
! echo '<h3>The mail server
returned:</h3>'."\r\n";
! echo '<pre>';
! print_r($GLOBALS['phpgw']->mail_send->err);
! echo '</pre>'."\r\n";
! echo '<p>To go back to the msg list, click <a
href="'.$return_to_folder_href.'">here</a> </p>'."\r\n";
! echo '</body></html>';
! $this->send_message_cleanup();
! }
! }
!
! }
! ?>
Index: class.mail_dcom.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.mail_dcom.inc.php,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -r1.8 -r1.9
*** class.mail_dcom.inc.php 28 Dec 2001 11:55:52 -0000 1.8
--- class.mail_dcom.inc.php 25 Oct 2002 12:45:52 -0000 1.9
***************
*** 1,117 ****
! <?php
!
/**************************************************************************\
! * phpGroupWare API - php IMAP SO access object constructor
*
! * This file written by Mark Peters <address@hidden>
*
! * and Angelo Tony Puglisi (Angles) <address@hidden> *
! * Handles initializing the appropriate class dcom object
*
! * Copyright (C) 2001 Mark Peters
*
! *
-------------------------------------------------------------------------
*
! * This library is part of the phpGroupWare API
*
! * http://www.phpgroupware.org/api
*
! *
------------------------------------------------------------------------
*
! * This library is free software; you can redistribute it and/or modify
it *
! * under the terms of the GNU Lesser General Public License as published
by *
! * the Free Software Foundation; either version 2.1 of the License,
*
! * or any later version.
*
! * This library is distributed in the hope that it will be useful, but
*
! * WITHOUT ANY WARRANTY; without even the implied warranty of
*
! * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
! * See the GNU Lesser General Public License for more details.
*
! * You should have received a copy of the GNU Lesser General Public
License *
! * along with this library; if not, write to the Free Software
Foundation, *
! * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
!
\**************************************************************************/
!
! //$debug_dcom = True;
! $debug_dcom = False;
!
! // ----- any constructor params? ----
! if (isset($p1)
! && ($p1)
! && ( (stristr($p1, 'imap') || stristr($p1, 'pop') || stristr($p1,
'nntp')) )
! )
! {
! //echo 'class dcom constructor, $mail_server_type being set to
param $p1: ['.$p1.']'.'<br>';
! $mail_server_type = $p1;
! }
! else
! {
! $mail_server_type =
$GLOBALS['phpgw_info']['user']['preferences']['email']['mail_server_type'];
! }
! //if ($debug_dcom)
! //{
! // echo 'class dcom constructor, param $p1: ['.$p1.']'.'<br>';
! // echo 'class dcom constructor,
$mail_server_type='.$mail_server_type.'<br>';
! //}
!
!
! // ----- is IMAP compiled into PHP
! //if (extension_loaded("imap"))
! //if (defined("TYPEVIDEO"))
! if (extension_loaded('imap') || function_exists('imap_open'))
! {
! $imap_builtin = True;
! $sock_fname = '';
! if ($debug_dcom) { echo 'imap builtin extension is
available<br>'; }
! }
! else
! {
! $imap_builtin = False;
! $sock_fname = '_sock';
! if ($debug_dcom) { echo 'imap builtin extension NOT available,
using socket class<br>'; }
! }
!
! // debug
! if ($debug_dcom)
! {
! $imap_builtin = False;
! $sock_fname = '_sock';
! if ($debug_dcom) { echo 'FORCE: imap builtin extension NOT
available, using socket class<br>'; }
! }
!
! // SILENT DEBUG
! //$imap_builtin = False;
! //$sock_fname = '_sock';
!
! // ----- include SOCKET or PHP-BUILTIN classes as necessary
! if ($imap_builtin == False)
! {
! CreateObject('phpgwapi.network');
! if ($debug_dcom) { echo 'created phpgwapi network class used
with sockets<br>'; }
! }
!
! //CreateObject('email.mail_dcom_base'.$sock_fname);
!
include(PHPGW_INCLUDE_ROOT.'/email/inc/class.mail_dcom_base'.$sock_fname.'.inc.php');
! if ($debug_dcom) { echo 'including
:'.PHPGW_INCLUDE_ROOT.'/email/inc/class.mail_dcom_base'.$sock_fname.'.inc.php<br>';
}
!
! if (($mail_server_type == 'imap')
! || ($mail_server_type == 'imaps'))
! {
!
include(PHPGW_INCLUDE_ROOT.'/email/inc/class.mail_dcom_imap'.$sock_fname.'.inc.php');
! if ($debug_dcom) { echo 'including
:'.PHPGW_INCLUDE_ROOT.'/email/inc/class.mail_dcom_imap'.$sock_fname.'.inc.php<br>';
}
! }
! elseif (($mail_server_type == 'pop3')
! || ($mail_server_type == 'pop3s'))
! {
!
include(PHPGW_INCLUDE_ROOT.'/email/inc/class.mail_dcom_pop3'.$sock_fname.'.inc.php');
! if ($debug_dcom) { echo 'including
:'.PHPGW_INCLUDE_ROOT.'/email/inc/class.mail_dcom_pop3'.$sock_fname.'.inc.php<br>';
}
! }
! elseif ($mail_server_type == 'nntp')
! {
!
include(PHPGW_INCLUDE_ROOT.'/email/inc/class.mail_dcom_nntp'.$sock_fname.'.inc.php');
! if ($debug_dcom) { echo 'including
:'.PHPGW_INCLUDE_ROOT.'/email/inc/class.mail_dcom_nntp'.$sock_fname.'.inc.php<br>';
}
! }
! elseif ((isset($mail_server_type))
! && ($mail_server_type != ''))
! {
! // educated guess based on info being available:
!
include(PHPGW_INCLUDE_ROOT.'/email/inc/class.mail_dcom_'.$GLOBALS['phpgw_info']['user']['preferences']['email']['mail_server_type'].$sock_fname.'.inc.php');
! if ($debug_dcom) { echo 'Educated Guess: including
:'.PHPGW_INCLUDE_ROOT.'/email/inc/class.mail_dcom_'.$GLOBALS['phpgw_info']['user']['preferences']['email']['mail_server_type'].$sock_fname.'.inc.php<br>';
}
! }
! else
! {
! // DEFAULT FALL BACK:
!
include(PHPGW_INCLUDE_ROOT.'/email/inc/class.mail_dcom_imap.inc.php');
! if ($debug_dcom) { echo 'NO INFO DEFAULT: including
:'.PHPGW_INCLUDE_ROOT.'/email/inc/class.mail_dcom_imap.inc.php<br>'; }
! }
! ?>
--- 1,123 ----
! <?php
!
/**************************************************************************\
! * phpGroupWare API - php IMAP SO access object constructor
*
! * This file written by Mark Peters <address@hidden>
*
! * and Angelo Tony Puglisi (Angles) <address@hidden> *
! * Handles initializing the appropriate class dcom object
*
! * Copyright (C) 2001 Mark Peters
*
! * Copyright (C) 2001, 2002 Angelo "Angles" Puglisi
*
! *
-------------------------------------------------------------------------
*
! * This library is part of the phpGroupWare API
*
! * http://www.phpgroupware.org/api
*
! *
------------------------------------------------------------------------
*
! * This library is free software; you can redistribute it and/or modify
it *
! * under the terms of the GNU Lesser General Public License as published
by *
! * the Free Software Foundation; either version 2.1 of the License,
*
! * or any later version.
*
! * This library is distributed in the hope that it will be useful, but
*
! * WITHOUT ANY WARRANTY; without even the implied warranty of
*
! * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
! * See the GNU Lesser General Public License for more details.
*
! * You should have received a copy of the GNU Lesser General Public
License *
! * along with this library; if not, write to the Free Software
Foundation, *
! * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
!
\**************************************************************************/
!
! //$debug_dcom = True;
! $debug_dcom = False;
!
!
! /*!
! @class MAIL_DCOM
! @abstract implements communication with the mail server. (not related
to anything else called "dcom")
! @discussion php may or may not have IMAP extension built in. This class
will AUTO-DETECT that and
! load either (a) a class which mostly wraps the available builtin
functions, or (b) a TOTAL REPLACEMENT
! to PHPs builtin imap extension. Currently, the POP3 socket class is
fully implemented, basically a re-write
! of the UWash c-client, because all the logic contained in an imap
server had to be emulated locally here,
! since a pop server provides only the most basic information, the rest
must be deduced.
! NOTE: the imap socket class is NOT COMPLETE!
! @author Angles and others, each function has an authors list
! @access private, only mail_msg access this directly
! */
! /* ----- any constructor params? ---- */
! if (isset($p1)
! && ($p1)
! && ( (stristr($p1, 'imap') || stristr($p1, 'pop3') || stristr($p1,
'nntp')) )
! )
! {
! $mail_server_type = $p1;
! }
! else
! {
! $mail_server_type =
$GLOBALS['phpgw_info']['user']['preferences']['email']['mail_server_type'];
! }
!
! /* ----- is IMAP compiled into PHP */
! //if (($debug_dcom == True)
! //&& ((stristr($mail_server_type, 'pop'))
! // || (stristr($mail_server_type, 'imap')))
! //)
! if (($debug_dcom == True)
! && ((strtolower($mail_server_type) == 'pop3')
! || (strtolower($mail_server_type) == 'imap'))
! )
! {
! $imap_builtin = False;
! $sock_fname = '_sock';
! if ($debug_dcom) { echo 'DCOM DEBUG: force socket class for
$mail_server_type ['.$mail_server_type.']<br>'; }
! }
! elseif (extension_loaded('imap') && function_exists('imap_open'))
! {
! $imap_builtin = True;
! $sock_fname = '';
! if ($debug_dcom) { echo 'imap builtin extension is
available<br>'; }
! }
! else
! {
! $imap_builtin = False;
! $sock_fname = '_sock';
! if ($debug_dcom) { echo 'imap builtin extension NOT available,
using socket class<br>'; }
! }
!
! /* ----- include SOCKET or PHP-BUILTIN classes as necessary */
! if ($imap_builtin == False)
! {
! CreateObject('phpgwapi.network');
! if ($debug_dcom) { echo 'created phpgwapi network class used
with sockets<br>'; }
! }
!
! //CreateObject('email.mail_dcom_base'.$sock_fname);
!
include(PHPGW_INCLUDE_ROOT.'/email/inc/class.mail_dcom_base'.$sock_fname.'.inc.php');
! if ($debug_dcom) { echo 'including
:'.PHPGW_INCLUDE_ROOT.'/email/inc/class.mail_dcom_base'.$sock_fname.'.inc.php<br>';
}
!
! if (($mail_server_type == 'imap')
! || ($mail_server_type == 'imaps'))
! {
!
include(PHPGW_INCLUDE_ROOT.'/email/inc/class.mail_dcom_imap'.$sock_fname.'.inc.php');
! if ($debug_dcom) { echo 'including
:'.PHPGW_INCLUDE_ROOT.'/email/inc/class.mail_dcom_imap'.$sock_fname.'.inc.php<br>';
}
! }
! elseif (($mail_server_type == 'pop3')
! || ($mail_server_type == 'pop3s'))
! {
!
include(PHPGW_INCLUDE_ROOT.'/email/inc/class.mail_dcom_pop3'.$sock_fname.'.inc.php');
! if ($debug_dcom) { echo 'including
:'.PHPGW_INCLUDE_ROOT.'/email/inc/class.mail_dcom_pop3'.$sock_fname.'.inc.php<br>';
}
! }
! elseif ($mail_server_type == 'nntp')
! {
!
include(PHPGW_INCLUDE_ROOT.'/email/inc/class.mail_dcom_nntp'.$sock_fname.'.inc.php');
! if ($debug_dcom) { echo 'including
:'.PHPGW_INCLUDE_ROOT.'/email/inc/class.mail_dcom_nntp'.$sock_fname.'.inc.php<br>';
}
! }
! elseif ((isset($mail_server_type))
! && ($mail_server_type != ''))
! {
! /* educated guess based on info being available: */
!
include(PHPGW_INCLUDE_ROOT.'/email/inc/class.mail_dcom_'.$GLOBALS['phpgw_info']['user']['preferences']['email']['mail_server_type'].$sock_fname.'.inc.php');
! if ($debug_dcom) { echo 'Educated Guess: including
:'.PHPGW_INCLUDE_ROOT.'/email/inc/class.mail_dcom_'.$GLOBALS['phpgw_info']['user']['preferences']['email']['mail_server_type'].$sock_fname.'.inc.php<br>';
}
! }
! else
! {
! /* DEFAULT FALL BACK: */
!
include(PHPGW_INCLUDE_ROOT.'/email/inc/class.mail_dcom_imap.inc.php');
! if ($debug_dcom) { echo 'NO INFO DEFAULT: including
:'.PHPGW_INCLUDE_ROOT.'/email/inc/class.mail_dcom_imap.inc.php<br>'; }
! }
! ?>
Index: class.mail_dcom_base.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.mail_dcom_base.inc.php,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -r1.6 -r1.7
*** class.mail_dcom_base.inc.php 19 Dec 2001 15:56:11 -0000 1.6
--- class.mail_dcom_base.inc.php 25 Oct 2002 12:45:52 -0000 1.7
***************
*** 1,177 ****
! <?php
! /**************************************************************************\
! * phpGroupWare - E-Mail *
! * http://www.phpgroupware.org *
! * Based on Aeromail by Mark Cushman <address@hidden> *
! * http://the.cushman.net/ *
! * -------------------------------------------- *
! * This program is free software; you can redistribute it and/or modify it *
! * under the terms of the GNU General Public License as published by the *
! * Free Software Foundation; either version 2 of the License, or (at your *
! * option) any later version. *
! \**************************************************************************/
!
! /* $Id$ */
!
! class mail_dcom_base
! {
! var $msg_struct;
! var $err = array("code","msg","desc");
! var $msg_info = Array(Array());
!
! var $tempfile;
! var $folder_list_changed = False;
! var $enable_utf7 = False;
! var $imap_builtin = True;
! var $force_msg_uids = False;
! //var $att_files_dir;
! var $force_check;
!
! var $boundary,
! $got_structure;
!
! function mail_dcom_base()
! {
! $this->err["code"] = " ";
! $this->err["msg"] = " ";
! $this->err["desc"] = " ";
! $this->tempfile =
$GLOBALS['phpgw_info']['server']['temp_dir'].SEP.$GLOBALS['phpgw_info']['user']['sessionid'].'.mhd';
! $this->force_check = false;
! $this->got_structure = false;
! }
!
! function utf7_encode($data)
! {
! // handle utf7 encoding of folder names, if necessary
! if (($this->enable_utf7 == False)
! || (function_exists('imap_utf7_encode') == False)
! || (!isset($data)))
! {
! return $data;
! }
!
! // data to and from the server can be either array or
string
! if (gettype($data) == 'array')
! {
! // array data
! $return_array = Array();
! for ($i=0; $i<count($data);$i++)
! {
! $return_array[$i] =
$this->utf7_encode_string($data[$i]);
! }
! return $return_array;
! }
! elseif (gettype($data) == 'string')
! {
! // string data
! return $this->utf7_encode_string($data);
! }
! else
! {
! // ERROR
! return $data;
! }
! }
!
! function utf7_encode_string($data_str)
! {
! $name = Array();
! $name['folder_before'] = '';
! $name['folder_after'] = '';
! $name['translated'] = '';
!
! // folder name at this stage is
{SERVER_NAME:PORT}FOLDERNAME
! // get everything to the right of the bracket "}",
INCLUDES the bracket itself
! $name['folder_before'] = strstr($data_str,'}');
! // get rid of that 'needle' "}"
! $name['folder_before'] = substr($name['folder_before'],
1);
! // translate
! $name['folder_after'] =
imap_utf7_encode($name['folder_before']);
! // replace old folder name with new folder name
! $name['translated'] =
str_replace($name['folder_before'], $name['folder_after'], $data_str);
! return $name['translated'];
! }
!
! function utf7_decode($data)
! {
! // handle utf7 decoding of folder names, if necessary
! if (($this->enable_utf7 == False)
! || (function_exists('imap_utf7_decode') == False)
! || (!isset($data)))
! {
! return $data;
! }
!
! // data to and from the server can be either array or
string
! if (gettype($data) == 'array')
! {
! // array data
! $return_array = Array();
! for ($i=0; $i<count($data);$i++)
! {
! $return_array[$i] =
$this->utf7_decode_string($data[$i]);
! }
! return $return_array;
! }
! elseif (gettype($data) == 'string')
! {
! // string data
! return $this->utf7_decode_string($data);
! }
! else
! {
! // ERROR
! return $data;
! }
! }
!
! function utf7_decode_string($data_str)
! {
! $name = Array();
! $name['folder_before'] = '';
! $name['folder_after'] = '';
! $name['translated'] = '';
!
! // folder name at this stage is
{SERVER_NAME:PORT}FOLDERNAME
! // get everything to the right of the bracket "}",
INCLUDES the bracket itself
! $name['folder_before'] = strstr($data_str,'}');
! // get rid of that 'needle' "}"
! $name['folder_before'] = substr($name['folder_before'],
1);
! // translate
! $name['folder_after'] =
imap_utf7_decode($name['folder_before']);
! // "imap_utf7_decode" returns False if no translation
occured
! if ($name['folder_after'] == False)
! {
! // no translation occured
! return $data_str;
! }
! else
! {
! // replace old folder name with new folder name
! $name['translated'] =
str_replace($name['folder_before'], $name['folder_after'], $data_str);
! return $name['translated'];
! }
! }
!
! function get_flag($stream,$msg_num,$flag)
! {
! $header = $this->fetchheader($stream,$msg_num);
! $flag = strtolower($flag);
! for ($i=0;$i<count($header);$i++)
! {
! $pos = strpos($header[$i],":");
! if (is_int($pos) && $pos)
! {
! $keyword =
trim(substr($header[$i],0,$pos));
! $content =
trim(substr($header[$i],$pos+1));
! if (strtolower($keyword) == $flag)
! {
! return $content;
! }
! }
! }
! return false;
! }
!
! } // end of class mail_dcom
! ?>
--- 1,321 ----
! <?php
!
/**************************************************************************\
! * AngleMail http://www.anglemail.org
*
! */
!
/**************************************************************************\
! * AngleMail - E-Mail Data Communications Class Core Functions
*
! * This file written by Angelo "Angles" Puglisi <address@hidden> *
! * Copyright (C) 2001-2002 Angelo "Angles" Puglisi
*
! *
-------------------------------------------------------------------------
*
! * Most funtions have an authors line which attempts to identify and
credit *
! * any previous authors and maintainers.
*
! * AngleMail appreciates the hard work of previous authors and
maintainers. *
! *
-------------------------------------------------------------------------
*
! * This file designed to work as part of a drop in email module for
*
! * phpGroupWare http://www.phpgroupware.org
*
! *
-------------------------------------------------------------------------
*
! * This library is free software; you can redistribute it and/or modify
it *
! * under the terms of the GNU Lesser General Public License as published
by *
! * the Free Software Foundation; either version 2.1 of the License,
*
! * or any later version.
*
! * This library is distributed in the hope that it will be useful, but
*
! * WITHOUT ANY WARRANTY; without even the implied warranty of
*
! * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
! * See the GNU Lesser General Public License for more details.
*
! * You should have received a copy of the GNU Lesser General Public
License *
! * along with this library; if not, write to the Free Software
Foundation, *
! * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
!
\**************************************************************************/
!
! /* $Id$ */
!
! /*!
! @class mail_dcom_base
! @abstract E-Mail Data Communications API
! @discussion Part of a group of files which together comprise the "Data
Communications"
! API for AngleMail. Certain files are loaded if IMAP is compiled into
php, while other
! files are loaded if the sockets replacement functions are needed.
! @author Each function has an authors line.
! */
! class mail_dcom_base
! {
! var $msg_struct;
! var $err = array("code","msg","desc");
! var $msg_info = Array(Array());
!
! var $debug_utf7=0;
! //var $debug_utf7=3;
!
! var $tempfile;
! var $folder_list_changed = False;
! var $enable_utf7 = False;
! var $imap_builtin = True;
! var $force_msg_uids = False;
! //var $att_files_dir;
! var $force_check;
!
! var $boundary,
! $got_structure;
!
! /*!
! @function mail_dcom_base
! @abstract *constructor*
! @author Angles
! @access private
! */
! function mail_dcom_base()
! {
! $this->err["code"] = " ";
! $this->err["msg"] = " ";
! $this->err["desc"] = " ";
! $this->tempfile =
$GLOBALS['phpgw_info']['server']['temp_dir'].SEP.$GLOBALS['phpgw_info']['user']['sessionid'].'.mhd';
! $this->force_check = false;
! $this->got_structure = false;
! }
!
! /*!
! @function utf7_encode
! @abstract ?
! @author Angles
! @access private
! */
! function utf7_encode($data, $called_by='not_provided')
! {
! if ($this->debug_utf7 > 0) { echo 'mail_dcom_base:
utf7_encode ('.__LINE__.'): ENTERING, $called_by ['.$called_by.']<br>'; }
! if ($this->debug_utf7 > 1) { echo 'mail_dcom_base:
utf7_encode ('.__LINE__.'): $data ['.serialize($data).']<br>'; }
! // handle utf7 encoding of folder names, if necessary
! if (($this->enable_utf7 == False)
! || (function_exists('imap_utf7_encode') == False)
! || (!isset($data)))
! {
! if ($this->debug_utf7 > 0) { echo
'mail_dcom_base: utf7_encode ('.__LINE__.'): LEAVING on error, returning param
unmodified. Check if .. then to see why we exited here, $called_by
['.$called_by.']<br>'; }
! return $data;
! }
!
! // data to and from the server can be either array or
string
! if (gettype($data) == 'array')
! {
! // array data
! $return_array = Array();
! for ($i=0; $i<count($data);$i++)
! {
! $return_array[$i] =
$this->utf7_encode_string($data[$i]);
! }
! if ($this->debug_utf7 > 0) { echo
'mail_dcom_base: utf7_encode ('.__LINE__.'): LEAVING, returning $return_array
['.serialize($return_array).'], $called_by ['.$called_by.']<br>'; }
! return $return_array;
! }
! elseif (gettype($data) == 'string')
! {
! // string data
! $return_string =
$this->utf7_encode_string($data);
! if ($this->debug_utf7 > 0) { echo
'mail_dcom_base: utf7_encode ('.__LINE__.'): LEAVING, returning $return_string
['.serialize($return_string).'], $called_by ['.$called_by.']<br>'; }
! return $return_string;
! }
! else
! {
! // ERROR
! if ($this->debug_utf7 > 0) { echo
'mail_dcom_base: utf7_encode ('.__LINE__.'): LEAVING with ERROR, returning
param unmodified. Data was not string nor array, $called_by
['.$called_by.']<br>'; }
! return $data;
! }
! }
!
! /*!
! @function utf7_encode_string
! @abstract ?
! @author Angles
! @access private
! */
! function utf7_encode_string($data_str)
! {
! $name = Array();
! $name['folder_before'] = '';
! $name['folder_after'] = '';
! $name['translated'] = '';
!
! if (strstr($data_str,'}'))
! {
! // folder name at this stage is
{SERVER_NAME:PORT}FOLDERNAME
! // get everything to the right of the bracket
"}", INCLUDES the bracket itself
! $name['folder_before'] = strstr($data_str,'}');
! // get rid of that 'needle' "}"
! $name['folder_before'] =
substr($name['folder_before'], 1);
! // translate
! $name['folder_after'] =
imap_utf7_encode($name['folder_before']);
! // replace old folder name with new folder name
! $name['translated'] =
str_replace($name['folder_before'], $name['folder_after'], $data_str);
! }
! else
! {
! // folder name at this stage is FOLDERNAME
! // there is NO {SERVER} part in this name, this
is OK some commands do not require it (mail_move same acct)
! $name['folder_before'] = $data_str;
! // translate
! $name['folder_after'] =
imap_utf7_encode($name['folder_before']);
! $name['translated'] = $name['folder_after'];
! }
! if ($this->debug_utf7 > 1) { echo ' _ mail_dcom_base:
utf7_encode_string ('.__LINE__.'): $name DUMP:
['.htmlspecialchars(serialize($name)).']<br>'; }
! return $name['translated'];
! }
!
! /*!
! @function utf7_decode
! @abstract ?
! @author Angles
! @access private
! */
! function utf7_decode($data)
! {
! if ($this->debug_utf7 > 0) { echo 'mail_dcom_base:
utf7_decode ('.__LINE__.'): ENTERING<br>'; }
! if ($this->debug_utf7 > 1) { echo 'mail_dcom_base:
utf7_decode ('.__LINE__.'): $data ['.serialize($data).']<br>'; }
! // handle utf7 decoding of folder names, if necessary
! if (($this->enable_utf7 == False)
! || (function_exists('imap_utf7_decode') == False)
! || (!isset($data)))
! {
! if ($this->debug_utf7 > 0) { echo
'mail_dcom_base: utf7_decode ('.__LINE__.'): LEAVING on error, returning param
unmodified. Check if .. then to see why we exited here<br>'; }
! return $data;
! }
!
! // data to and from the server can be either array or
string
! if (gettype($data) == 'array')
! {
! // array data
! $return_array = Array();
! for ($i=0; $i<count($data);$i++)
! {
! $return_array[$i] =
$this->utf7_decode_string($data[$i]);
! }
! if ($this->debug_utf7 > 0) { echo
'mail_dcom_base: utf7_decode ('.__LINE__.'): LEAVING, returning $return_array
['.serialize($return_array).']<br>'; }
! return $return_array;
! }
! elseif (gettype($data) == 'string')
! {
! // string data
! $return_string =
$this->utf7_decode_string($data);
! if ($this->debug_utf7 > 0) { echo
'mail_dcom_base: utf7_decode ('.__LINE__.'): LEAVING, returning $return_string
['.serialize($return_string).']<br>'; }
! return $return_string;
! }
! else
! {
! // ERROR
! if ($this->debug_utf7 > 0) { echo
'mail_dcom_base: utf7_decode ('.__LINE__.'): LEAVING with ERROR, returning
param unmodified. Data was not string nor array.<br>'; }
! return $data;
! }
! }
!
! /*!
! @function utf7_decode_string
! @abstract ?
! @author Angles
! @access private
! */
! /*
! function utf7_decode_string($data_str)
! {
! $name = Array();
! $name['folder_before'] = '';
! $name['folder_after'] = '';
! $name['translated'] = '';
!
! // folder name at this stage is
{SERVER_NAME:PORT}FOLDERNAME
! // get everything to the right of the bracket "}",
INCLUDES the bracket itself
! $name['folder_before'] = strstr($data_str,'}');
! // get rid of that 'needle' "}"
! $name['folder_before'] = substr($name['folder_before'],
1);
! // translate
! $name['folder_after'] =
imap_utf7_decode($name['folder_before']);
! // "imap_utf7_decode" returns False if no translation
occured
! if ($name['folder_after'] == False)
! {
! // no translation occured
! return $data_str;
! }
! else
! {
! // replace old folder name with new folder name
! $name['translated'] =
str_replace($name['folder_before'], $name['folder_after'], $data_str);
! return $name['translated'];
! }
! }
! */
! function utf7_decode_string($data_str)
! {
! $name = Array();
! $name['folder_before'] = '';
! $name['folder_after'] = '';
! $name['translated'] = '';
!
! if (strstr($data_str,'}'))
! {
! // folder name at this stage is
{SERVER_NAME:PORT}FOLDERNAME
! // get everything to the right of the bracket
"}", INCLUDES the bracket itself
! $name['folder_before'] = strstr($data_str,'}');
! // get rid of that 'needle' "}"
! $name['folder_before'] =
substr($name['folder_before'], 1);
! // translate
! $name['folder_after'] =
imap_utf7_decode($name['folder_before']);
! // "imap_utf7_decode" returns False if no
translation occured (supposed to, can return identical string too)
! if ( ($name['folder_after'] == False)
! || ($name['folder_before'] ==
$name['folder_after']) )
! {
! // no translation occured
! if ($this->debug_utf7 > 0) { echo ' _
mail_dcom_base: utf7_decode_string ('.__LINE__.'): returning unmodified name,
NO decoding needed, returning feed $data_str:
['.htmlspecialchars(serialize($data_str)).']<br>'; }
! return $data_str;
! }
! else
! {
! // replace old folder name with new
folder name
! $name['translated'] =
str_replace($name['folder_before'], $name['folder_after'], $data_str);
! if ($this->debug_utf7 > 0) { echo ' _
mail_dcom_base: utf7_decode_string ('.__LINE__.'): returning decoded name,
$name[] DUMP: ['.htmlspecialchars(serialize($name)).']<br>'; }
! return $name['translated'];
! }
! }
! else
! {
! // folder name at this stage is FOLDERNAME
! // there is NO {SERVER} part in this name,
! // DOES THIS EVER HAPPEN comming *from* the
server? I DO NOT THINK SO, but just in case
! // translate
! $name['translated'] =
imap_utf7_decode($data_str);
! // "imap_utf7_decode" returns False if no
translation occured
! if (($name['translated'] == False)
! || ($name['folder_before'] == $data_str) )
! {
! // no translation occured
! if ($this->debug_utf7 > 0) { echo ' _
mail_dcom_base: utf7_decode_string ('.__LINE__.'): returning unmodified name,
NO decoding needed, returning feed $data_str:
['.htmlspecialchars(serialize($data_str)).']<br>'; }
! return $data_str;
! }
! else
! {
! if ($this->debug_utf7 > 0) { echo ' _
mail_dcom_base: utf7_decode_string ('.__LINE__.'): returning decoded name,
$name[] DUMP: ['.htmlspecialchars(serialize($name)).']<br>'; }
! return $name['translated'];
! }
! }
! }
!
! /*!
! @function get_flag
! @abstract ?
! */
! function get_flag($stream,$msg_num,$flag)
! {
! $header = $this->fetchheader($stream,$msg_num);
! $flag = strtolower($flag);
! for ($i=0;$i<count($header);$i++)
! {
! $pos = strpos($header[$i],":");
! if (is_int($pos) && $pos)
! {
! $keyword =
trim(substr($header[$i],0,$pos));
! $content =
trim(substr($header[$i],$pos+1));
! if (strtolower($keyword) == $flag)
! {
! return $content;
! }
! }
! }
! return false;
! }
!
! } // end of class mail_dcom
! ?>
Index: class.mail_dcom_base_sock.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.mail_dcom_base_sock.inc.php,v
retrieving revision 1.22
retrieving revision 1.23
diff -C2 -r1.22 -r1.23
*** class.mail_dcom_base_sock.inc.php 28 Sep 2002 20:01:43 -0000 1.22
--- class.mail_dcom_base_sock.inc.php 25 Oct 2002 12:45:53 -0000 1.23
***************
*** 1,1106 ****
! <?php
! /**************************************************************************\
! * phpGroupWare API - MAIL *
! * This file written by Mark Peters <address@hidden> *
! * Handles general functionality for mail/mail structures *
! * Copyright (C) 2001 Mark Peters *
! * -------------------------------------------------------------------------*
! * This library is part of the phpGroupWare API *
! * http://www.phpgroupware.org/api
*
! * ------------------------------------------------------------------------ *
[...2314 lines suppressed...]
! {
! $c0=(ord(substr($str[$i],$pos ,1)) ^
0x20);
! $c1=(ord(substr($str[$i],$pos+1,1)) ^
0x20);
! $c2=(ord(substr($str[$i],$pos+2,1)) ^
0x20);
! $file .= chr(((($c0 - ' ') & 077) << 2)
| ((($c1 - ' ') & 077) >> 4));
! $file .= chr(((($c1 - ' ') & 077) << 4)
| ((($c2 - ' ') & 077) >> 2));
! $pos+=3;
! $d+=2;
! }
! if (($d+1<=$len) && ($pos+2<=strlen($str[$i])))
! {
! $c0=(ord(substr($str[$i],$pos ,1)) ^
0x20);
! $c1=(ord(substr($str[$i],$pos+1,1)) ^
0x20);
! $file .= chr(((($c0 - ' ') & 077) << 2)
| ((($c1 - ' ') & 077) >> 4));
! }
! }
! return $file;
! }
! }
! ?>
Index: class.mail_dcom_imap.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.mail_dcom_imap.inc.php,v
retrieving revision 1.19
retrieving revision 1.20
diff -C2 -r1.19 -r1.20
*** class.mail_dcom_imap.inc.php 1 Feb 2002 00:09:59 -0000 1.19
--- class.mail_dcom_imap.inc.php 25 Oct 2002 12:45:53 -0000 1.20
***************
*** 1,436 ****
! <?php
! /**************************************************************************\
! * phpGroupWare Email - IMAP abstraction *
! * http://www.phpgroupware.org/api *
! * This file written by Itzchak Rehberg <address@hidden> *
! * and Joseph Engo <address@hidden> *
! * Mail function abstraction for IMAP servers
*
! * Copyright (C) 2000, 2001 Itzchak Rehberg *
! * -------------------------------------------------------------------------
*
! * This library is part of phpGroupWare (http://www.phpgroupware.org)
*
! * This library is free software; you can redistribute it and/or modify it *
! * under the terms of the GNU Lesser General Public License as published by *
! * the Free Software Foundation; either version 2.1 of the License, *
! * or any later version.
*
! * This library is distributed in the hope that it will be useful, but
*
! * WITHOUT ANY WARRANTY; without even the implied warranty of *
! * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
! * See the GNU Lesser General Public License for more details.
*
! * You should have received a copy of the GNU Lesser General Public License *
! * along with this library; if not, write to the Free Software Foundation, *
! * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
! \**************************************************************************/
!
! /* $Id$ */
!
! class mail_dcom extends mail_dcom_base
! {
! function append($stream, $folder, $message, $flags=0)
! {
! $folder = $this->utf7_encode($folder);
! return imap_append($stream, $folder, $message, $flags);
! }
!
! function base64($text)
! {
! return imap_base64($text);
! }
!
! function close($stream,$flags='')
! {
! return imap_close($stream,$flags);
! }
!
! function createmailbox($stream,$mailbox)
! {
! $mailbox = $this->utf7_encode($mailbox);
! $this->folder_list_changed = True;
! return imap_createmailbox($stream,$mailbox);
! }
!
! function deletemailbox($stream,$mailbox)
! {
! $this->folder_list_changed = True;
! $mailbox = $this->utf7_encode($mailbox);
! return imap_deletemailbox($stream,$mailbox);
! }
!
! function renamemailbox($stream,$mailbox_old,$mailbox_new)
! {
! $this->folder_list_changed = True;
! $mailbox_old = $this->utf7_encode($mailbox_old);
! $mailbox_new = $this->utf7_encode($mailbox_new);
! return
imap_renamemailbox($stream,$mailbox_old,$mailbox_new);
! }
!
! function delete($stream,$msg_num,$flags=0)
! {
! // do we force use of msg UID's
! if ( ($this->force_msg_uids == True)
! && (!($flags & FT_UID)) )
! {
! $flags |= FT_UID;
! }
! return imap_delete($stream,$msg_num,$flags);
! }
!
! function expunge($stream)
! {
! return imap_expunge($stream);
! }
!
! function fetchbody($stream,$msgnr,$partnr,$flags=0)
! {
! // do we force use of msg UID's
! if ( ($this->force_msg_uids == True)
! && (!($flags & FT_UID)) )
! {
! $flags |= FT_UID;
! }
! return imap_fetchbody($stream,$msgnr,$partnr,$flags);
! }
!
! function
header($stream,$msg_nr,$fromlength='',$tolength='',$defaulthost='')
! {
! // do we need to temporarily switch to regular msg num
sequence for this function?
! if ($this->force_msg_uids == True)
! {
! // this function can nothandle UIDs, switch to
sequence number
! $new_msg_nr = imap_msgno($stream,$msg_nr);
! if ($new_msg_nr)
! {
! $msg_nr = $new_msg_nr;
! }
! }
! return
imap_header($stream,$msg_nr,$fromlength,$tolength,$defaulthost);
! }
!
! function headers($stream)
! {
! return imap_headers($stream);
! }
!
! function fetch_raw_mail($stream,$msg_num,$flags=0)
! {
! $flags |= FT_PREFETCHTEXT;
! // do we force use of msg UID's
! if ( ($this->force_msg_uids == True)
! && (!($flags & FT_UID)) )
! {
! $flags |= FT_UID;
! }
! return imap_fetchheader($stream,$msg_num,$flags);
! }
!
! function fetchheader($stream,$msg_num,$flags=0)
! {
! // do we force use of msg UID's
! if ( ($this->force_msg_uids == True)
! && (!($flags & FT_UID)) )
! {
! $flags |= FT_UID;
! }
! return imap_fetchheader($stream,$msg_num,$flags);
! }
!
! function fetchstructure($stream,$msg_num,$flags=0)
! {
! // do we force use of msg UID's
! if ( ($this->force_msg_uids == True)
! && (!($flags & FT_UID)) )
! {
! $flags |= FT_UID;
! }
! return imap_fetchstructure($stream,$msg_num,$flags);
! }
!
! function get_body($stream,$msg_num,$flags=0)
! {
! // do we force use of msg UID's
! if ( ($this->force_msg_uids == True)
! && (!($flags & FT_UID)) )
! {
! $flags |= FT_UID;
! }
! return imap_body($stream,$msg_num,$flags);
! }
!
! function get_header($stream,$msg_num,$flags)
! {
! // alias for compatibility with some old code
! return $this->fetchheader($stream,$msg_num,$flags);
! }
!
! function listmailbox($stream,$ref,$pattern)
! {
! //return imap_listmailbox($stream,$ref,$pattern);
! $pattern = $this->utf7_encode($pattern);
! $return_list = imap_listmailbox($stream,$ref,$pattern);
! return $this->utf7_decode($return_list);
! }
!
! function mailboxmsginfo($stream)
! {
! return imap_mailboxmsginfo($stream);
! }
!
! function mailcopy($stream,$msg_list,$mailbox,$flags=0)
! {
! // do we force use of msg UID's
! if ( ($this->force_msg_uids == True)
! && (!($flags & CP_UID)) )
! {
! $flags |= CP_UID;
! }
! $mailbox = $this->utf7_encode($mailbox);
! return
imap_mail_copy($stream,$msg_list,$mailbox,$flags);
! }
!
! function mail_move($stream,$msg_list,$mailbox,$flags=0)
! {
! // do we force use of msg UID's
! if ( ($this->force_msg_uids == True)
! && (!($flags & CP_UID)) )
! {
! $flags |= CP_UID;
! }
! $mailbox = $this->utf7_encode($mailbox);
! return
imap_mail_move($stream,$msg_list,$mailbox,$flags);
! }
!
! function num_msg($stream) // returns number of messages in the
mailbox
! {
! return imap_num_msg($stream);
! }
!
! function noop_ping_test($stream)
! {
! return imap_ping($stream);
! }
!
! function open($mailbox,$username,$password,$flags=0)
! {
! $mailbox = $this->utf7_encode($mailbox);
! return imap_open($mailbox,$username,$password,$flags);
! }
!
! function qprint($message)
! {
! // return quoted_printable_decode($message);
! $str = quoted_printable_decode($message);
! return str_replace("=\n",'',$str);
! }
!
! function reopen($stream,$mailbox,$flags=0)
! {
! $mailbox = $this->utf7_encode($mailbox);
! return imap_reopen($stream,$mailbox,$flags);
! }
!
! function server_last_error()
! {
! // supported in PHP >= 3.0.12
! return imap_last_error();
! }
!
! function i_search($stream,$criteria,$flags=0)
! {
! // do we force use of msg UID's
! if ( ($this->force_msg_uids == True)
! && (!($flags & SE_UID)) )
! {
! $flags |= SE_UID;
! }
! return imap_search($stream,$criteria,$flags);
! }
!
! function sort($stream,$criteria,$reverse='',$flags=0)
! {
! // do we force use of msg UID's
! if ( ($this->force_msg_uids == True)
! && (!($flags & SE_UID)) )
! {
! $flags |= SE_UID;
! }
! //echo 'class dcom: sort: $this->force_msg_uids=
'.serialize($this->force_msg_uids).'; $flags: ['.serialize($flags).']<br>';
! return imap_sort($stream,$criteria,$reverse,$flags);
! }
!
! function status($stream,$mailbox,$options=0)
! {
! $mailbox = $this->utf7_encode($mailbox);
! return imap_status($stream,$mailbox,$options);
! }
!
! /*
! // DEPRECIATED - OBSOLETE - DO NOT CALL
! function login($folder='INBOX')
! {
! //$debug_logins = True;
! $debug_logins = False;
! if ($debug_logins)
! {
! echo 'CALL TO LOGIN IN CLASS MSG
IMAP'.'<br>'.'userid='.$GLOBALS['phpgw_info']['user']['preferences']['email']['userid'];
! }
!
! error_reporting(error_reporting() - 2);
! if ($folder != 'INBOX')
! {
! $folder = $this->construct_folder_str($folder);
! }
!
! // WORKAROUND FOR BUG IN EMAIL CUSTOM PASSWORDS (PHASED
OUT 7/2/01)
! // $pass = $this->get_email_passwd();
! // === ISSET CHECK ==
! if (
(isset($GLOBALS['phpgw_info']['user']['preferences']['email']['userid']))
! &&
($GLOBALS['phpgw_info']['user']['preferences']['email']['userid'] != '')
! &&
(isset($GLOBALS['phpgw_info']['user']['preferences']['email']['passwd']))
! &&
($GLOBALS['phpgw_info']['user']['preferences']['email']['passwd'] != '') )
! {
! $user =
$GLOBALS['phpgw_info']['user']['preferences']['email']['userid'];
! $pass =
$GLOBALS['phpgw_info']['user']['preferences']['email']['passwd'];
! }
! else
! {
! // problem - invalid or nonexistant info for
userid and/or passwd
! return False;
! }
!
! $server_str =
$GLOBALS['phpgw']->msg->get_mailsvr_callstr();
! $mbox = $this->open($server_str.$folder, $user, $pass);
!
! error_reporting(error_reporting() + 2);
! return $mbox;
! }
! */
!
! function construct_folder_str($folder)
! {
! /* This is only used by the login() function */
! // Cyrus style: INBOX.Junque
! // UWash style: ./aeromail/Junque
! return $GLOBALS['phpgw']->msg->get_folder_long($folder);
! }
!
! function deconstruct_folder_str($folder)
! {
! // This is only used by the login() function
! // Cyrus style: INBOX.Junque
! // UWash style: ./aeromail/Junque
! return
$GLOBALS['phpgw']->msg->get_folder_short($folder);
! }
!
! /* rfc_get_flag() is more "rfc safe", as RFC822 allows
! the content of the header to be on several lines.
!
! Quote from RFC822 3.1.1:
! <quote>
! For convenience, the field-body portion of
this conceptual
! entity can be split into a multiple-line
representation; this
! is called "folding". The general rule is that
wherever there
! may be linear-white-space (NOT simply
LWSP-chars), a CRLF
! immediately followed by AT LEAST one LWSP-char
may instead be
! inserted.
! </quote>
!
! Note: $flag should _NOT_ begin with a space
! $field_no should be given strarting at 1
! */
! function rfc_get_flag($stream,$msg_num,$flags=0,$field_no=1)
! {
! // do we force use of msg UID's
! if ( ($this->force_msg_uids == True)
! && (!($flags & FT_UID)) )
! {
! $flags |= FT_UID;
! }
! $fieldCount = 0;
! $header = imap_fetchheader ($stream, $msg_num, $flags);
! $header = explode("\n", $header);
! $flag = strtolower($flag);
!
! for ($i=0; $i < count($header); $i++)
! {
! // The next check for the $flag _requires_ the
field to
! // start at the first character (unless some
person
! // adds a space in the beginning of $flag.
! // I believe this is correct according to the
RFC.
!
! if (strcmp
(substr(strtolower($header[$i]),0,strlen($flag) + 1), $flag.':')==0)
! {
! $fieldFound = true;
! $fieldCount++;
! }
! else
! {
! $fieldFound = false;
! }
!
! if ($fieldFound && $fieldCount == $field_no)
! {
! // We now need to see if the next lines
belong to this message.
! $header_begin = $i;
! // make sure we don't go too far:)
! // and if the line begins with a space
then
! // we'll increment the counter with one.
! $i++;
!
! while ($i < count($header)
! &&
strcmp(substr($header[$i],0,1), ' ') == 0)
! {
! $i++;
! }
!
! // Remove the "field:" from this string.
! $return_tmp = explode (':',
$header[$header_begin]);
! $tmp_flag = $return_tmp[0];
! $return_string = trim ($return_tmp[1]);
!
! if (strcasecmp ($flag, $tmp_flag) != 0)
! {
! return false;
! }
! // Houston, we have a _problem_
! // add the rest of the content
!
! for ($j=$header_begin+1; $j < $i; $j++)
! {
! $return_string .= $header[$j];
! }
!
! return $return_string;
! }
! }
! // failed to find $flag
! return false;
! }
!
! /*
! function get_flag($stream,$msg_num,$flag)
! {
! // Call my new rfc_get_flag() function.
! // It should replace get_flag() as soon as it's
! // accepted into cvs phpGW
! return $this->rfc_get_flag ($stream, $msg_num, $flag);
!
! $header = imap_fetchheader($stream,$msg_num);
! $header = explode("\n",$header);
! $flag = strtolower($flag);
! for ($i=0;$i<count($header);$i++)
! {
! $pos = strpos($header[$i],':');
! if (is_int($pos) && $pos)
! {
! $keyword =
trim(substr($header[$i],0,$pos));
! $content =
trim(substr($header[$i],$pos+1));
! if (strtolower($keyword) == $flag)
! {
! return $content;
! }
! }
! }
! return false;
! }
! */
! }
! ?>
--- 1,394 ----
! <?php
! /**************************************************************************\
! * phpGroupWare Email - IMAP abstraction *
! * http://www.phpgroupware.org/api *
! * This file written by Itzchak Rehberg <address@hidden> *
! * and Joseph Engo <address@hidden> *
! * Mail function abstraction for IMAP servers
*
! * Copyright (C) 2000, 2001 Itzchak Rehberg *
! * -------------------------------------------------------------------------
*
! * This library is part of phpGroupWare (http://www.phpgroupware.org)
*
! * This library is free software; you can redistribute it and/or modify it *
! * under the terms of the GNU Lesser General Public License as published by *
! * the Free Software Foundation; either version 2.1 of the License, *
! * or any later version.
*
! * This library is distributed in the hope that it will be useful, but
*
! * WITHOUT ANY WARRANTY; without even the implied warranty of *
! * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
! * See the GNU Lesser General Public License for more details.
*
! * You should have received a copy of the GNU Lesser General Public License *
! * along with this library; if not, write to the Free Software Foundation, *
! * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
! \**************************************************************************/
!
! /* $Id$ */
!
! class mail_dcom extends mail_dcom_base
! {
! function append($stream, $folder, $message, $flags=0)
! {
! $folder = $this->utf7_encode($folder);
! return imap_append($stream, $folder, $message, $flags);
! }
!
! function base64($text)
! {
! return imap_base64($text);
! }
!
! function close($stream,$flags='')
! {
! return imap_close($stream,$flags);
! }
!
! function createmailbox($stream,$mailbox)
! {
! $mailbox = $this->utf7_encode($mailbox);
! $this->folder_list_changed = True;
! return imap_createmailbox($stream,$mailbox);
! }
!
! function deletemailbox($stream,$mailbox)
! {
! $this->folder_list_changed = True;
! $mailbox = $this->utf7_encode($mailbox);
! return imap_deletemailbox($stream,$mailbox);
! }
!
! function renamemailbox($stream,$mailbox_old,$mailbox_new)
! {
! $this->folder_list_changed = True;
! $mailbox_old = $this->utf7_encode($mailbox_old);
! $mailbox_new = $this->utf7_encode($mailbox_new);
! return
imap_renamemailbox($stream,$mailbox_old,$mailbox_new);
! }
!
! function delete($stream,$msg_num,$flags=0)
! {
! // do we force use of msg UID's
! if ( ($this->force_msg_uids == True)
! && (!($flags & FT_UID)) )
! {
! $flags |= FT_UID;
! }
! return imap_delete($stream,$msg_num,$flags);
! }
!
! function expunge($stream)
! {
! return imap_expunge($stream);
! }
!
! function fetchbody($stream,$msgnr,$partnr,$flags=0)
! {
! // do we force use of msg UID's
! if ( ($this->force_msg_uids == True)
! && (!($flags & FT_UID)) )
! {
! $flags |= FT_UID;
! }
! return imap_fetchbody($stream,$msgnr,$partnr,$flags);
! }
!
! function
header($stream,$msg_nr,$fromlength='',$tolength='',$defaulthost='')
! {
! // do we need to temporarily switch to regular msg num
sequence for this function?
! if ($this->force_msg_uids == True)
! {
! // this function can nothandle UIDs, switch to
sequence number
! $new_msg_nr = imap_msgno($stream,$msg_nr);
! if ($new_msg_nr)
! {
! $msg_nr = $new_msg_nr;
! }
! }
! return
imap_header($stream,$msg_nr,$fromlength,$tolength,$defaulthost);
! }
!
! function headers($stream)
! {
! return imap_headers($stream);
! }
!
! function fetch_raw_mail($stream,$msg_num,$flags=0)
! {
! $flags |= FT_PREFETCHTEXT;
! // do we force use of msg UID's
! if ( ($this->force_msg_uids == True)
! && (!($flags & FT_UID)) )
! {
! $flags |= FT_UID;
! }
! return imap_fetchheader($stream,$msg_num,$flags);
! }
!
! function fetchheader($stream,$msg_num,$flags=0)
! {
! // do we force use of msg UID's
! if ( ($this->force_msg_uids == True)
! && (!($flags & FT_UID)) )
! {
! $flags |= FT_UID;
! }
! return imap_fetchheader($stream,$msg_num,$flags);
! }
!
! function fetchstructure($stream,$msg_num,$flags=0)
! {
! // do we force use of msg UID's
! if ( ($this->force_msg_uids == True)
! && (!($flags & FT_UID)) )
! {
! $flags |= FT_UID;
! }
! return imap_fetchstructure($stream,$msg_num,$flags);
! }
!
! function get_body($stream,$msg_num,$flags=0)
! {
! // do we force use of msg UID's
! if ( ($this->force_msg_uids == True)
! && (!($flags & FT_UID)) )
! {
! $flags |= FT_UID;
! }
! return imap_body($stream,$msg_num,$flags);
! }
!
! function get_header($stream,$msg_num,$flags)
! {
! // alias for compatibility with some old code
! return $this->fetchheader($stream,$msg_num,$flags);
! }
!
! function listmailbox($stream,$ref,$pattern)
! {
! //return imap_listmailbox($stream,$ref,$pattern);
! $pattern = $this->utf7_encode($pattern);
! $return_list = imap_listmailbox($stream,$ref,$pattern);
! return $this->utf7_decode($return_list);
! }
!
! function mailboxmsginfo($stream)
! {
! return imap_mailboxmsginfo($stream);
! }
!
! function mailcopy($stream,$msg_list,$mailbox,$flags=0)
! {
! // do we force use of msg UID's
! if ( ($this->force_msg_uids == True)
! && (!($flags & CP_UID)) )
! {
! $flags |= CP_UID;
! }
! $mailbox = $this->utf7_encode($mailbox);
! return
imap_mail_copy($stream,$msg_list,$mailbox,$flags);
! }
!
! function mail_move($stream,$msg_list,$mailbox,$flags=0)
! {
! // do we force use of msg UID's
! if ( ($this->force_msg_uids == True)
! && (!($flags & CP_UID)) )
! {
! $flags |= CP_UID;
! }
! $mailbox = $this->utf7_encode($mailbox, 'mail_move');
! return
imap_mail_move($stream,$msg_list,$mailbox,$flags);
! }
!
! function num_msg($stream) // returns number of messages in the
mailbox
! {
! return imap_num_msg($stream);
! }
!
! function noop_ping_test($stream)
! {
! return imap_ping($stream);
! }
!
! function open($mailbox,$username,$password,$flags=0)
! {
! $mailbox = $this->utf7_encode($mailbox);
! return imap_open($mailbox,$username,$password,$flags);
! }
!
! function qprint($message)
! {
! // return quoted_printable_decode($message);
! $str = quoted_printable_decode($message);
! return str_replace("=\n",'',$str);
! }
!
! function reopen($stream,$mailbox,$flags=0)
! {
! $mailbox = $this->utf7_encode($mailbox);
! return imap_reopen($stream,$mailbox,$flags);
! }
!
! function server_last_error()
! {
! // supported in PHP >= 3.0.12
! return imap_last_error();
! }
!
! function i_search($stream,$criteria,$flags=0)
! {
! // do we force use of msg UID's
! if ( ($this->force_msg_uids == True)
! && (!($flags & SE_UID)) )
! {
! $flags |= SE_UID;
! }
! return imap_search($stream,$criteria,$flags);
! }
!
! function sort($stream,$criteria,$reverse='',$flags=0)
! {
! // do we force use of msg UID's
! if ( ($this->force_msg_uids == True)
! && (!($flags & SE_UID)) )
! {
! $flags |= SE_UID;
! }
! //echo 'class dcom: sort: $this->force_msg_uids=
'.serialize($this->force_msg_uids).'; $flags: ['.serialize($flags).']<br>';
! return imap_sort($stream,$criteria,$reverse,$flags);
! }
!
! function status($stream,$mailbox,$options=0)
! {
! $mailbox = $this->utf7_encode($mailbox);
! return imap_status($stream,$mailbox,$options);
! }
!
! function construct_folder_str($folder)
! {
! /* This is only used by the login() function */
! // Cyrus style: INBOX.Junque
! // UWash style: ./aeromail/Junque
! return $GLOBALS['phpgw']->msg->get_folder_long($folder);
! }
!
! function deconstruct_folder_str($folder)
! {
! // This is only used by the login() function
! // Cyrus style: INBOX.Junque
! // UWash style: ./aeromail/Junque
! return
$GLOBALS['phpgw']->msg->get_folder_short($folder);
! }
!
! /* rfc_get_flag() is more "rfc safe", as RFC822 allows
! the content of the header to be on several lines.
!
! Quote from RFC822 3.1.1:
! <quote>
! For convenience, the field-body portion of
this conceptual
! entity can be split into a multiple-line
representation; this
! is called "folding". The general rule is that
wherever there
! may be linear-white-space (NOT simply
LWSP-chars), a CRLF
! immediately followed by AT LEAST one LWSP-char
may instead be
! inserted.
! </quote>
!
! Note: $flag should _NOT_ begin with a space
! $field_no should be given strarting at 1
! */
! function rfc_get_flag($stream,$msg_num,$flags=0,$field_no=1)
! {
! // do we force use of msg UID's
! if ( ($this->force_msg_uids == True)
! && (!($flags & FT_UID)) )
! {
! $flags |= FT_UID;
! }
! $fieldCount = 0;
! $header = imap_fetchheader ($stream, $msg_num, $flags);
! $header = explode("\n", $header);
! $flag = strtolower($flag);
!
! for ($i=0; $i < count($header); $i++)
! {
! // The next check for the $flag _requires_ the
field to
! // start at the first character (unless some
person
! // adds a space in the beginning of $flag.
! // I believe this is correct according to the
RFC.
!
! if (strcmp
(substr(strtolower($header[$i]),0,strlen($flag) + 1), $flag.':')==0)
! {
! $fieldFound = true;
! $fieldCount++;
! }
! else
! {
! $fieldFound = false;
! }
!
! if ($fieldFound && $fieldCount == $field_no)
! {
! // We now need to see if the next lines
belong to this message.
! $header_begin = $i;
! // make sure we don't go too far:)
! // and if the line begins with a space
then
! // we'll increment the counter with one.
! $i++;
!
! while ($i < count($header)
! &&
strcmp(substr($header[$i],0,1), ' ') == 0)
! {
! $i++;
! }
!
! // Remove the "field:" from this string.
! $return_tmp = explode (':',
$header[$header_begin]);
! $tmp_flag = $return_tmp[0];
! $return_string = trim ($return_tmp[1]);
!
! if (strcasecmp ($flag, $tmp_flag) != 0)
! {
! return false;
! }
! // Houston, we have a _problem_
! // add the rest of the content
!
! for ($j=$header_begin+1; $j < $i; $j++)
! {
! $return_string .= $header[$j];
! }
!
! return $return_string;
! }
! }
! // failed to find $flag
! return false;
! }
!
! /*
! function get_flag($stream,$msg_num,$flag)
! {
! // Call my new rfc_get_flag() function.
! // It should replace get_flag() as soon as it's
! // accepted into cvs phpGW
! return $this->rfc_get_flag ($stream, $msg_num, $flag);
!
! $header = imap_fetchheader($stream,$msg_num);
! $header = explode("\n",$header);
! $flag = strtolower($flag);
! for ($i=0;$i<count($header);$i++)
! {
! $pos = strpos($header[$i],':');
! if (is_int($pos) && $pos)
! {
! $keyword =
trim(substr($header[$i],0,$pos));
! $content =
trim(substr($header[$i],$pos+1));
! if (strtolower($keyword) == $flag)
! {
! return $content;
! }
! }
! }
! return false;
! }
! */
! }
! ?>
Index: class.mail_dcom_imap_sock.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.mail_dcom_imap_sock.inc.php,v
retrieving revision 1.13
retrieving revision 1.14
diff -C2 -r1.13 -r1.14
*** class.mail_dcom_imap_sock.inc.php 28 Sep 2002 20:01:43 -0000 1.13
--- class.mail_dcom_imap_sock.inc.php 25 Oct 2002 12:45:53 -0000 1.14
***************
*** 1,1217 ****
! <?php
! /**************************************************************************\
! * phpGroupWare API - NNTP *
! * This file written by Mark Peters <address@hidden> *
! * Handles specific operations in dealing with NNTP *
! * Copyright (C) 2001 Mark Peters *
! * -------------------------------------------------------------------------*
! * This library is part of the phpGroupWare API *
! * http://www.phpgroupware.org/api
*
! * ------------------------------------------------------------------------ *
[...2550 lines suppressed...]
! function
fetchbody($stream_notused,$msg_num,$part_num="",$flags="")
! {
! if ($this->debug_dcom >= 1) { echo 'imap: fetchbody
NOT YET IMPLEMENTED imap sockets function<br>'; }
! return False;
! }
!
! /*!
! @function get_body
! @abstract implements IMAP_BODY
! */
! function
get_body($stream_notused,$msg_num,$flags='',$phpgw_include_header=True)
! {
! // NEEDED: code for flags: FT_UID; maybe FT_INTERNAL;
FT_NOT; flag FT_PEEK has no effect on POP3
! if ($this->debug_dcom >= 1) { echo 'imap: get_body NOT
YET IMPLEMENTED imap sockets function<br>'; }
! return False;
! }
!
! }
!
! ?>
Index: class.mail_dcom_nntp.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.mail_dcom_nntp.inc.php,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -r1.2 -r1.3
*** class.mail_dcom_nntp.inc.php 12 Nov 2001 21:42:09 -0000 1.2
--- class.mail_dcom_nntp.inc.php 25 Oct 2002 12:45:53 -0000 1.3
***************
*** 1,208 ****
! <?php
! /**************************************************************************\
! * phpGroupWare Email - POP3 Mail Wrapper for Imap Enabled PHP
*
! * http://www.phpgroupware.org/ *
*
! * -------------------------------------------------------------------------*
! * This library is part of phpGroupWare (http://www.phpgroupware.org) *
! * This library is free software; you can redistribute it and/or modify it *
! * under the terms of the GNU Lesser General Public License as published by *
! * the Free Software Foundation; either version 2.1 of the License, *
! * or any later version. *
! * This library is distributed in the hope that it will be useful, but *
! * WITHOUT ANY WARRANTY; without even the implied warranty of *
! * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
! * See the GNU Lesser General Public License for more details. *
! * You should have received a copy of the GNU Lesser General Public License *
! * along with this library; if not, write to the Free Software Foundation, *
! * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
! \**************************************************************************/
!
! /* $Id$ */
!
! class mail_dcom extends mail_dcom_base
! {
! function base64($text)
! {
! return imap_base64($text);
! }
!
! function close($stream,$flags='')
! {
! return imap_close($stream,$flags);
! }
!
! function createmailbox($stream,$mailbox)
! {
! // N/A for pop3
! return true;
! }
!
! function deletemailbox($stream,$mailbox)
! {
! // N/A for pop3
! return true;
! }
!
! function delete($stream,$msg_num,$flags='',$currentfolder='')
! {
! return imap_delete($stream,$msg_num);
! }
!
! function expunge($stream)
! {
! // N/A for pop3
! return true;
! }
!
! function fetchbody($stream,$msgnr,$partnr,$flags='')
! {
! return imap_fetchbody($stream,$msgnr,$partnr,$flags);
! }
!
! function
header($stream,$msg_nr,$fromlength='',$tolength='',$defaulthost='')
! {
! return
imap_header($stream,$msg_nr,$fromlength,$tolength,$defaulthost);
! }
!
! function fetch_raw_mail($stream,$msg_num)
! {
! return
imap_fetchheader($stream,$msg_num,FT_PREFETCHTEXT);
! }
!
! function fetchheader($stream,$msg_num)
! {
! return imap_fetchheader($stream,$msg_num);
! }
!
! function get_header($stream,$msg_num)
! {
! // alias for compatibility with some old code
! return $this->fetchheader($stream,$msg_num);
! }
!
! function fetchstructure($stream,$msg_num,$flags='')
! {
! return imap_fetchstructure($stream,$msg_num);
! }
!
! function get_body($stream,$msg_num,$flags='')
! {
! return imap_body($stream,$msg_num,$flags);
! }
!
! function listmailbox($stream,$ref,$pattern)
! {
! // N/A for pop3
! return False;
! }
!
! function num_msg($stream) // returns number of messages in the
mailbox
! {
! return imap_num_msg($stream);
! }
!
! function mailboxmsginfo($stream)
! {
! return imap_mailboxmsginfo($stream);
! }
!
! function mailcopy($stream,$msg_list,$mailbox,$flags)
! {
! // N/A for pop3
! return False;
! }
!
! function mail_move($stream,$msg_list,$mailbox)
! {
! // N/A for pop3
! return False;
! }
!
! function open($mailbox,$username,$password,$flags='')
! {
! return imap_open($mailbox,$username,$password,$flags);
! }
!
! function qprint($message)
! {
! // return quoted_printable_decode($message);
! $str = quoted_printable_decode($message);
! return str_replace("=\n",'',$str);
! }
!
! function reopen($stream,$mailbox,$flags='')
! {
! // N/A for pop3
! return False;
! }
!
! function
sort($stream,$criteria,$reverse='',$options='',$msg_info='')
! {
! return imap_sort($stream,$criteria,$reverse,$options);
! }
!
! function status($stream,$mailbox,$options)
! {
! return imap_status($stream,$mailbox,$options);
! //return imap_num_recent($stream);
! }
!
! function append($stream,$folder='Sent',$header,$body,$flags='')
! {
! // N/A for pop3
! return False;
! }
!
! function login($folder='INBOX')
! {
! //$debug_logins = True;
! $debug_logins = False;
! if($debug_logins)
! {
! echo 'CALL TO LOGIN IN CLASS MSG
POP3'.'<br>'.'userid='.$GLOBALS['phpgw_info']['user']['preferences']['email']['userid'];
! }
!
! error_reporting(error_reporting() - 2);
! if($folder!='INBOX')
! {
! // pop3 has only 1 "folder" - inbox
! $folder='INBOX';
! }
!
! // WORKAROUND FOR BUG IN EMAIL CUSTOM PASSWORDS (PHASED
OUT 7/2/01)
! // $pass = $this->get_email_passwd();
! // === ISSET CHECK ==
! if (
(isset($GLOBALS['phpgw_info']['user']['preferences']['email']['userid']))
! &&
($GLOBALS['phpgw_info']['user']['preferences']['email']['userid'] != '')
! &&
(isset($GLOBALS['phpgw_info']['user']['preferences']['email']['passwd']))
! &&
($GLOBALS['phpgw_info']['user']['preferences']['email']['passwd'] != '') )
! {
! $user =
$GLOBALS['phpgw_info']['user']['preferences']['email']['userid'];
! $pass =
$GLOBALS['phpgw_info']['user']['preferences']['email']['passwd'];
! }
! else
! {
! // problem - invalid or nonexistant info for
userid and/or passwd
! return False;
! }
!
! $server_str =
$GLOBALS['phpgw']->msg->get_mailsvr_callstr();
! $mbox = $this->open($server_str.$folder, $user, $pass);
!
! error_reporting(error_reporting() + 2);
! return $mbox;
! }
!
! function construct_folder_str($folder)
! {
! $folder_str =
$GLOBALS['phpgw']->msg->get_folder_long($folder);
! return $folder_str;
! }
!
! function deconstruct_folder_str($folder)
! {
! $folder_str =
$GLOBALS['phpgw']->msg->get_folder_short($folder);
! return $folder_str;
! }
! } // end of class msg
!
--- 1,208 ----
! <?php
! /**************************************************************************\
! * phpGroupWare Email - POP3 Mail Wrapper for Imap Enabled PHP
*
! * http://www.phpgroupware.org/ *
*
! * -------------------------------------------------------------------------*
! * This library is part of phpGroupWare (http://www.phpgroupware.org) *
! * This library is free software; you can redistribute it and/or modify it *
! * under the terms of the GNU Lesser General Public License as published by *
! * the Free Software Foundation; either version 2.1 of the License, *
! * or any later version. *
! * This library is distributed in the hope that it will be useful, but *
! * WITHOUT ANY WARRANTY; without even the implied warranty of *
! * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
! * See the GNU Lesser General Public License for more details. *
! * You should have received a copy of the GNU Lesser General Public License *
! * along with this library; if not, write to the Free Software Foundation, *
! * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
! \**************************************************************************/
!
! /* $Id$ */
!
! class mail_dcom extends mail_dcom_base
! {
! function base64($text)
! {
! return imap_base64($text);
! }
!
! function close($stream,$flags='')
! {
! return imap_close($stream,$flags);
! }
!
! function createmailbox($stream,$mailbox)
! {
! // N/A for pop3
! return true;
! }
!
! function deletemailbox($stream,$mailbox)
! {
! // N/A for pop3
! return true;
! }
!
! function delete($stream,$msg_num,$flags='',$currentfolder='')
! {
! return imap_delete($stream,$msg_num);
! }
!
! function expunge($stream)
! {
! // N/A for pop3
! return true;
! }
!
! function fetchbody($stream,$msgnr,$partnr,$flags='')
! {
! return imap_fetchbody($stream,$msgnr,$partnr,$flags);
! }
!
! function
header($stream,$msg_nr,$fromlength='',$tolength='',$defaulthost='')
! {
! return
imap_header($stream,$msg_nr,$fromlength,$tolength,$defaulthost);
! }
!
! function fetch_raw_mail($stream,$msg_num)
! {
! return
imap_fetchheader($stream,$msg_num,FT_PREFETCHTEXT);
! }
!
! function fetchheader($stream,$msg_num)
! {
! return imap_fetchheader($stream,$msg_num);
! }
!
! function get_header($stream,$msg_num)
! {
! // alias for compatibility with some old code
! return $this->fetchheader($stream,$msg_num);
! }
!
! function fetchstructure($stream,$msg_num,$flags='')
! {
! return imap_fetchstructure($stream,$msg_num);
! }
!
! function get_body($stream,$msg_num,$flags='')
! {
! return imap_body($stream,$msg_num,$flags);
! }
!
! function listmailbox($stream,$ref,$pattern)
! {
! // N/A for pop3
! return False;
! }
!
! function num_msg($stream) // returns number of messages in the
mailbox
! {
! return imap_num_msg($stream);
! }
!
! function mailboxmsginfo($stream)
! {
! return imap_mailboxmsginfo($stream);
! }
!
! function mailcopy($stream,$msg_list,$mailbox,$flags)
! {
! // N/A for pop3
! return False;
! }
!
! function mail_move($stream,$msg_list,$mailbox)
! {
! // N/A for pop3
! return False;
! }
!
! function open($mailbox,$username,$password,$flags='')
! {
! return imap_open($mailbox,$username,$password,$flags);
! }
!
! function qprint($message)
! {
! // return quoted_printable_decode($message);
! $str = quoted_printable_decode($message);
! return str_replace("=\n",'',$str);
! }
!
! function reopen($stream,$mailbox,$flags='')
! {
! // N/A for pop3
! return False;
! }
!
! function
sort($stream,$criteria,$reverse='',$options='',$msg_info='')
! {
! return imap_sort($stream,$criteria,$reverse,$options);
! }
!
! function status($stream,$mailbox,$options)
! {
! return imap_status($stream,$mailbox,$options);
! //return imap_num_recent($stream);
! }
!
! function append($stream,$folder='Sent',$header,$body,$flags='')
! {
! // N/A for pop3
! return False;
! }
!
! function login($folder='INBOX')
! {
! //$debug_logins = True;
! $debug_logins = False;
! if($debug_logins)
! {
! echo 'CALL TO LOGIN IN CLASS MSG
POP3'.'<br>'.'userid='.$GLOBALS['phpgw_info']['user']['preferences']['email']['userid'];
! }
!
! error_reporting(error_reporting() - 2);
! if($folder!='INBOX')
! {
! // pop3 has only 1 "folder" - inbox
! $folder='INBOX';
! }
!
! // WORKAROUND FOR BUG IN EMAIL CUSTOM PASSWORDS (PHASED
OUT 7/2/01)
! // $pass = $this->get_email_passwd();
! // === ISSET CHECK ==
! if (
(isset($GLOBALS['phpgw_info']['user']['preferences']['email']['userid']))
! &&
($GLOBALS['phpgw_info']['user']['preferences']['email']['userid'] != '')
! &&
(isset($GLOBALS['phpgw_info']['user']['preferences']['email']['passwd']))
! &&
($GLOBALS['phpgw_info']['user']['preferences']['email']['passwd'] != '') )
! {
! $user =
$GLOBALS['phpgw_info']['user']['preferences']['email']['userid'];
! $pass =
$GLOBALS['phpgw_info']['user']['preferences']['email']['passwd'];
! }
! else
! {
! // problem - invalid or nonexistant info for
userid and/or passwd
! return False;
! }
!
! $server_str =
$GLOBALS['phpgw']->msg->get_mailsvr_callstr();
! $mbox = $this->open($server_str.$folder, $user, $pass);
!
! error_reporting(error_reporting() + 2);
! return $mbox;
! }
!
! function construct_folder_str($folder)
! {
! $folder_str =
$GLOBALS['phpgw']->msg->get_folder_long($folder);
! return $folder_str;
! }
!
! function deconstruct_folder_str($folder)
! {
! $folder_str =
$GLOBALS['phpgw']->msg->get_folder_short($folder);
! return $folder_str;
! }
! } // end of class msg
!
Index: class.mail_dcom_nntp_sock.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.mail_dcom_nntp_sock.inc.php,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -r1.3 -r1.4
*** class.mail_dcom_nntp_sock.inc.php 12 Nov 2001 21:42:09 -0000 1.3
--- class.mail_dcom_nntp_sock.inc.php 25 Oct 2002 12:45:53 -0000 1.4
***************
*** 1,324 ****
! <?php
! /**************************************************************************\
! * phpGroupWare API - NNTP *
! * This file written by Mark Peters <address@hidden> *
! * Handles specific operations in dealing with NNTP *
! * Copyright (C) 2001 Mark Peters *
! * -------------------------------------------------------------------------*
! * This library is part of the phpGroupWare API *
! * http://www.phpgroupware.org/api
*
! * ------------------------------------------------------------------------ *
! * This library is free software; you can redistribute it and/or modify it *
! * under the terms of the GNU Lesser General Public License as published by *
! * the Free Software Foundation; either version 2.1 of the License, *
! * or any later version. *
! * This library is distributed in the hope that it will be useful, but *
! * WITHOUT ANY WARRANTY; without even the implied warranty of *
! * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
! * See the GNU Lesser General Public License for more details. *
! * You should have received a copy of the GNU Lesser General Public License *
! * along with this library; if not, write to the Free Software Foundation, *
! * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
! \**************************************************************************/
!
! class mail_dcom extends mail_dcom_base
! {
! var $db;
! var $folder;
! var $start_msg;
! var $end_msg;
!
! function mode_reader()
! {
! return $this->msg2socket('mode reader','^20[01]',&$response);
! }
!
! function login ($user,$passwd,$server,$port,$folder = '')
! {
! global $phpgw;
!
! $this->db = $phpgw->db;
!
! if(@!$server)
! {
! echo 'Error: Configuration Error! The administrator has
not configured the NNTP Server.';
! }
!
! if(@!$port)
! {
! $port = 119;
! }
!
! if (!$this->open_port($server,$port,15))
! {
! $this->error();
! }
! $this->read_port();
!
! if ($user <> '' && $passwd <> '')
! {
! if (!$this->msg2socket('authinfo user
'.$user,'^381',&$response))
! {
! $this->error();
! }
! if (!$this->msg2socket('authinfo pass
'.$passwd,'^281',&$response))
! {
! $this->error();
! }
! }
! if (!$this->mode_reader())
! {
! $this->error();
! }
! if(!$folder)
! {
! $folder = $this->get_first_folder();
! if(!$folder)
! {
! $this->error();
! }
! }
! $this->folder = $folder;
! $this->mailbox = $this->get_mailbox_name($folder);
! $this->num_msgs = $this->num_msg($this->mailbox);
! $this->start_msg = $this->first_message($this->mailbox);
! $this->end_msg = $this->last_message($this->mailbox);
! echo 'Successful connection to '.$this->mailbox."<br>\n";
! }
!
! function fix_folder($folder='')
! {
! if($folder=='')
! {
! $mailbox = $this->mailbox;
! }
! elseif(is_int($folder))
! {
! $mailbox = $this->get_mailbox_name($folder);
! }
! else
! {
! $mailbox = $folder;
! }
! return $mailbox;
! }
!
! function get_first_folder()
! {
! if(@!$GLOBALS['phpgw_info']['user']['preferences']['nntp'])
! {
! $this->set_error('Configuration','User
Preferences','You have not set your user preferences in NNTP.');
! $this->error();
! }
! else
! {
! $pref =
@each($GLOBALS['phpgw_info']['user']['preferences']['nntp']);
! return $pref[0];
! }
! }
!
! function get_mailbox_name($folder)
! {
! $active = False;
! $this->db->query('SELECT name,active FROM newsgroups WHERE
con='.$folder,_LINE__,__FILE__);
! if ($this->db->num_rows() > 0)
! {
! $this->db->next_record();
! $mailbox = $this->db->f('name');
! }
! if ($this->db->f('active') != 'Y')
! {
! $GLOBALS['phpgw']->preferences->delete('nntp',$folder);
! $GLOBALS['phpgw']->preferences->save_repository();
!
! $this->set_error('Administration','Automatic
Disabling','The newsgroup '.$mailbox.' is not activated by the Administrator.');
! $this->error();
! }
! return $mailbox;
! }
!
! function get_mailbox_counts($folder='',$index=1)
! {
! $mailbox = $this->fix_folder($folder);
! if (!$this->msg2socket('group '.$mailbox,'^211',&$response))
! {
! $this->error();
! }
! $temp_array = explode(' ',$response);
! return $temp_array[$index];
! }
!
! function num_msg($folder='')
! {
! if(($folder == '' || $folder == $this->mailbox) &&
isset($this->num_msgs))
! {
! return $this->num_msgs;
! }
! return $this->get_mailbox_counts($folder,1);
! }
!
! function first_message($folder='')
! {
! if(($folder == '' || $folder == $this->mailbox) &&
isset($this->start_msg))
! {
! return $this->start_msg;
! }
! return $this->get_mailbox_counts($folder,2);
! }
!
! function last_message($folder='')
! {
! if(($folder == '' || $folder == $this->mailbox) &&
isset($this->end_msg))
! {
! return $this->end_msg;
! }
! return $this->get_mailbox_counts($folder,3);
! }
!
! function mailboxmsginfo($folder='')
! {
! $info = new msg_mb_info;
! if($folder=='' || $folder==$this->mailbox ||
$folder==$this->folder)
! {
! if(isset($this->num_msgs))
! {
! $info->messages = $this->num_msgs;
! }
! else
! {
! if($folder==$this->folder)
! {
! $this->mailbox =
$this->get_mailbox_name($folder);
! }
! $info->messages =
$this->num_msg($this->mailbox);
! }
! $info->size = 0;
! if ($info->messages)
! {
! return $info;
! }
! else
! {
! return False;
! }
! }
! else
! {
! $mailbox = $this->fix_folder($folder);
! }
!
! $info->messages = $this->num_msgs($mailbox);
! $info->size = 0;
!
! $this->num_msgs($this->mailbox);
!
! if ($info->messages)
! {
! return $info;
! }
! else
! {
! return False;
! }
! }
!
! function fetch_field($start,$stop,$element)
! {
! if (!$this->msg2socket('XHDR '.$element.'
'.$start.'-'.$stop,'^221',&$response))
! {
! $this->error();
! }
!
! $field_element = Array();
! while ($line = $this->read_port())
! {
! $line = chop($line);
! if ($line == '.')
! {
! break;
! }
! $breakpos = strpos($line,' ');
!
! $field_element[intval(substr($line,0,$breakpos-1))] =
$this->phpGW_quoted_printable_decode2(substr($line,$breakpos+1));
! }
! return $field_element;
! }
!
! function status($folder='',$options=SA_ALL)
! {
! $info = new mailbox_status;
! $info->messages = $this->num_msg($folder);
! return $info;
! }
!
! function sort($folder='',$criteria=SORTDATE,$reverse=False,$options='')
! {
! if($folder == '' || $folder == $this->mailbox)
! {
! $mailbox = $this->mailbox;
! $start_msg = $this->start_msg;
! $end_msg = $this->end_msg;
! }
! else
! {
! $mailbox = $this->fix_folder($folder);
! $start_msg = $this->first_message($mailbox);
! $end_msg = $this->last_message($mailbox);
! }
!
! switch($criteria)
! {
! case SORTDATE:
! $old_list =
$this->fetch_field($start_msg,$end_msg,'Date');
! $field_list =
$this->convert_date_array($old_list);
! break;
! case SORTARRIVAL:
! break;
! case SORTFROM:
! $field_list =
$this->fetch_field($start_msg,$end_msg,'From');
! break;
! case SORTSUBJECT:
! $field_list =
$this->fetch_field($start_msg,$end_msg,'Subject');
! break;
! case SORTTO:
! $field_list =
$this->fetch_field($start_msg,$end_msg,'To');
! break;
! case SORTCC:
! $field_list =
$this->fetch_field($start_msg,$end_msg,'cc');
! break;
! case SORTSIZE:
! break;
! }
! @reset($field_list);
! if($criteria == SORTSUBJECT)
! {
! if(!$reverse)
! {
!
uasort($field_list,array($this,"ssort_ascending"));
! }
! else
! {
!
uasort($field_list,array($this,"ssort_decending"));
! }
! }
! elseif(!$reverse)
! {
! asort($field_list);
! }
! else
! {
! arsort($field_list);
! }
! $return_array = Array();
! @reset($field_list);
! $i = 1;
! while(list($key,$value) = each($field_list))
! {
! $return_array[] = $key;
! echo '('.$i++.') Field: <b>'.$value."</b>\t\tMsg Num:
<b>".$key."</b><br>\n";
! }
! @reset($return_array);
! return $return_array;
! }
! }
! ?>
--- 1,324 ----
! <?php
! /**************************************************************************\
! * phpGroupWare API - NNTP *
! * This file written by Mark Peters <address@hidden> *
! * Handles specific operations in dealing with NNTP *
! * Copyright (C) 2001 Mark Peters *
! * -------------------------------------------------------------------------*
! * This library is part of the phpGroupWare API *
! * http://www.phpgroupware.org/api
*
! * ------------------------------------------------------------------------ *
! * This library is free software; you can redistribute it and/or modify it *
! * under the terms of the GNU Lesser General Public License as published by *
! * the Free Software Foundation; either version 2.1 of the License, *
! * or any later version. *
! * This library is distributed in the hope that it will be useful, but *
! * WITHOUT ANY WARRANTY; without even the implied warranty of *
! * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
! * See the GNU Lesser General Public License for more details. *
! * You should have received a copy of the GNU Lesser General Public License *
! * along with this library; if not, write to the Free Software Foundation, *
! * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
! \**************************************************************************/
!
! class mail_dcom extends mail_dcom_base
! {
! var $db;
! var $folder;
! var $start_msg;
! var $end_msg;
!
! function mode_reader()
! {
! return $this->msg2socket('mode reader','^20[01]',&$response);
! }
!
! function login ($user,$passwd,$server,$port,$folder = '')
! {
! global $phpgw;
!
! $this->db = $phpgw->db;
!
! if(@!$server)
! {
! echo 'Error: Configuration Error! The administrator has
not configured the NNTP Server.';
! }
!
! if(@!$port)
! {
! $port = 119;
! }
!
! if (!$this->open_port($server,$port,15))
! {
! $this->error();
! }
! $this->read_port();
!
! if ($user <> '' && $passwd <> '')
! {
! if (!$this->msg2socket('authinfo user
'.$user,'^381',&$response))
! {
! $this->error();
! }
! if (!$this->msg2socket('authinfo pass
'.$passwd,'^281',&$response))
! {
! $this->error();
! }
! }
! if (!$this->mode_reader())
! {
! $this->error();
! }
! if(!$folder)
! {
! $folder = $this->get_first_folder();
! if(!$folder)
! {
! $this->error();
! }
! }
! $this->folder = $folder;
! $this->mailbox = $this->get_mailbox_name($folder);
! $this->num_msgs = $this->num_msg($this->mailbox);
! $this->start_msg = $this->first_message($this->mailbox);
! $this->end_msg = $this->last_message($this->mailbox);
! echo 'Successful connection to '.$this->mailbox."<br>\n";
! }
!
! function fix_folder($folder='')
! {
! if($folder=='')
! {
! $mailbox = $this->mailbox;
! }
! elseif(is_int($folder))
! {
! $mailbox = $this->get_mailbox_name($folder);
! }
! else
! {
! $mailbox = $folder;
! }
! return $mailbox;
! }
!
! function get_first_folder()
! {
! if(@!$GLOBALS['phpgw_info']['user']['preferences']['nntp'])
! {
! $this->set_error('Configuration','User
Preferences','You have not set your user preferences in NNTP.');
! $this->error();
! }
! else
! {
! $pref =
@each($GLOBALS['phpgw_info']['user']['preferences']['nntp']);
! return $pref[0];
! }
! }
!
! function get_mailbox_name($folder)
! {
! $active = False;
! $this->db->query('SELECT name,active FROM newsgroups WHERE
con='.$folder,_LINE__,__FILE__);
! if ($this->db->num_rows() > 0)
! {
! $this->db->next_record();
! $mailbox = $this->db->f('name');
! }
! if ($this->db->f('active') != 'Y')
! {
! $GLOBALS['phpgw']->preferences->delete('nntp',$folder);
! $GLOBALS['phpgw']->preferences->save_repository();
!
! $this->set_error('Administration','Automatic
Disabling','The newsgroup '.$mailbox.' is not activated by the Administrator.');
! $this->error();
! }
! return $mailbox;
! }
!
! function get_mailbox_counts($folder='',$index=1)
! {
! $mailbox = $this->fix_folder($folder);
! if (!$this->msg2socket('group '.$mailbox,'^211',&$response))
! {
! $this->error();
! }
! $temp_array = explode(' ',$response);
! return $temp_array[$index];
! }
!
! function num_msg($folder='')
! {
! if(($folder == '' || $folder == $this->mailbox) &&
isset($this->num_msgs))
! {
! return $this->num_msgs;
! }
! return $this->get_mailbox_counts($folder,1);
! }
!
! function first_message($folder='')
! {
! if(($folder == '' || $folder == $this->mailbox) &&
isset($this->start_msg))
! {
! return $this->start_msg;
! }
! return $this->get_mailbox_counts($folder,2);
! }
!
! function last_message($folder='')
! {
! if(($folder == '' || $folder == $this->mailbox) &&
isset($this->end_msg))
! {
! return $this->end_msg;
! }
! return $this->get_mailbox_counts($folder,3);
! }
!
! function mailboxmsginfo($folder='')
! {
! $info = new msg_mb_info;
! if($folder=='' || $folder==$this->mailbox ||
$folder==$this->folder)
! {
! if(isset($this->num_msgs))
! {
! $info->messages = $this->num_msgs;
! }
! else
! {
! if($folder==$this->folder)
! {
! $this->mailbox =
$this->get_mailbox_name($folder);
! }
! $info->messages =
$this->num_msg($this->mailbox);
! }
! $info->size = 0;
! if ($info->messages)
! {
! return $info;
! }
! else
! {
! return False;
! }
! }
! else
! {
! $mailbox = $this->fix_folder($folder);
! }
!
! $info->messages = $this->num_msgs($mailbox);
! $info->size = 0;
!
! $this->num_msgs($this->mailbox);
!
! if ($info->messages)
! {
! return $info;
! }
! else
! {
! return False;
! }
! }
!
! function fetch_field($start,$stop,$element)
! {
! if (!$this->msg2socket('XHDR '.$element.'
'.$start.'-'.$stop,'^221',&$response))
! {
! $this->error();
! }
!
! $field_element = Array();
! while ($line = $this->read_port())
! {
! $line = chop($line);
! if ($line == '.')
! {
! break;
! }
! $breakpos = strpos($line,' ');
!
! $field_element[intval(substr($line,0,$breakpos-1))] =
$this->phpGW_quoted_printable_decode2(substr($line,$breakpos+1));
! }
! return $field_element;
! }
!
! function status($folder='',$options=SA_ALL)
! {
! $info = new mailbox_status;
! $info->messages = $this->num_msg($folder);
! return $info;
! }
!
! function sort($folder='',$criteria=SORTDATE,$reverse=False,$options='')
! {
! if($folder == '' || $folder == $this->mailbox)
! {
! $mailbox = $this->mailbox;
! $start_msg = $this->start_msg;
! $end_msg = $this->end_msg;
! }
! else
! {
! $mailbox = $this->fix_folder($folder);
! $start_msg = $this->first_message($mailbox);
! $end_msg = $this->last_message($mailbox);
! }
!
! switch($criteria)
! {
! case SORTDATE:
! $old_list =
$this->fetch_field($start_msg,$end_msg,'Date');
! $field_list =
$this->convert_date_array($old_list);
! break;
! case SORTARRIVAL:
! break;
! case SORTFROM:
! $field_list =
$this->fetch_field($start_msg,$end_msg,'From');
! break;
! case SORTSUBJECT:
! $field_list =
$this->fetch_field($start_msg,$end_msg,'Subject');
! break;
! case SORTTO:
! $field_list =
$this->fetch_field($start_msg,$end_msg,'To');
! break;
! case SORTCC:
! $field_list =
$this->fetch_field($start_msg,$end_msg,'cc');
! break;
! case SORTSIZE:
! break;
! }
! @reset($field_list);
! if($criteria == SORTSUBJECT)
! {
! if(!$reverse)
! {
!
uasort($field_list,array($this,"ssort_ascending"));
! }
! else
! {
!
uasort($field_list,array($this,"ssort_decending"));
! }
! }
! elseif(!$reverse)
! {
! asort($field_list);
! }
! else
! {
! arsort($field_list);
! }
! $return_array = Array();
! @reset($field_list);
! $i = 1;
! while(list($key,$value) = each($field_list))
! {
! $return_array[] = $key;
! echo '('.$i++.') Field: <b>'.$value."</b>\t\tMsg Num:
<b>".$key."</b><br>\n";
! }
! @reset($return_array);
! return $return_array;
! }
! }
! ?>
Index: class.mail_dcom_pop3.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.mail_dcom_pop3.inc.php,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -r1.9 -r1.10
*** class.mail_dcom_pop3.inc.php 11 Apr 2002 23:40:41 -0000 1.9
--- class.mail_dcom_pop3.inc.php 25 Oct 2002 12:45:53 -0000 1.10
***************
*** 1,295 ****
! <?php
! /**************************************************************************\
! * phpGroupWare Email - POP3 Mail Wrapper for Imap Enabled PHP
*
! * http://www.phpgroupware.org/ *
*
! * -------------------------------------------------------------------------*
! * This library is part of phpGroupWare (http://www.phpgroupware.org) *
! * This library is free software; you can redistribute it and/or modify it *
! * under the terms of the GNU Lesser General Public License as published by *
! * the Free Software Foundation; either version 2.1 of the License, *
! * or any later version. *
! * This library is distributed in the hope that it will be useful, but *
! * WITHOUT ANY WARRANTY; without even the implied warranty of *
! * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
! * See the GNU Lesser General Public License for more details. *
! * You should have received a copy of the GNU Lesser General Public License *
! * along with this library; if not, write to the Free Software Foundation, *
! * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
! \**************************************************************************/
!
! /* $Id$ */
!
! class mail_dcom extends mail_dcom_base
! {
! function append($stream, $folder = 'Sent', $header, $body,
$flags=0)
! {
! // N/A for pop3
! return False;
! }
!
! function base64($text)
! {
! return imap_base64($text);
! }
!
! function close($stream,$flags=0)
! {
! return imap_close($stream,$flags);
! }
!
! function createmailbox($stream,$mailbox)
! {
! // N/A for pop3
! return true;
! }
!
! function deletemailbox($stream,$mailbox)
! {
! // N/A for pop3
! return true;
! }
!
! function delete($stream,$msg_num,$flags=0)
! {
! // do we force use of msg UID's
! if ( ($this->force_msg_uids == True)
! && (!($flags & FT_UID)) )
! {
! $flags |= FT_UID;
! }
! $retval = imap_delete($stream,$msg_num,$flags);
! imap_expunge($stream);
! return $retval;
! }
!
! function expunge($stream)
! {
! // N/A for pop3
! return true;
! }
!
! function fetchbody($stream,$msgnr,$partnr,$flags=0)
! {
! // do we force use of msg UID's
! if ( ($this->force_msg_uids == True)
! && (!($flags & FT_UID)) )
! {
! $flags |= FT_UID;
! }
! return imap_fetchbody($stream,$msgnr,$partnr,$flags);
! }
!
! function fetchheader($stream,$msg_num,$flags=0)
! {
! // do we force use of msg UID's
! if ( ($this->force_msg_uids == True)
! && (!($flags & FT_UID)) )
! {
! $flags |= FT_UID;
! }
! return imap_fetchheader($stream,$msg_num,$flags);
! }
!
! function fetch_raw_mail($stream,$msg_num,$flags=0)
! {
! $flags |= FT_PREFETCHTEXT;
! // do we force use of msg UID's
! if ( ($this->force_msg_uids == True)
! && (!($flags & FT_UID)) )
! {
! $flags |= FT_UID;
! }
! return imap_fetchheader($stream,$msg_num,$flags);
! }
!
! function fetchstructure($stream,$msg_num,$flags=0)
! {
! // do we force use of msg UID's
! if ( ($this->force_msg_uids == True)
! && (!($flags & FT_UID)) )
! {
! $flags |= FT_UID;
! }
! return imap_fetchstructure($stream,$msg_num,$flags);
! }
!
! function get_body($stream,$msg_num,$flags=0)
! {
! // do we force use of msg UID's
! if ( ($this->force_msg_uids == True)
! && (!($flags & FT_UID)) )
! {
! $flags |= FT_UID;
! }
! return imap_body($stream,$msg_num,$flags);
! }
!
! function get_header($stream,$msg_num,$flags)
! {
! // alias for compatibility with some old code
! return $this->fetchheader($stream,$msg_num,$flags);
! }
!
! function
header($stream,$msg_nr,$fromlength='',$tolength='',$defaulthost='')
! {
! // do we need to temporarily switch to regular msg num
sequence for this function?
! if ($this->force_msg_uids == True)
! {
! // this function can nothandle UIDs, switch to
sequence number
! $new_msg_nr = imap_msgno($stream,$msg_nr);
! if ($new_msg_nr)
! {
! $msg_nr = $new_msg_nr;
! }
! }
! return
imap_header($stream,$msg_nr,$fromlength,$tolength,$defaulthost);
! }
!
! function listmailbox($stream,$ref,$pattern)
! {
! // N/A for pop3
! return False;
! }
!
! function mailboxmsginfo($stream)
! {
! return imap_mailboxmsginfo($stream);
! }
!
! function mailcopy($stream,$msg_list,$mailbox,$flags)
! {
! // N/A for pop3
! return False;
! }
!
! function mail_move($stream,$msg_list,$mailbox,$flags)
! {
! // N/A for pop3
! return False;
! }
!
! function num_msg($stream) // returns number of messages in the
mailbox
! {
! return imap_num_msg($stream);
! }
!
! function noop_ping_test($stream)
! {
! return imap_ping($stream);
! }
!
! function open($mailbox,$username,$password,$flags=0)
! {
! return imap_open($mailbox,$username,$password,$flags);
! }
!
! function qprint($message)
! {
! // return quoted_printable_decode($message);
! $str = quoted_printable_decode($message);
! return str_replace("=\n",'',$str);
! }
!
! function reopen($stream,$mailbox,$flags='')
! {
! // N/A for pop3
! return False;
! }
!
! function server_last_error()
! {
! // supported in PHP >= 3.0.12
! //UNKNOWN if POP3 server errors also get put here
! return imap_last_error();
! }
!
! // does this work for pop3?
! function i_search($stream,$criteria,$flags=0)
! {
! // do we force use of msg UID's
! if ( ($this->force_msg_uids == True)
! && (!($flags & SE_UID)) )
! {
! $flags |= SE_UID;
! }
! return imap_search($stream,$criteria,$flags);
! }
!
! //function
sort($stream,$criteria,$reverse='',$options='',$msg_info='')
! function sort($stream,$criteria,$reverse='',$flags=0)
! {
! // do we force use of msg UID's
! if ( ($this->force_msg_uids == True)
! && (!($flags & SE_UID)) )
! {
! $flags |= SE_UID;
! }
! return imap_sort($stream,$criteria,$reverse,$flags);
! }
!
! function status($stream,$mailbox,$options)
! {
! // don't forget pop3 has 1 "folder": INBOX, any other
folder name will not work
! return imap_status($stream,$mailbox,$options);
! }
!
! /*
! // DEPRECIATED - OBSOLETE - DO NOT CALL
! function login( $folder='INBOX')
! {
! //$debug_logins = True;
! $debug_logins = False;
! if ($debug_logins)
! {
! echo 'CALL TO LOGIN IN CLASS MSG
POP3'.'<br>'.'userid='.$GLOBALS['phpgw_info']['user']['preferences']['email']['userid'];
! }
!
! error_reporting(error_reporting() - 2);
! if ($folder != "INBOX")
! {
! // pop3 has only 1 "folder" - inbox
! $folder = 'INBOX';
! }
!
! // WORKAROUND FOR BUG IN EMAIL CUSTOM PASSWORDS (PHASED
OUT 7/2/01)
! // $pass = $this->get_email_passwd();
! // === ISSET CHECK ==
! if (
(isset($GLOBALS['phpgw_info']['user']['preferences']['email']['userid']))
! &&
($GLOBALS['phpgw_info']['user']['preferences']['email']['userid'] != '')
! &&
(isset($GLOBALS['phpgw_info']['user']['preferences']['email']['passwd']))
! &&
($GLOBALS['phpgw_info']['user']['preferences']['email']['passwd'] != '') )
! {
! $user =
$GLOBALS['phpgw_info']['user']['preferences']['email']['userid'];
! $pass =
$GLOBALS['phpgw_info']['user']['preferences']['email']['passwd'];
! }
! else
! {
! // problem - invalid or nonexistant info for
userid and/or passwd
! return False;
! }
!
! $server_str =
$GLOBALS['phpgw']->msg->get_mailsvr_callstr();
! $mbox = $this->open($server_str.$folder, $user, $pass);
!
! error_reporting(error_reporting() + 2);
! return $mbox;
! }
! */
!
! function construct_folder_str($folder)
! {
! // pop3 has only 1 "folder" - inbox
! $folder = 'INBOX';
! $folder_str =
$GLOBALS['phpgw']->msg->get_folder_long($folder);
! return $folder_str;
! }
!
! function deconstruct_folder_str($folder)
! {
! // pop3 has only 1 "folder" - inbox
! $folder = 'INBOX';
! $folder_str =
$GLOBALS['phpgw']->msg->get_folder_short($folder);
! return $folder_str;
! }
!
! } // end of class msg
--- 1,253 ----
! <?php
! /**************************************************************************\
! * phpGroupWare Email - POP3 Mail Wrapper for Imap Enabled PHP
*
! * http://www.phpgroupware.org/ *
*
! * -------------------------------------------------------------------------*
! * This library is part of phpGroupWare (http://www.phpgroupware.org) *
! * This library is free software; you can redistribute it and/or modify it *
! * under the terms of the GNU Lesser General Public License as published by *
! * the Free Software Foundation; either version 2.1 of the License, *
! * or any later version. *
! * This library is distributed in the hope that it will be useful, but *
! * WITHOUT ANY WARRANTY; without even the implied warranty of *
! * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
! * See the GNU Lesser General Public License for more details. *
! * You should have received a copy of the GNU Lesser General Public License *
! * along with this library; if not, write to the Free Software Foundation, *
! * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
! \**************************************************************************/
!
! /* $Id$ */
!
! class mail_dcom extends mail_dcom_base
! {
! function append($stream, $folder = 'Sent', $header, $body,
$flags=0)
! {
! // N/A for pop3
! return False;
! }
!
! function base64($text)
! {
! return imap_base64($text);
! }
!
! function close($stream,$flags=0)
! {
! return imap_close($stream,$flags);
! }
!
! function createmailbox($stream,$mailbox)
! {
! // N/A for pop3
! return true;
! }
!
! function deletemailbox($stream,$mailbox)
! {
! // N/A for pop3
! return true;
! }
!
! function delete($stream,$msg_num,$flags=0)
! {
! // do we force use of msg UID's
! if ( ($this->force_msg_uids == True)
! && (!($flags & FT_UID)) )
! {
! $flags |= FT_UID;
! }
! $retval = imap_delete($stream,$msg_num,$flags);
! // some lame pop3 servers need this extra call to
expunge, but RFC says not necessary
! imap_expunge($stream);
! return $retval;
! }
!
! function expunge($stream)
! {
! // N/A for pop3
! return true;
! }
!
! function fetchbody($stream,$msgnr,$partnr,$flags=0)
! {
! // do we force use of msg UID's
! if ( ($this->force_msg_uids == True)
! && (!($flags & FT_UID)) )
! {
! $flags |= FT_UID;
! }
! return imap_fetchbody($stream,$msgnr,$partnr,$flags);
! }
!
! function fetchheader($stream,$msg_num,$flags=0)
! {
! // do we force use of msg UID's
! if ( ($this->force_msg_uids == True)
! && (!($flags & FT_UID)) )
! {
! $flags |= FT_UID;
! }
! return imap_fetchheader($stream,$msg_num,$flags);
! }
!
! function fetch_raw_mail($stream,$msg_num,$flags=0)
! {
! $flags |= FT_PREFETCHTEXT;
! // do we force use of msg UID's
! if ( ($this->force_msg_uids == True)
! && (!($flags & FT_UID)) )
! {
! $flags |= FT_UID;
! }
! return imap_fetchheader($stream,$msg_num,$flags);
! }
!
! function fetchstructure($stream,$msg_num,$flags=0)
! {
! // do we force use of msg UID's
! if ( ($this->force_msg_uids == True)
! && (!($flags & FT_UID)) )
! {
! $flags |= FT_UID;
! }
! return imap_fetchstructure($stream,$msg_num,$flags);
! }
!
! function get_body($stream,$msg_num,$flags=0)
! {
! // do we force use of msg UID's
! if ( ($this->force_msg_uids == True)
! && (!($flags & FT_UID)) )
! {
! $flags |= FT_UID;
! }
! return imap_body($stream,$msg_num,$flags);
! }
!
! function get_header($stream,$msg_num,$flags)
! {
! // alias for compatibility with some old code
! return $this->fetchheader($stream,$msg_num,$flags);
! }
!
! function
header($stream,$msg_nr,$fromlength='',$tolength='',$defaulthost='')
! {
! // do we need to temporarily switch to regular msg num
sequence for this function?
! if ($this->force_msg_uids == True)
! {
! // this function can nothandle UIDs, switch to
sequence number
! $new_msg_nr = imap_msgno($stream,$msg_nr);
! if ($new_msg_nr)
! {
! $msg_nr = $new_msg_nr;
! }
! }
! return
imap_header($stream,$msg_nr,$fromlength,$tolength,$defaulthost);
! }
!
! function listmailbox($stream,$ref,$pattern)
! {
! // N/A for pop3
! return False;
! }
!
! function mailboxmsginfo($stream)
! {
! return imap_mailboxmsginfo($stream);
! }
!
! function mailcopy($stream,$msg_list,$mailbox,$flags)
! {
! // N/A for pop3
! return False;
! }
!
! function mail_move($stream,$msg_list,$mailbox,$flags)
! {
! // N/A for pop3
! return False;
! }
!
! function num_msg($stream) // returns number of messages in the
mailbox
! {
! return imap_num_msg($stream);
! }
!
! function noop_ping_test($stream)
! {
! return imap_ping($stream);
! }
!
! function open($mailbox,$username,$password,$flags=0)
! {
! return imap_open($mailbox,$username,$password,$flags);
! }
!
! function qprint($message)
! {
! // return quoted_printable_decode($message);
! $str = quoted_printable_decode($message);
! return str_replace("=\n",'',$str);
! }
!
! function reopen($stream,$mailbox,$flags='')
! {
! // N/A for pop3
! return False;
! }
!
! function server_last_error()
! {
! // supported in PHP >= 3.0.12
! //UNKNOWN if POP3 server errors also get put here
! return imap_last_error();
! }
!
! // does this work for pop3?
! function i_search($stream,$criteria,$flags=0)
! {
! // do we force use of msg UID's
! if ( ($this->force_msg_uids == True)
! && (!($flags & SE_UID)) )
! {
! $flags |= SE_UID;
! }
! return imap_search($stream,$criteria,$flags);
! }
!
! //function
sort($stream,$criteria,$reverse='',$options='',$msg_info='')
! function sort($stream,$criteria,$reverse='',$flags=0)
! {
! // do we force use of msg UID's
! if ( ($this->force_msg_uids == True)
! && (!($flags & SE_UID)) )
! {
! $flags |= SE_UID;
! }
! return imap_sort($stream,$criteria,$reverse,$flags);
! }
!
! function status($stream,$mailbox,$options)
! {
! // don't forget pop3 has 1 "folder": INBOX, any other
folder name will not work
! return imap_status($stream,$mailbox,$options);
! }
!
! function construct_folder_str($folder)
! {
! // pop3 has only 1 "folder" - inbox
! $folder = 'INBOX';
! $folder_str =
$GLOBALS['phpgw']->msg->get_folder_long($folder);
! return $folder_str;
! }
!
! function deconstruct_folder_str($folder)
! {
! // pop3 has only 1 "folder" - inbox
! $folder = 'INBOX';
! $folder_str =
$GLOBALS['phpgw']->msg->get_folder_short($folder);
! return $folder_str;
! }
!
! } // end of class msg
Index: class.mail_dcom_pop3_sock.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.mail_dcom_pop3_sock.inc.php,v
retrieving revision 1.18
retrieving revision 1.19
diff -C2 -r1.18 -r1.19
*** class.mail_dcom_pop3_sock.inc.php 28 Sep 2002 20:01:43 -0000 1.18
--- class.mail_dcom_pop3_sock.inc.php 25 Oct 2002 12:45:53 -0000 1.19
***************
*** 1,2136 ****
! <?php
! /**************************************************************************\
! * phpGroupWare API - POP3 *
! * This file written by Mark Peters <address@hidden> *
! * Handles specific operations in dealing with POP3 *
! * Copyright (C) 2001 Mark Peters and Angelo "Angles" Puglisi
*
! * -------------------------------------------------------------------------*
! * This library is part of the phpGroupWare API *
! * http://www.phpgroupware.org/api
*
! * ------------------------------------------------------------------------ *
[...4394 lines suppressed...]
! // --- Include Headers With Body Or Not ---
! if (($flags == FT_NOT) || ($phpgw_include_header ==
True))
! {
! // we need to include the header here
! $body_glob = $header_glob ."\r\n" .$body_glob;
! }
! /*
! if ($this->debug_dcom >= 2)
! {
! echo 'pop3: get_body DUMP<br>= = = First DUMP:
header_glob<br>';
! echo
'<pre>'.htmlspecialchars($header_glob).'</pre><br><br>';
! echo 'pop3: get_body DUMP<br>= = = Second DUMP:
body_glob<br>';
! echo
'<pre>'.htmlspecialchars($body_glob).'</pre><br><br>';
! }
! */
! if ($this->debug_dcom >= 1) { echo 'pop3: Leaving
get_body<br>'; }
! return $body_glob;
! }
! }
! ?>
Index: class.mail_msg.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.mail_msg.inc.php,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -r1.2 -r1.3
*** class.mail_msg.inc.php 28 Sep 2001 18:14:00 -0000 1.2
--- class.mail_msg.inc.php 25 Oct 2002 12:45:53 -0000 1.3
***************
*** 1,34 ****
! <?php
! /**************************************************************************\
! * phpGroupWare - E-Mail Message Processing Functions
*
! * http://www.phpgroupware.org *
! */
! /**************************************************************************\
! * phpGroupWare API - E-Mail Message Processing Functions
*
! * This file written by Angelo Tony Puglisi (Angles) <address@hidden> *
! * Handles specific operations in manipulating email messages
*
! * Copyright (C) 2001 Angelo Tony Puglisi (Angles)
*
! * -------------------------------------------------------------------------*
! * This library is part of the phpGroupWare API *
! * http://www.phpgroupware.org/api
*
! * ------------------------------------------------------------------------ *
! * This library is free software; you can redistribute it and/or modify it *
! * under the terms of the GNU Lesser General Public License as published by *
! * the Free Software Foundation; either version 2.1 of the License, *
! * or any later version. *
! * This library is distributed in the hope that it will be useful, but *
! * WITHOUT ANY WARRANTY; without even the implied warranty of *
! * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
! * See the GNU Lesser General Public License for more details. *
! * You should have received a copy of the GNU Lesser General Public License *
! * along with this library; if not, write to the Free Software Foundation, *
! * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
! \**************************************************************************/
!
! /* $Id$ */
!
! include(PHPGW_INCLUDE_ROOT.'/email/inc/class.mail_msg_base.inc.php');
!
include(PHPGW_INCLUDE_ROOT.'/email/inc/class.mail_msg_wrappers.inc.php');
! include(PHPGW_INCLUDE_ROOT.'/email/inc/class.mail_msg_display.inc.php');
!
! ?>
--- 1,34 ----
! <?php
! /**************************************************************************\
! * phpGroupWare - E-Mail Message Processing Functions
*
! * http://www.phpgroupware.org *
! */
! /**************************************************************************\
! * phpGroupWare API - E-Mail Message Processing Functions
*
! * This file written by Angelo Tony Puglisi (Angles) <address@hidden> *
! * Handles specific operations in manipulating email messages
*
! * Copyright (C) 2001 Angelo Tony Puglisi (Angles)
*
! * -------------------------------------------------------------------------*
! * This library is part of the phpGroupWare API *
! * http://www.phpgroupware.org/api
*
! * ------------------------------------------------------------------------ *
! * This library is free software; you can redistribute it and/or modify it *
! * under the terms of the GNU Lesser General Public License as published by *
! * the Free Software Foundation; either version 2.1 of the License, *
! * or any later version. *
! * This library is distributed in the hope that it will be useful, but *
! * WITHOUT ANY WARRANTY; without even the implied warranty of *
! * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
! * See the GNU Lesser General Public License for more details. *
! * You should have received a copy of the GNU Lesser General Public License *
! * along with this library; if not, write to the Free Software Foundation, *
! * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
! \**************************************************************************/
!
! /* $Id$ */
!
! include(PHPGW_INCLUDE_ROOT.'/email/inc/class.mail_msg_base.inc.php');
!
include(PHPGW_INCLUDE_ROOT.'/email/inc/class.mail_msg_wrappers.inc.php');
! include(PHPGW_INCLUDE_ROOT.'/email/inc/class.mail_msg_display.inc.php');
!
! ?>
Index: class.mail_msg_base.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.mail_msg_base.inc.php,v
retrieving revision 1.75
retrieving revision 1.76
diff -C2 -r1.75 -r1.76
*** class.mail_msg_base.inc.php 28 Sep 2002 20:01:43 -0000 1.75
--- class.mail_msg_base.inc.php 25 Oct 2002 12:45:53 -0000 1.76
***************
*** 1,3544 ****
! <?php
!
/**************************************************************************\
! * phpGroupWare - E-Mail Message Processing Functions
*
! * http://www.phpgroupware.org
*
! */
!
/**************************************************************************\
! * phpGroupWare API - E-Mail Message Processing Functions
*
! * This file written by Angelo Tony Puglisi (Angles) <address@hidden> *
! * Handles specific operations in manipulating email messages
*
! * Copyright (C) 2001 Angelo Tony Puglisi (Angles)
*
[...8791 lines suppressed...]
! }
! else
! {
! $width_tag = '';
! }
! if ($border != '')
! {
! $border_tag = ' border="' .$border .'"';
! }
! else
! {
! $border_tag = '';
! }
! $image_html = '<img src="'.$location.'"' .$height_tag
.$width_tag .$border_tag .$alt_tag .'>';
! return $image_html;
! }
!
! }
! // end of class mail_msg
! ?>
Index: class.mail_msg_display.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.mail_msg_display.inc.php,v
retrieving revision 1.37
retrieving revision 1.38
diff -C2 -r1.37 -r1.38
*** class.mail_msg_display.inc.php 29 Jun 2002 16:18:02 -0000 1.37
--- class.mail_msg_display.inc.php 25 Oct 2002 12:45:53 -0000 1.38
***************
*** 1,2301 ****
! <?php
!
/**************************************************************************\
! * phpGroupWare - E-Mail Message Processing Functions
*
! * http://www.phpgroupware.org
*
! */
!
/**************************************************************************\
! * phpGroupWare API - E-Mail Message Processing Functions
*
! * This file written by Angelo Tony Puglisi (Angles) <address@hidden> *
! * Handles specific operations in manipulating email messages
*
! * Copyright (C) 2001 Angelo Tony Puglisi (Angles)
*
[...4718 lines suppressed...]
! $to_person = $to_plain;
! }
! else
! {
! $to_person =
$GLOBALS['phpgw']->msg->decode_header_string($topeople->personal);
! }
! $to_data_array[$z] = $to_person;
! }
! // throw a spacer comma in between addresses,
if more than one
! $to_data_final = implode(', ',$to_data_array);
! }
! $msg_list_display[$x]['to_data_final'] = $to_data_final;
!
! }
! if ($debug_msg_list_display > 2) { echo 'mail_msg:
get_msg_list_display: exiting $msg_list_display[] dump:<pre>';
print_r($msg_list_display); echo '</pre>'; }
! return $msg_list_display;
! }
!
! } // end class mail_msg
! ?>
Index: class.mail_msg_wrappers.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.mail_msg_wrappers.inc.php,v
retrieving revision 1.33
retrieving revision 1.34
diff -C2 -r1.33 -r1.34
*** class.mail_msg_wrappers.inc.php 25 Apr 2002 09:02:00 -0000 1.33
--- class.mail_msg_wrappers.inc.php 25 Oct 2002 12:45:53 -0000 1.34
***************
*** 1,2492 ****
! <?php
!
/*****************************************************************************\
! * phpGroupWare - E-Mail Message Processing Functions
*
! * http://www.phpgroupware.org
*
! *
*
! * phpGroupWare API - E-Mail Message Processing Functions
*
! * This file written by Angelo Tony Puglisi (Angles) <address@hidden> *
! * Handles specific operations in manipulating email messages.
*
! * Copyright (C) 2001 Angelo Tony Puglisi (Angles)
*
! *
--------------------------------------------------------------------------- *
[...7512 lines suppressed...]
! // depreciated
! //function get_folder($acctnum='')
! //{
! // return $this->get_arg_value('folder');
! //}
!
! // depreciated
! //function get_msgnum($acctnum='')
! //{
! // return $this->get_arg_value('["msgball"]["msgnum"]');
! //}
!
! //function get_pref_layout($acctnum='')
! //{
! // return $this->get_pref_value('layout', $acctnum);
! //}
!
!
! } // end class mail_msg_wrappers
! ?>
Index: class.mail_send.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.mail_send.inc.php,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -r1.9 -r1.10
*** class.mail_send.inc.php 2 Sep 2002 00:04:22 -0000 1.9
--- class.mail_send.inc.php 25 Oct 2002 12:45:53 -0000 1.10
***************
*** 1,383 ****
! <?php
!
/**************************************************************************\
! * phpGroupWare API - smtp mailer
*
! * This file written by Itzchak Rehberg <address@hidden>
*
! * and Joseph Engo <address@hidden>
*
! * and Angelo Tony Puglisi (angles) <address@hidden>
*
! * This module should replace php's mail() function. It is fully syntax
*
! * compatible. In addition, when an error occures, a detailed error info
*
! * is stored in the array $send->err (see ../inc/email/global.inc.php
for *
! * details on this variable).
*
! * Copyright (C) 2000, 2001 Itzchak Rehberg, and
*
! * Copyright (C) 2001 Angelo Puglisi (Angles)
*
! *
-------------------------------------------------------------------------
*
! * This library is part of the phpGroupWare API
*
! * http://www.phpgroupware.org/api
*
! *
------------------------------------------------------------------------
*
! * This library is free software; you can redistribute it and/or modify
it *
! * under the terms of the GNU Lesser General Public License as published
by *
! * the Free Software Foundation; either version 2.1 of the License,
*
! * or any later version.
*
! * This library is distributed in the hope that it will be useful, but
*
! * WITHOUT ANY WARRANTY; without even the implied warranty
*
! * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
! * See the GNU Lesser General Public License for more details.
*
! * You should have received a copy of the GNU Lesser General Public
License *
! * along with this library; if not, write to the Free Software
Foundation, *
! * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
!
\**************************************************************************/
!
! /* $Id$ */
!
! /*!
! @class mail_send
! @abstract sockets based SMTP class, will communicate with an MTA
to send mail
! @result returns True on success (mail was sent), returns False on error
(no mail sent)
! @discussion class provides for complex SMTP transactions, bypassing
need for php's
! builtin mail sending functions. Currently part of the email class
group, when mature will
! be moved to standard phpgroupware api.
! @author
! Itzchak Rehberg - initial implementation, SMTP communication and
control flow, excellent work!
! Angelo Puglisi (Angles) - convert to multi-dimentional array driven
architecture, expanded debugging,
! RFC2822 and 2821 compliance, retain a copy for archiving option, fake
send debug, handshake retention, other stuff...
! */
! class mail_send
! {
! var $err = array();
! var $to_res = array();
! var $default_smtp_port = 25;
!
! //var $debug_fake_send = True;
! var $debug_fake_send = False;
!
! var $retain_copy = False;
!
! // trace flag 0 = none, 1 = server only, 2 = server and client,
3 = totally extra verbose
! var $trace_flag = 0;
! var $trace_data = array();
!
! // some of the MTA communication should not go into the copy,
like ELHO stuff
! var $retain_copy_ignore = True;
! var $assembled_copy = '';
!
! function mail_send()
! {
! $this->err['code'] = '';
! $this->err['msg'] = '';
! $this->err['desc'] = '';
! $this->err['server_chat'] = "\r\n";
! }
!
! function send_init()
! {
! // depreciated
! }
!
! function log_trace($prefix='', $data)
! {
! $next_idx = count($this->trace_data);
! $this->trace_data[$next_idx] = $prefix.' :
'.htmlspecialchars(rtrim($data));
! }
! // === some sub-functions ===
!
! function socket2msg($socket)
! {
! if ($this->debug_fake_send)
! {
! // we are not really sending mail, pretend the
server accepted out data
! return True;
! }
!
! $followme = '-';
! $this->err["msg"] = '';
! do
! {
! $rmsg = fgets($socket,1024);
! $this->err['server_chat'] .=
htmlspecialchars('s->c: '.$rmsg);
! if ($this->trace_flag > 0) {
$this->log_trace('socket2msg: rmsg', $rmsg); }
! $this->err['code'] = substr($rmsg,0,3);
! if ($this->trace_flag > 2) {
$this->log_trace('socket2msg: $this->err[code]', $this->err['code']); }
! $followme = substr($rmsg,3,1);
! if ($this->trace_flag > 2) {
$this->log_trace('socket2msg: $followme', $followme); }
! $this->err['msg'] = substr($rmsg,4);
! if ($this->trace_flag > 2) {
$this->log_trace('socket2msg: $this->err[msg]', $this->err['msg']); }
! if (substr($this->err['code'],0,1) != 2 &&
substr($this->err['code'],0,1) != 3)
! {
! $rc = fclose($socket);
! return false;
! }
!
! if ($followme == ' ')
! {
! break;
! }
! }
! while ($followme == '-');
!
! return true;
! }
!
! function msg2socket($socket,$message)
! {
! if ($this->debug_fake_send)
! {
! echo
$GLOBALS['phpgw']->msg->htmlspecialchars_encode($message);
! return True;
! }
! // if we need a copy of this message for the "sent"
folder, assemble it here
! if (($this->retain_copy)
! && (!$this->retain_copy_ignore))
! {
! $this->assembled_copy .= "$message";
! }
! // on the contrary, server chat ONLY wants the pre-
DATA stuff
! if ($this->retain_copy_ignore)
! {
! // "retain_copy_ignore" means we are still in
the handshake phase, which is what "server_chat" wants
! $this->err['server_chat'] .=
htmlspecialchars('c->s: '.$message);
! }
!
! if ($this->trace_flag > 1) {
$this->log_trace('msg2socket: $message', $message); }
!
! $rc = fputs($socket,"$message");
! if (!$rc)
! {
! $this->err['code'] = '420';
! $this->err['msg'] = 'lost connection';
! $this->err['desc'] = 'Lost connection to smtp
server.';
! $rc = fclose($socket);
! return false;
! }
! return true;
! }
!
! // ===== [ main function: smail_2822() ] =======
!
! function smail_2822($mail_out)
! {
! // don't start retaining the email copy until after the
MTA handshake
! $this->retain_copy_ignore = True;
!
! // error code and message of failed connection
! $errcode = '';
! $errmsg = '';
! // timeout in secs
! $timeout = 5;
!
! if ($this->debug_fake_send)
! {
! // arbitrary number, no significance
! // we do not actually communicate with the SMTP
server for a fake send
! $socket = 41;
! // announce the fact this is echo'd debug
output, not an actual session
! echo '<html><body><h2>FAKE SEND DEBUG:</h2>
<h3>this is what the client *would* send to the SMTP server were this an actual
send</h3>';
! }
! else
! {
! $smtp_server =
$GLOBALS['phpgw_info']['server']['smtp_server'];
! $smtp_port =
$GLOBALS['phpgw_info']['server']['smtp_port'];
! // some people do not set this up correctly in
the site-wide admin for email
! if (empty($smtp_port))
! {
! $smtp_port = $this->default_smtp_port;
! }
!
! // OPEN SOCKET - now we try to open the socket
and check, if any smtp server responds
! $socket =
fsockopen($smtp_server,$smtp_port,$errcode,$errmsg,$timeout);
! $this->err['server_chat'] .=
htmlspecialchars('c->s:
fsockopen('.$smtp_server.','.$smtp_port.','.$errcode.','.$errmsg.','.$timeout.')
; returned: '.$socket )."\r\n";
!
! }
! if (!$socket)
! {
! $this->err['code'] = '420';
! $this->err['msg'] = $errcode.':'.$errmsg;
! $this->err['desc'] = 'Connection to
'.$GLOBALS['phpgw_info']['server']['smtp_server'].':'.$GLOBALS['phpgw_info']['server']['smtp_port'].'
failed - could not open socket.';
! return false;
! }
! else
! {
! $rrc = $this->socket2msg($socket);
! }
!
! $mymachine = $mail_out['mta_elho_mymachine'];
! $fromuser = $mail_out['mta_from'];
! // START SMTP SESSION - now we can send our message.
1st we identify ourselves and the sender
! $cmds = array (
! "\$src = \$this->msg2socket(\$socket,\"EHLO
\$mymachine\r\n\");",
! "\$rrc = \$this->socket2msg(\$socket);",
! "\$src = \$this->msg2socket(\$socket,\"MAIL
FROM:\$fromuser\r\n\");",
! "\$rrc = \$this->socket2msg(\$socket);"
! );
! if ($this->debug_fake_send)
! {
! echo '<pre>';
! }
! for ($src=true,$rrc=true,$i=0; $i<count($cmds);$i++)
! {
! eval ($cmds[$i]);
! if (!$src || !$rrc)
! {
! return false;
! }
! }
!
! // RCPT TO - now we've got to feed the to's and cc's
! for ($i=0; $i<count($mail_out['mta_to']); $i++)
! {
! $src = $this->msg2socket($socket,'RCPT
TO:'.$mail_out['mta_to'][$i]."\r\n");
! $rrc = $this->socket2msg($socket);
! // for lateron validation
! $this->to_res[$i][addr] =
$mail_out['mta_to'][$i];
! $this->to_res[$i][code] = $this->err['code'];
! $this->to_res[$i][msg] = $this->err['msg'];
! $this->to_res[$i][desc] = $this->err['desc'];
! }
!
! if (!$this->debug_fake_send)
! {
! //now we have to make sure that at least one
$to-address was accepted
! $stop = 1;
! for ($i=0;$i<count($this->to_res);$i++)
! {
! $rc =
substr($this->to_res[$i][code],0,1);
! if ($rc == 2)
! {
! // at least to this address we
can deliver
! $stop = 0;
! }
! }
! if ($stop)
! {
! // no address found we can deliver to
! return false;
! }
! }
!
! // HEADERS - now we can go to deliver the headers!
! if (!$this->msg2socket($socket,"DATA\r\n"))
! {
! return false;
! }
! if (!$this->socket2msg($socket))
! {
! return false;
! }
!
! // READY TO SEND MAIL: start retaining the email copy
(if necessary)
! $this->retain_copy_ignore = False;
!
! // BEGIN THE DATA SEND
! for ($i=0; $i<count($mail_out['main_headers']); $i++)
! {
! if
(!$this->msg2socket($socket,$mail_out['main_headers'][$i]."\r\n"))
! {
! return false;
! }
! }
! // HEADERS TERMINATION - this CRLF terminates the
header, signals the body will follow next (ONE CRLF ONLY)
! if (!$this->msg2socket($socket,"\r\n"))
! {
! return false;
! }
! // BODY - now we can go to deliver the body!
! for ($part_num=0; $part_num<count($mail_out['body']);
$part_num++)
! {
! // mime headers for this mime part (if any)
! if (($mail_out['is_multipart'] == True)
! || ($mail_out['is_forward'] == True))
! {
! for ($i=0;
$i<count($mail_out['body'][$part_num]['mime_headers']); $i++)
! {
! $this_line = rtrim($this_line =
$mail_out['body'][$part_num]['mime_headers'][$i])."\r\n";
! if
(!$this->msg2socket($socket,$this_line))
! {
! return false;
! }
! }
! // a space needs to seperate the mime
part headers from the mime part content
! if (!$this->msg2socket($socket,"\r\n"))
! {
! return false;
! }
! }
! // the part itself
! for ($i=0;
$i<count($mail_out['body'][$part_num]['mime_body']); $i++)
! {
! $this_line =
rtrim($mail_out['body'][$part_num]['mime_body'][$i])."\r\n";
! // TRANSPARENCY - rfc2821 sect 4.5.2 -
any line beginning with a dot, add another dot
! if ((strlen($this_line) > 0)
! && ($this_line[0] == '.'))
! {
! // rfc2821 add another dot to
the begining of this line
! $this_line = '.' .$this_line;
! }
! if
(!$this->msg2socket($socket,$this_line))
! {
! return false;
! }
! }
! // this space will seperate this part from any
following parts that may be coming
! if (!$this->msg2socket($socket,"\r\n"))
! {
! return false;
! }
! }
! // FINAL BOUNDARY - at the end of a multipart email, we
need to add the "final" boundary
! if (($mail_out['is_multipart'] == True)
! || ($mail_out['is_forward'] == True))
! {
! // attachments / parts have their own boundary
preceeding them in their mime headers
! // this is: "--"boundary
! // all boundary strings are have 2 dashes "--"
added to their begining
! // and the FINAL boundary string (after all
other parts) ALSO has
! // 2 dashes "--" tacked on tho the end of it,
very important !!
! // the first or last \r\n is *probably* not
necessary
! $final_boundary = '--'
.$mail_out['boundary'].'--'."\r\n";
! if (!$this->msg2socket($socket,$final_boundary))
! {
! return false;
! }
! // another blank line
! if (!$this->msg2socket($socket,"\r\n"))
! {
! return false;
! }
! }
!
! // stop retaining the email copy, the message is over,
only MTA closing handshake remainse
! $this->retain_copy_ignore = True;
!
! // DATA END - special string "DOTCRLF" signals the end
of the body
! if (!$this->msg2socket($socket,".\r\n"))
! {
! return false;
! }
! if (!$this->socket2msg($socket))
! {
! return false;
! }
! // QUIT
! if (!$this->msg2socket($socket,"QUIT\r\n"))
! {
! return false;
! }
!
! if ($this->debug_fake_send)
! {
! echo '</pre><h3>end of Fake
Send</h3></body></html>';
! }
!
! if (!$this->debug_fake_send)
! {
! do
! {
! $closing = $this->socket2msg($socket);
! }
! while ($closing);
! }
! return true;
! }
!
! // end of class
! }
! ?>
\ No newline at end of file
--- 1,390 ----
! <?php
!
/**************************************************************************\
! * phpGroupWare API - smtp mailer
*
! * This file written by Itzchak Rehberg <address@hidden>
*
! * and Joseph Engo <address@hidden>
*
! * and Angelo "Angles" Puglisi <address@hidden> *
! * This module should replace php's mail() function. It is fully syntax
*
! * compatible. In addition, when an error occures, a detailed error info
*
! * is stored in the array $send->err (see ../inc/email/global.inc.php
for *
! * details on this variable).
*
! * Copyright (C) 2000, 2001 Itzchak Rehberg, and
*
! * Copyright (C) 2001, 2002 Angelo Puglisi (Angles)
*
! *
-------------------------------------------------------------------------
*
! * This library is part of the phpGroupWare API
*
! * http://www.phpgroupware.org/api
*
! *
------------------------------------------------------------------------
*
! * This library is free software; you can redistribute it and/or modify
it *
! * under the terms of the GNU Lesser General Public License as published
by *
! * the Free Software Foundation; either version 2.1 of the License,
*
! * or any later version.
*
! * This library is distributed in the hope that it will be useful, but
*
! * WITHOUT ANY WARRANTY; without even the implied warranty
*
! * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
! * See the GNU Lesser General Public License for more details.
*
! * You should have received a copy of the GNU Lesser General Public
License *
! * along with this library; if not, write to the Free Software
Foundation, *
! * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
!
\**************************************************************************/
!
! /* $Id$ */
!
! /*!
! @class mail_send
! @abstract sockets based SMTP class, will communicate with an MTA to
send mail
! @result returns True on success (mail was sent), returns False on error
(no mail sent)
! @discussion class provides for complex SMTP transactions, bypassing
need for php's
! builtin mail sending functions. Currently part of the email class
group, when mature will
! be moved to standard phpgroupware api.
! @author (a) Itzchak Rehberg - initial implementation, SMTP
communication and control flow, excellent work!
! and (b) Angelo Puglisi (Angles) - convert to multi-dimentional array
driven architecture, expanded debugging,
! RFC2822 and 2821 compliance, retain a copy for archiving option, fake
send debug, handshake retention, other stuff...
! */
! class mail_send
! {
! var $err = array();
! var $to_res = array();
! var $default_smtp_port = 25;
!
! //var $debug_fake_send = True;
! var $debug_fake_send = False;
!
! var $retain_copy = False;
!
! // trace flag 0 = none, 1 = server only, 2 = server and client,
3 = totally extra verbose
! var $trace_flag = 0;
! var $trace_data = array();
!
! // some of the MTA communication should not go into the copy,
like ELHO stuff
! var $retain_copy_ignore = True;
! var $assembled_copy = '';
!
! function mail_send()
! {
! $this->err['code'] = '';
! $this->err['msg'] = '';
! $this->err['desc'] = '';
! $this->err['server_chat'] = "\r\n";
! }
!
! function send_init()
! {
! // depreciated
! }
!
! function log_trace($prefix='', $data)
! {
! $next_idx = count($this->trace_data);
! $this->trace_data[$next_idx] = $prefix.' :
'.htmlspecialchars(rtrim($data));
! }
! // === some sub-functions ===
!
! function socket2msg($socket)
! {
! if ($this->debug_fake_send)
! {
! // we are not really sending mail, pretend the
server accepted out data
! return True;
! }
!
! $followme = '-';
! $this->err["msg"] = '';
! do
! {
! //$rmsg = fgets($socket,255);
! $rmsg = fgets($socket,1024);
! $this->err['server_chat'] .=
htmlspecialchars('s->c: '.$rmsg);
! if ($this->trace_flag > 0) {
$this->log_trace('socket2msg: rmsg', $rmsg); }
! $this->err['code'] = substr($rmsg,0,3);
! if ($this->trace_flag > 2) {
$this->log_trace('socket2msg: $this->err[code]', $this->err['code']); }
! $followme = substr($rmsg,3,1);
! if ($this->trace_flag > 2) {
$this->log_trace('socket2msg: $followme', $followme); }
! $this->err['msg'] = substr($rmsg,4);
! if ($this->trace_flag > 2) {
$this->log_trace('socket2msg: $this->err[msg]', $this->err['msg']); }
! if (substr($this->err['code'],0,1) != 2 &&
substr($this->err['code'],0,1) != 3)
! {
! $rc = fclose($socket);
! return false;
! }
!
! if ($followme == ' ')
! {
! break;
! }
! }
! while ($followme == '-');
!
! return true;
! }
!
! function msg2socket($socket,$message)
! {
! if ($this->debug_fake_send)
! {
! echo
$GLOBALS['phpgw']->msg->htmlspecialchars_encode($message);
! return True;
! }
! // if we need a copy of this message for the "sent"
folder, assemble it here
! if (($this->retain_copy)
! && (!$this->retain_copy_ignore))
! {
! $this->assembled_copy .= "$message";
! }
! // on the contrary, server chat ONLY wants the pre-
DATA stuff
! if ($this->retain_copy_ignore)
! {
! // "retain_copy_ignore" means we are still in
the handshake phase, which is what "server_chat" wants
! $this->err['server_chat'] .=
htmlspecialchars('c->s: '.$message);
! }
!
! if ($this->trace_flag > 1) {
$this->log_trace('msg2socket: $message', $message); }
!
! $rc = fputs($socket,"$message");
! if (!$rc)
! {
! $this->err['code'] = '420';
! $this->err['msg'] = 'lost connection';
! $this->err['desc'] = 'Lost connection to smtp
server.';
! $rc = fclose($socket);
! return false;
! }
! return true;
! }
!
! // ===== [ main function: smail_2822() ] =======
!
! function smail_2822($mail_out)
! {
! // don't start retaining the email copy until after the
MTA handshake
! $this->retain_copy_ignore = True;
!
! // error code and message of failed connection
! $errcode = '';
! $errmsg = '';
! // timeout in secs
! $timeout = 5;
!
! if ($this->debug_fake_send)
! {
! // arbitrary number, no significance
! // we do not actually communicate with the SMTP
server for a fake send
! $socket = 41;
! // announce the fact this is echo'd debug
output, not an actual session
! echo '<html><body><h2>FAKE SEND DEBUG:</h2>
<h3>this is what the client *would* send to the SMTP server were this an actual
send</h3>';
! }
! else
! {
! $smtp_server =
$GLOBALS['phpgw_info']['server']['smtp_server'];
! $smtp_port =
$GLOBALS['phpgw_info']['server']['smtp_port'];
! // some people do not set this up correctly in
the site-wide admin for email
! if (empty($smtp_port))
! {
! $smtp_port = $this->default_smtp_port;
! }
!
! // OPEN SOCKET - now we try to open the socket
and check, if any smtp server responds
! $socket =
fsockopen($smtp_server,$smtp_port,$errcode,$errmsg,$timeout);
! $this->err['server_chat'] .=
htmlspecialchars('c->s:
fsockopen('.$smtp_server.','.$smtp_port.','.$errcode.','.$errmsg.','.$timeout.')
; returned: '.$socket )."\r\n";
!
! }
! if (!$socket)
! {
! $this->err['code'] = '420';
! $this->err['msg'] = $errcode.':'.$errmsg;
! $this->err['desc'] = 'Connection to
'.$GLOBALS['phpgw_info']['server']['smtp_server'].':'.$GLOBALS['phpgw_info']['server']['smtp_port'].'
failed - could not open socket.';
! return false;
! }
! else
! {
! $rrc = $this->socket2msg($socket);
! }
!
! $mymachine = $mail_out['mta_elho_mymachine'];
! $fromuser = $mail_out['mta_from'];
! // START SMTP SESSION - now we can send our message.
1st we identify ourselves and the sender
! $cmds = array (
! "\$src = \$this->msg2socket(\$socket,\"EHLO
\$mymachine\r\n\");",
! "\$rrc = \$this->socket2msg(\$socket);",
! "\$src = \$this->msg2socket(\$socket,\"MAIL
FROM:\$fromuser\r\n\");",
! "\$rrc = \$this->socket2msg(\$socket);"
! );
! if ($this->debug_fake_send)
! {
! echo '<pre>';
! }
! for ($src=true,$rrc=true,$i=0; $i<count($cmds);$i++)
! {
! eval ($cmds[$i]);
! if (!$src || !$rrc)
! {
! return false;
! }
! }
!
! // RCPT TO - now we've got to feed the to's and cc's
! for ($i=0; $i<count($mail_out['mta_to']); $i++)
! {
! $src = $this->msg2socket($socket,'RCPT
TO:'.$mail_out['mta_to'][$i]."\r\n");
! $rrc = $this->socket2msg($socket);
! // for lateron validation
! $this->to_res[$i][addr] =
$mail_out['mta_to'][$i];
! $this->to_res[$i][code] = $this->err['code'];
! $this->to_res[$i][msg] = $this->err['msg'];
! $this->to_res[$i][desc] = $this->err['desc'];
! }
!
! if (!$this->debug_fake_send)
! {
! //now we have to make sure that at least one
$to-address was accepted
! $stop = 1;
! for ($i=0;$i<count($this->to_res);$i++)
! {
! $rc =
substr($this->to_res[$i][code],0,1);
! if ($rc == 2)
! {
! // at least to this address we
can deliver
! $stop = 0;
! }
! }
! if ($stop)
! {
! // no address found we can deliver to
! return false;
! }
! }
!
! // HEADERS - now we can go to deliver the headers!
! if (!$this->msg2socket($socket,"DATA\r\n"))
! {
! return false;
! }
! if (!$this->socket2msg($socket))
! {
! return false;
! }
!
! // READY TO SEND MAIL: start retaining the email copy
(if necessary)
! $this->retain_copy_ignore = False;
!
! // BEGIN THE DATA SEND
! for ($i=0; $i<count($mail_out['main_headers']); $i++)
! {
! if
(!$this->msg2socket($socket,$mail_out['main_headers'][$i]."\r\n"))
! {
! return false;
! }
! }
! // HEADERS TERMINATION - this CRLF terminates the
header, signals the body will follow next (ONE CRLF ONLY)
! if (!$this->msg2socket($socket,"\r\n"))
! {
! return false;
! }
! // BODY - now we can go to deliver the body!
! for ($part_num=0; $part_num<count($mail_out['body']);
$part_num++)
! {
! // mime headers for this mime part (if any)
! if (($mail_out['is_multipart'] == True)
! || ($mail_out['is_forward'] == True))
! {
! for ($i=0;
$i<count($mail_out['body'][$part_num]['mime_headers']); $i++)
! {
! $this_line = rtrim($this_line =
$mail_out['body'][$part_num]['mime_headers'][$i])."\r\n";
! if
(!$this->msg2socket($socket,$this_line))
! {
! return false;
! }
! }
! // a space needs to seperate the mime
part headers from the mime part content
! if (!$this->msg2socket($socket,"\r\n"))
! {
! return false;
! }
! }
! // the part itself
! for ($i=0;
$i<count($mail_out['body'][$part_num]['mime_body']); $i++)
! {
! $this_line =
rtrim($mail_out['body'][$part_num]['mime_body'][$i])."\r\n";
! // TRANSPARENCY - rfc2821 sect 4.5.2 -
any line beginning with a dot, add another dot
! if ((strlen($this_line) > 0)
! && ($this_line[0] == '.'))
! {
! // rfc2821 add another dot to
the begining of this line
! $this_line = '.' .$this_line;
! }
! if
(!$this->msg2socket($socket,$this_line))
! {
! return false;
! }
! // TESTING memory saving feature, clear
already sent lines IF saving them in assembled_copy
! if (($this->retain_copy)
! && (!$this->retain_copy_ignore))
! {
! // we no longer need the array
item, clear it from memory
!
$mail_out['body'][$part_num]['mime_body'][$i] = '';
! }
! }
! // this space will seperate this part from any
following parts that may be coming
! if (!$this->msg2socket($socket,"\r\n"))
! {
! return false;
! }
! }
! // FINAL BOUNDARY - at the end of a multipart email, we
need to add the "final" boundary
! if (($mail_out['is_multipart'] == True)
! || ($mail_out['is_forward'] == True))
! {
! // attachments / parts have their own boundary
preceeding them in their mime headers
! // this is: "--"boundary
! // all boundary strings are have 2 dashes "--"
added to their begining
! // and the FINAL boundary string (after all
other parts) ALSO has
! // 2 dashes "--" tacked on tho the end of it,
very important !!
! // the first or last \r\n is *probably* not
necessary
! $final_boundary = '--'
.$mail_out['boundary'].'--'."\r\n";
! if (!$this->msg2socket($socket,$final_boundary))
! {
! return false;
! }
! // another blank line
! if (!$this->msg2socket($socket,"\r\n"))
! {
! return false;
! }
! }
!
! // stop retaining the email copy, the message is over,
only MTA closing handshake remainse
! $this->retain_copy_ignore = True;
!
! // DATA END - special string "DOTCRLF" signals the end
of the body
! if (!$this->msg2socket($socket,".\r\n"))
! {
! return false;
! }
! if (!$this->socket2msg($socket))
! {
! return false;
! }
! // QUIT
! if (!$this->msg2socket($socket,"QUIT\r\n"))
! {
! return false;
! }
!
! if ($this->debug_fake_send)
! {
! echo '</pre><h3>end of Fake
Send</h3></body></html>';
! }
!
! if (!$this->debug_fake_send)
! {
! do
! {
! $closing = $this->socket2msg($socket);
! }
! while ($closing);
! }
! return true;
! }
!
! // end of class
! }
! ?>
Index: class.uicompose.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.uicompose.inc.php,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -r1.2 -r1.3
*** class.uicompose.inc.php 14 Jan 2002 20:51:38 -0000 1.2
--- class.uicompose.inc.php 25 Oct 2002 12:45:53 -0000 1.3
***************
*** 1,144 ****
! <?php
!
/**************************************************************************\
! * phpGroupWare - email UI Class for Message Lists
*
! * http://www.phpgroupware.org
*
! * Written by Angelo (Angles) Puglisi <address@hidden> *
! * --------------------------------------------
*
! * This program is free software; you can redistribute it and/or modify
it *
! * under the terms of the GNU General Public License as published by
the *
! * Free Software Foundation; either version 2 of the License, or (at
your *
! * option) any later version.
*
!
\**************************************************************************/
!
! /* $Id$ */
!
! class uicompose
! {
! var $bo;
! var $debug = False;
! var $is_modular = False;
!
! var $public_functions = array(
! 'compose' => True,
! 'get_is_modular' => True,
! 'set_is_modular' => True
! );
!
! function uicompose()
! {
!
! }
!
! function get_is_modular()
! {
! return $this->is_modular;
! }
!
! function set_is_modular($feed_bool=False)
! {
! // is_bool() is in the php3 compat library
! if ((isset($feed_bool))
! && (is_bool($feed_bool)))
! {
! // only change this if the arg is boolean
! $this->is_modular = $feed_bool;
! }
! return $this->is_modular;
! }
!
! function compose($reuse_feed_args='')
! {
! if (empty($reuse_feed_args))
! {
! $reuse_feed_args = array();
! }
!
! $this->bo = CreateObject("email.bocompose");
! $this->bo->compose($reuse_feed_args);
!
! if ($this->is_modular == True)
! {
! // we do NOT echo or print output any html, we
are being used as a module by another app
! // all we do in this case is pass the parsed
html to the calling app
! }
! else
! {
! // we are the BO and the UI, we take care of
outputting the HTML to the client browser
!
unset($GLOBALS['phpgw_info']['flags']['noheader']);
!
unset($GLOBALS['phpgw_info']['flags']['nonavbar']);
! $GLOBALS['phpgw_info']['flags']['noappheader']
= True;
! $GLOBALS['phpgw_info']['flags']['noappfooter']
= True;
! $GLOBALS['phpgw']->common->phpgw_header();
! // NOTE: as of Dec 10, 2001 a call from
menuaction defaults to NOT modular
! // HOWEVER still this class must NOT invoke
$GLOBALS['phpgw']->common->phpgw_header()
! // even though we had to output the header (go
figure... :)
! }
!
! $GLOBALS['phpgw']->template->set_file(
! Array(
! 'T_compose_out' => 'compose.tpl'
! )
! );
!
$GLOBALS['phpgw']->template->set_block('T_compose_out','B_checkbox_sig','V_checkbox_sig');
!
! // fill template vars
! $tpl_vars = Array(
! 'to_box_value' =>
$this->bo->xi['to_box_value'],
! 'cc_box_value' =>
$this->bo->xi['cc_box_value'],
! 'bcc_box_value' =>
$this->bo->xi['bcc_box_value'],
! 'subj_box_value' =>
$this->bo->xi['subject'],
! 'body_box_value' =>
$this->bo->xi['body'],
! 'form1_action' =>
$this->bo->xi['send_btn_action'],
!
! 'form1_name' =>
$this->bo->xi['form1_name'],
! 'form1_method' =>
$this->bo->xi['form1_method'],
! 'js_addylink' =>
$this->bo->xi['js_addylink'],
! 'buttons_bgcolor' =>
$this->bo->xi['buttons_bgcolor'],
! 'btn_addybook_type' =>
$this->bo->xi['btn_addybook_type'],
! 'btn_addybook_value' =>
$this->bo->xi['btn_addybook_value'],
! 'btn_addybook_onclick' =>
$this->bo->xi['btn_addybook_onclick'],
! 'btn_send_type' =>
$this->bo->xi['btn_send_type'],
! 'btn_send_value' =>
$this->bo->xi['btn_send_value'],
! 'to_boxs_bgcolor' =>
$this->bo->xi['to_boxs_bgcolor'],
! 'to_boxs_font' =>
$this->bo->xi['to_boxs_font'],
! 'to_box_desc' =>
$this->bo->xi['to_box_desc'],
! 'to_box_name' =>
$this->bo->xi['to_box_name'],
! 'cc_box_desc' =>
$this->bo->xi['cc_box_desc'],
! 'cc_box_name' =>
$this->bo->xi['cc_box_name'],
! 'bcc_box_desc' =>
$this->bo->xi['bcc_box_desc'],
! 'bcc_box_name' =>
$this->bo->xi['bcc_box_name'],
! 'subj_box_desc' =>
$this->bo->xi['subj_box_desc'],
! 'subj_box_name' =>
$this->bo->xi['subj_box_name'],
! 'checkbox_sig_desc' =>
$this->bo->xi['checkbox_sig_desc'],
! 'checkbox_sig_name' =>
$this->bo->xi['checkbox_sig_name'],
! 'checkbox_sig_value' =>
$this->bo->xi['checkbox_sig_value'],
! 'attachfile_js_link' =>
$this->bo->xi['attachfile_js_link'],
! 'attachfile_js_text' =>
$this->bo->xi['attachfile_js_text'],
! 'body_box_name' =>
$this->bo->xi['body_box_name']
! );
! $GLOBALS['phpgw']->template->set_var($tpl_vars);
! if ($this->bo->xi['do_checkbox_sig'])
! {
!
$GLOBALS['phpgw']->template->parse('V_checkbox_sig','B_checkbox_sig');
! }
! else
! {
!
$GLOBALS['phpgw']->template->set_var('V_checkbox_sig','');
! }
!
! $GLOBALS['phpgw']->msg->end_request();
!
! if ($this->is_modular == True)
! {
! // we do NOT output any html, we are being used
as a module in another app
! // instead, we will pass the parsed html to the
calling app
! return
$GLOBALS['phpgw']->template->fp('out','T_compose_out');
! }
! else
! {
! // we are the BO and the UI, we take care of
outputting the HTML to the client browser
!
$GLOBALS['phpgw']->template->pfp('out','T_compose_out');
! }
! }
! }
! ?>
--- 1,131 ----
! <?php
!
/**************************************************************************\
! * phpGroupWare - email UI Class for Message Lists
*
! * http://www.phpgroupware.org
*
! * Written by Angelo (Angles) Puglisi <address@hidden> *
! * --------------------------------------------
*
! * This program is free software; you can redistribute it and/or modify
it *
! * under the terms of the GNU General Public License as published by
the *
! * Free Software Foundation; either version 2 of the License, or (at
your *
! * option) any later version.
*
!
\**************************************************************************/
!
! /* $Id$ */
!
! class uicompose
! {
! var $bo;
! var $debug = 0;
! var $widgets;
!
! var $public_functions = array(
! 'compose' => True
! );
!
! function uicompose()
! {
! return;
! }
!
! /*!
! @function compose
! @abstract calls bocompose and makes the compose page
! @author Angles
! @description ?
! @access public
! */
! function compose($reuse_feed_args='')
! {
! if ((is_string($reuse_feed_args))
! && ($reuse_feed_args == ''))
! {
! // we were passed an empty string, make it an
empty array just to be consistant
! $reuse_feed_args = array();
!
! }
! // ok, class.spell will pass $special_instructions as
$reuse_feed_args string data,
! // this must be passed onto bocompose->compose()
!
! $this->bo = CreateObject("email.bocompose");
! // concept of $reuse_feed_args is depreciated HOWEVER
the spell code will
! // pass "special_instructions" back to bocompose, so
leave this here
! $this->bo->compose($reuse_feed_args);
!
! // we are the BO and the UI, we take care of outputting
the HTML to the client browser
! unset($GLOBALS['phpgw_info']['flags']['noheader']);
! unset($GLOBALS['phpgw_info']['flags']['nonavbar']);
! $GLOBALS['phpgw_info']['flags']['noappheader'] = True;
! $GLOBALS['phpgw_info']['flags']['noappfooter'] = True;
! $GLOBALS['phpgw']->common->phpgw_header();
!
! $GLOBALS['phpgw']->template->set_file(
! Array(
! 'T_compose_out' => 'compose.tpl'
! )
! );
!
$GLOBALS['phpgw']->template->set_block('T_compose_out','B_checkbox_sig','V_checkbox_sig');
!
! if ($this->debug > 2) { echo 'GLOBALS[phpgw_info]
dump:<pre>'; print_r($GLOBALS['phpgw_info']) ; echo '</pre>'; }
!
! //= = = = TESTING NEW TOOLBAR WIDGET = = =
! $this->widgets = CreateObject('email.html_widgets');
!
$GLOBALS['phpgw']->template->set_var('widget_toolbar',$this->widgets->get_toolbar());
!
! // fill template vars
! $tpl_vars = Array(
! 'to_box_value' =>
$this->bo->xi['to_box_value'],
! 'cc_box_value' =>
$this->bo->xi['cc_box_value'],
! 'bcc_box_value' =>
$this->bo->xi['bcc_box_value'],
! 'subj_box_value' =>
$this->bo->xi['subject'],
! 'body_box_value' =>
$this->bo->xi['body'],
! 'form1_action' =>
$this->bo->xi['send_btn_action'],
! //The addybook's window width
! 'jsaddybook_width' =>
$this->bo->xi['jsaddybook_width'],
! //The addybook's window height
! 'jsaddybook_height' =>
$this->bo->xi['jsaddybook_height'],
! 'form1_name' =>
$this->bo->xi['form1_name'],
! 'form1_method' =>
$this->bo->xi['form1_method'],
! 'js_addylink' =>
$this->bo->xi['js_addylink'],
! 'buttons_bgcolor' =>
$this->bo->xi['buttons_bgcolor'],
! 'to_boxs_bgcolor' =>
$this->bo->xi['to_boxs_bgcolor'],
! 'to_boxs_font' =>
$this->bo->xi['to_boxs_font'],
! 'to_box_desc' =>
$this->bo->xi['to_box_desc'],
! 'to_box_name' =>
$this->bo->xi['to_box_name'],
! 'cc_box_desc' =>
$this->bo->xi['cc_box_desc'],
! 'cc_box_name' =>
$this->bo->xi['cc_box_name'],
! 'bcc_box_desc' =>
$this->bo->xi['bcc_box_desc'],
! 'bcc_box_name' =>
$this->bo->xi['bcc_box_name'],
! 'subj_box_desc' =>
$this->bo->xi['subj_box_desc'],
! 'subj_box_name' =>
$this->bo->xi['subj_box_name'],
! 'checkbox_sig_desc' =>
$this->bo->xi['checkbox_sig_desc'],
! 'checkbox_sig_name' =>
$this->bo->xi['checkbox_sig_name'],
! 'checkbox_sig_value' =>
$this->bo->xi['checkbox_sig_value'],
! //Step One addition for req read notifications
! 'checkbox_req_notify_desc' =>
$this->bo->xi['checkbox_req_notify_desc'],
! 'checkbox_req_notify_name' =>
$this->bo->xi['checkbox_req_notify_name'],
! 'checkbox_req_notify_value' =>
$this->bo->xi['checkbox_req_notify_value'],
! 'app_images' =>
$this->bo->xi['image_dir'],
! 'toolbar_font' =>
$this->bo->xi['toolbar_font'],
! 'addressbook_button' =>
$this->bo->xi['addressbook_button'],
! 'send_button' =>
$this->bo->xi['send_button'],
! 'spellcheck_button' =>
$this->bo->xi['spellcheck_button'],
! 'attachfile_js_button' =>
$this->bo->xi['attachfile_js_button'],
! 'body_box_name' =>
$this->bo->xi['body_box_name']
! );
! $GLOBALS['phpgw']->template->set_var($tpl_vars);
! if ($this->bo->xi['do_checkbox_sig'])
! {
!
$GLOBALS['phpgw']->template->parse('V_checkbox_sig','B_checkbox_sig');
! }
! else
! {
!
$GLOBALS['phpgw']->template->set_var('V_checkbox_sig','');
! }
!
! $GLOBALS['phpgw']->msg->end_request();
!
! // we are the BO and the UI, we take care of outputting
the HTML to the client browser
! $GLOBALS['phpgw']->template->pfp('out','T_compose_out');
! }
! }
! ?>
Index: class.uifilters.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.uifilters.inc.php,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -r1.10 -r1.11
*** class.uifilters.inc.php 1 Feb 2002 23:07:02 -0000 1.10
--- class.uifilters.inc.php 25 Oct 2002 12:45:53 -0000 1.11
***************
*** 1,633 ****
! <?php
!
/**************************************************************************\
! * phpGroupWare - Sieve Email Filters and Search Mode
*
! * http://www.phpgroupware.org
*
! * Written by Angelo (Angles) Puglisi
*
! * --------------------------------------------
*
! * This program is free software; you can redistribute it and/or modify
it *
! * under the terms of the GNU General Public License as published by
the *
! * Free Software Foundation; either version 2 of the License, or (at
your *
! * option) any later version.
*
[...1265 lines suppressed...]
!
$GLOBALS['phpgw']->template->set_var('done_href',$done_href);
!
! // TEST AND APPLY LINKS
! $run_all_filters_url = $GLOBALS['phpgw']->link(
!
'/index.php',
!
'menuaction=email.bofilters.do_filter');
! $run_all_filters_href = '<a
href="'.$run_all_filters_url.'">'.lang('<b>APPLY ALL</b> Filters').'</a>';
!
$GLOBALS['phpgw']->template->set_var('run_all_filters_href',$run_all_filters_href);
!
! $test_all_filters_url =
$run_all_filters_url.'&filter_test=1';
! $test_all_filters_href = '<a
href="'.$test_all_filters_url.'">Test All Filters</a>';
!
$GLOBALS['phpgw']->template->set_var('test_all_filters_href',$test_all_filters_href);
!
! // output the template
!
$GLOBALS['phpgw']->template->pfp('out','T_filters_list');
! }
!
!
! }
! ?>
Index: class.uifolder.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.uifolder.inc.php,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -r1.2 -r1.3
*** class.uifolder.inc.php 3 Jan 2002 10:03:28 -0000 1.2
--- class.uifolder.inc.php 25 Oct 2002 12:45:53 -0000 1.3
***************
*** 1,181 ****
! <?php
!
/**************************************************************************\
! * phpGroupWare - email UI Class for Message Lists
*
! * http://www.phpgroupware.org
*
! * Written by Angelo (Angles) Puglisi <address@hidden> *
! * --------------------------------------------
*
! * This program is free software; you can redistribute it and/or modify
it *
! * under the terms of the GNU General Public License as published by
the *
! * Free Software Foundation; either version 2 of the License, or (at
your *
! * option) any later version.
*
!
\**************************************************************************/
!
! /* $Id$ */
!
! class uifolder
! {
! var $bo;
! var $debug = False;
! var $is_modular = False;
!
! var $public_functions = array(
! 'folder' => True,
! 'get_is_modular' => True,
! 'set_is_modular' => True
! );
!
! function uifolder()
! {
!
! }
!
! function get_is_modular()
! {
! return $this->is_modular;
! }
!
! function set_is_modular($feed_bool=False)
! {
! // is_bool() is in the php3 compat library
! if ((isset($feed_bool))
! && (is_bool($feed_bool)))
! {
! // only change this if the arg is boolean
! $this->is_modular = $feed_bool;
! }
! return $this->is_modular;
! }
!
! function folder($reuse_feed_args='')
! {
! if (empty($reuse_feed_args))
! {
! $reuse_feed_args = array();
! }
!
! $this->bo = CreateObject("email.bofolder");
! $this->bo->folder($reuse_feed_args);
!
! if ($this->is_modular == True)
! {
! // we do NOT echo or print output any html, we
are being used as a module by another app
! // all we do in this case is pass the parsed
html to the calling app
! }
! else
! {
! // we are the BO and the UI, we take care of
outputting the HTML to the client browser
!
unset($GLOBALS['phpgw_info']['flags']['noheader']);
!
unset($GLOBALS['phpgw_info']['flags']['nonavbar']);
! $GLOBALS['phpgw_info']['flags']['noappheader']
= True;
! $GLOBALS['phpgw_info']['flags']['noappfooter']
= True;
! $GLOBALS['phpgw']->common->phpgw_header();
! // NOTE: as of Dec 10, 2001 a call from
menuaction defaults to NOT modular
! // HOWEVER still this class must NOT invoke
$GLOBALS['phpgw']->common->phpgw_header()
! // even though we had to output the header (go
figure... :)
! }
! $GLOBALS['phpgw']->template->set_file(
! Array(
! 'T_folder_out' => 'folder.tpl'
! )
! );
!
$GLOBALS['phpgw']->template->set_block('T_folder_out','B_folder_list','V_folder_list');
!
$GLOBALS['phpgw']->template->set_block('T_folder_out','B_action_report','V_action_report');
!
!
!
!
! if ($this->bo->xi['action_report'] != '')
! {
!
$GLOBALS['phpgw']->template->set_var('action_report',$this->bo->xi['action_report']);
!
$GLOBALS['phpgw']->template->parse('V_action_report','B_action_report');
! }
! else
! {
!
$GLOBALS['phpgw']->template->set_var('V_action_report','');
! }
!
!
! for ($i=0;
$i<count($this->bo->xi['folder_list_display']);$i++)
! {
!
$GLOBALS['phpgw']->template->set_var('list_backcolor',$this->bo->xi['folder_list_display'][$i]['list_backcolor']);
!
$GLOBALS['phpgw']->template->set_var('folder_link',$this->bo->xi['folder_list_display'][$i]['folder_link']);
!
$GLOBALS['phpgw']->template->set_var('folder_name',$this->bo->xi['folder_list_display'][$i]['folder_name']);
!
$GLOBALS['phpgw']->template->set_var('msgs_unseen',$this->bo->xi['folder_list_display'][$i]['msgs_unseen']);
!
$GLOBALS['phpgw']->template->set_var('msgs_total',$this->bo->xi['folder_list_display'][$i]['msgs_total']);
!
$GLOBALS['phpgw']->template->parse('V_folder_list','B_folder_list',True);
! }
!
!
!
!
$GLOBALS['phpgw']->template->set_var('all_folders_listbox',$this->bo->xi['all_folders_listbox']);
!
! // ---- Set Up Form Variables ---
!
$GLOBALS['phpgw']->template->set_var('form_action',$this->bo->xi['form_action']);
!
//$GLOBALS['phpgw']->template->set_var('all_folders_listbox',$GLOBALS['phpgw']->msg->all_folders_listbox('','','',False));
!
//$GLOBALS['phpgw']->template->set_var('select_name_rename','source_folder');
!
!
$GLOBALS['phpgw']->template->set_var('form_create_txt',$this->bo->xi['form_create_txt']);
!
$GLOBALS['phpgw']->template->set_var('form_delete_txt',$this->bo->xi['form_delete_txt']);
!
$GLOBALS['phpgw']->template->set_var('form_rename_txt',$this->bo->xi['form_rename_txt']);
!
$GLOBALS['phpgw']->template->set_var('form_create_expert_txt',$this->bo->xi['form_create_expert_txt']);
!
$GLOBALS['phpgw']->template->set_var('form_delete_expert_txt',$this->bo->xi['form_delete_expert_txt']);
!
$GLOBALS['phpgw']->template->set_var('form_rename_expert_txt',$this->bo->xi['form_rename_expert_txt']);
!
$GLOBALS['phpgw']->template->set_var('form_submit_txt',$this->bo->xi['form_submit_txt']);
!
!
$GLOBALS['phpgw']->template->set_var('hiddenvar_target_acctnum_name',$this->bo->xi['hiddenvar_target_acctnum_name']);
!
$GLOBALS['phpgw']->template->set_var('hiddenvar_target_acctnum_value',$this->bo->xi['hiddenvar_target_acctnum_value']);
!
$GLOBALS['phpgw']->template->set_var('target_fldball_boxname',$this->bo->xi['target_fldball_boxname']);
!
! // ---- Set Up Other Variables ---
!
$GLOBALS['phpgw']->template->set_var('title_backcolor',$this->bo->xi['title_backcolor']);
!
$GLOBALS['phpgw']->template->set_var('title_textcolor',$this->bo->xi['title_textcolor']);
!
$GLOBALS['phpgw']->template->set_var('title_text',$this->bo->xi['title_text']);
!
$GLOBALS['phpgw']->template->set_var('label_name_text',$this->bo->xi['label_name_text']);
!
//$GLOBALS['phpgw']->template->set_var('label_messages_text',$this->bo->xi['label_messages_text']);
!
$GLOBALS['phpgw']->template->set_var('label_new_text',$this->bo->xi['label_new_text']);
!
$GLOBALS['phpgw']->template->set_var('label_total_text',$this->bo->xi['label_total_text']);
!
!
$GLOBALS['phpgw']->template->set_var('view_long_txt',$this->bo->xi['view_long_txt']);
!
$GLOBALS['phpgw']->template->set_var('view_long_lnk',$this->bo->xi['view_long_lnk']);
!
$GLOBALS['phpgw']->template->set_var('view_short_txt',$this->bo->xi['view_short_txt']);
!
$GLOBALS['phpgw']->template->set_var('view_short_lnk',$this->bo->xi['view_short_lnk']);
!
!
$GLOBALS['phpgw']->template->set_var('the_font',$this->bo->xi['the_font']);
!
$GLOBALS['phpgw']->template->set_var('th_backcolor',$this->bo->xi['th_backcolor']);
!
!
! if ($this->is_modular == True)
! {
! // we do NOT output any html, we are being used
as a module in another app
! // instead, we will pass the parsed html to the
calling app
!
! // Template->fp means "Finish Parse", which
does this
! // 1) parses temnplate and replaces template
tokens with vars we have set here
! // 2) "finish" is like clean up, takes care of
what to do with "unknowns",
! // which are things in the template that
look like {replace_me} tokens, but
! // for which a replacement value has not
been set, finishes allows you to do this with them:
! // "keep" them; "remove" then; or "comment"
them
! // Template->fp defaults to "remove" unknowns,
although you may set Template->unknowns as you wish
! // COMMENT NEXT LINE OUT for producvtion use,
(unknowns should be "remove"d in production use)
!
//$GLOBALS['phpgw']->template->set_unknowns("comment");
! // production use, use this:
$GLOBALS['phpgw']->template->set_unknowns("remove");
! return
$GLOBALS['phpgw']->template->fp('out','T_folder_out');
! }
! else
! {
! // we are the BO and the UI, we take care of
outputting the HTML to the client browser
! // Template->pparse means "print parse" which
parses the template and uses php print command
! // to output the HTML, note "unknowns" are
never handled ("finished") in that method.
!
//$GLOBALS['phpgw']->template->pparse('out','T_folder_out');
!
! // COMMENT NEXT LINE OUT for producvtion use,
(unknowns should be "remove"d in production use)
!
//$GLOBALS['phpgw']->template->set_unknowns("comment");
! // production use, use this:
$GLOBALS['phpgw']->template->set_unknowns("remove");
! // Template->pfp will (1) parse and substitute,
(2) "finish" - handle unknowns, (3) echo the output
!
$GLOBALS['phpgw']->template->pfp('out','T_folder_out');
! // note, for some reason, eventhough it seems
we *should* call common->phpgw_footer(),
! // if we do that, the client browser will get
TWO page footers, so we do not call it here
! }
! }
! }
! ?>
--- 1,122 ----
! <?php
!
/**************************************************************************\
! * phpGroupWare - email UI Class for Message Lists
*
! * http://www.phpgroupware.org
*
! * Written by Angelo (Angles) Puglisi <address@hidden> *
! * --------------------------------------------
*
! * This program is free software; you can redistribute it and/or modify
it *
! * under the terms of the GNU General Public License as published by
the *
! * Free Software Foundation; either version 2 of the License, or (at
your *
! * option) any later version.
*
!
\**************************************************************************/
!
! /* $Id$ */
!
! class uifolder
! {
! var $bo;
! var $widgets;
! var $debug = False;
!
! var $public_functions = array(
! 'folder' => True
! );
!
! function uifolder()
! {
! return;
! }
!
! function folder()
! {
! $this->bo = CreateObject('email.bofolder');
! $this->bo->folder();
!
! unset($GLOBALS['phpgw_info']['flags']['noheader']);
! unset($GLOBALS['phpgw_info']['flags']['nonavbar']);
! $GLOBALS['phpgw_info']['flags']['noappheader'] = True;
! $GLOBALS['phpgw_info']['flags']['noappfooter'] = True;
! $GLOBALS['phpgw']->common->phpgw_header();
! // HOWEVER still this class must NOT invoke
$GLOBALS['phpgw']->common->phpgw_header()
! // even though we had to output the header (go
figure... :)
! $GLOBALS['phpgw']->template->set_file(
! Array(
! 'T_folder_out' => 'folder.tpl'
! )
! );
!
$GLOBALS['phpgw']->template->set_block('T_folder_out','B_folder_list','V_folder_list');
!
! //= = = = TESTING NEW TOOLBAR WIDGET = = =
! $this->widgets = CreateObject('email.html_widgets');
! // this will have a msg to the user if folder was
renamed, created, or deleted
!
$this->widgets->set_toolbar_msg($this->bo->xi['action_report']);
!
$GLOBALS['phpgw']->template->set_var('widget_toolbar',$this->widgets->get_toolbar());
!
!
! for ($i=0;
$i<count($this->bo->xi['folder_list_display']);$i++)
! {
!
$GLOBALS['phpgw']->template->set_var('list_backcolor',$this->bo->xi['folder_list_display'][$i]['list_backcolor']);
!
$GLOBALS['phpgw']->template->set_var('folder_link',$this->bo->xi['folder_list_display'][$i]['folder_link']);
!
$GLOBALS['phpgw']->template->set_var('folder_name',$this->bo->xi['folder_list_display'][$i]['folder_name']);
!
$GLOBALS['phpgw']->template->set_var('msgs_unseen',$this->bo->xi['folder_list_display'][$i]['msgs_unseen']);
!
$GLOBALS['phpgw']->template->set_var('msgs_total',$this->bo->xi['folder_list_display'][$i]['msgs_total']);
!
$GLOBALS['phpgw']->template->parse('V_folder_list','B_folder_list',True);
! }
!
!
!
!
$GLOBALS['phpgw']->template->set_var('all_folders_listbox',$this->bo->xi['all_folders_listbox']);
!
! // ---- Set Up Form Variables ---
!
$GLOBALS['phpgw']->template->set_var('form_action',$this->bo->xi['form_action']);
!
//$GLOBALS['phpgw']->template->set_var('all_folders_listbox',$GLOBALS['phpgw']->msg->all_folders_listbox('','','',False));
!
//$GLOBALS['phpgw']->template->set_var('select_name_rename','source_folder');
!
!
$GLOBALS['phpgw']->template->set_var('form_create_txt',$this->bo->xi['form_create_txt']);
!
$GLOBALS['phpgw']->template->set_var('form_delete_txt',$this->bo->xi['form_delete_txt']);
!
$GLOBALS['phpgw']->template->set_var('form_rename_txt',$this->bo->xi['form_rename_txt']);
!
$GLOBALS['phpgw']->template->set_var('form_create_expert_txt',$this->bo->xi['form_create_expert_txt']);
!
$GLOBALS['phpgw']->template->set_var('form_delete_expert_txt',$this->bo->xi['form_delete_expert_txt']);
!
$GLOBALS['phpgw']->template->set_var('form_rename_expert_txt',$this->bo->xi['form_rename_expert_txt']);
!
$GLOBALS['phpgw']->template->set_var('form_submit_txt',$this->bo->xi['form_submit_txt']);
!
!
$GLOBALS['phpgw']->template->set_var('hiddenvar_target_acctnum_name',$this->bo->xi['hiddenvar_target_acctnum_name']);
!
$GLOBALS['phpgw']->template->set_var('hiddenvar_target_acctnum_value',$this->bo->xi['hiddenvar_target_acctnum_value']);
!
$GLOBALS['phpgw']->template->set_var('target_fldball_boxname',$this->bo->xi['target_fldball_boxname']);
!
! // ---- Set Up Other Variables ---
!
$GLOBALS['phpgw']->template->set_var('title_backcolor',$this->bo->xi['title_backcolor']);
!
$GLOBALS['phpgw']->template->set_var('title_textcolor',$this->bo->xi['title_textcolor']);
!
$GLOBALS['phpgw']->template->set_var('title_text',$this->bo->xi['title_text']);
!
$GLOBALS['phpgw']->template->set_var('label_name_text',$this->bo->xi['label_name_text']);
!
//$GLOBALS['phpgw']->template->set_var('label_messages_text',$this->bo->xi['label_messages_text']);
!
$GLOBALS['phpgw']->template->set_var('label_new_text',$this->bo->xi['label_new_text']);
!
$GLOBALS['phpgw']->template->set_var('label_total_text',$this->bo->xi['label_total_text']);
!
!
$GLOBALS['phpgw']->template->set_var('view_txt',$this->bo->xi['view_txt']);
!
$GLOBALS['phpgw']->template->set_var('view_lnk',$this->bo->xi['view_lnk']);
!
!
//$GLOBALS['phpgw']->template->set_var('view_long_txt',$this->bo->xi['view_long_txt']);
!
//$GLOBALS['phpgw']->template->set_var('view_long_lnk',$this->bo->xi['view_long_lnk']);
!
//$GLOBALS['phpgw']->template->set_var('view_short_txt',$this->bo->xi['view_short_txt']);
!
//$GLOBALS['phpgw']->template->set_var('view_short_lnk',$this->bo->xi['view_short_lnk']);
!
!
$GLOBALS['phpgw']->template->set_var('the_font',$this->bo->xi['the_font']);
!
$GLOBALS['phpgw']->template->set_var('th_backcolor',$this->bo->xi['th_backcolor']);
!
! // COMMENT NEXT LINE OUT for producvtion use, (unknowns
should be "remove"d in production use)
! $GLOBALS['phpgw']->template->set_unknowns("comment");
! // production use, use this:
$GLOBALS['phpgw']->template->set_unknowns("remove");
! // Template->pfp will (1) parse and substitute, (2)
"finish" - handle unknowns, (3) echo the output
! $GLOBALS['phpgw']->template->pfp('out','T_folder_out');
! // note, for some reason, eventhough it seems we
*should* call common->phpgw_footer(),
! // if we do that, the client browser will get TWO page
footers, so we do not call it here
!
! // close down ALL mailserver streams
! $GLOBALS['phpgw']->msg->end_request();
! // destroy the object
! $GLOBALS['phpgw']->msg = '';
! unset($GLOBALS['phpgw']->msg);
! }
! }
! ?>
Index: class.uiindex.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.uiindex.inc.php,v
retrieving revision 1.18
retrieving revision 1.19
diff -C2 -r1.18 -r1.19
*** class.uiindex.inc.php 28 Sep 2002 15:20:19 -0000 1.18
--- class.uiindex.inc.php 25 Oct 2002 12:45:53 -0000 1.19
***************
*** 1,678 ****
! <?php
!
/**************************************************************************\
! * phpGroupWare - email UI Class for Message Lists
*
! * http://www.phpgroupware.org
*
! * Written by Angelo (Angles) Puglisi <address@hidden> *
! * --------------------------------------------
*
! * This program is free software; you can redistribute it and/or modify
it *
! * under the terms of the GNU General Public License as published by
the *
! * Free Software Foundation; either version 2 of the License, or (at
your *
! * option) any later version.
*
[...1299 lines suppressed...]
!
! $GLOBALS['phpgw']->msg->end_request();
!
! // we are the BO and the UI, we take care of outputting
the HTML to the client browser
! // Template->pparse means "print parse" which parses
the template and uses php print command
! // to output the HTML, note "unknowns" are never
handled ("finished") in that method.
!
//$GLOBALS['phpgw']->template->pparse('out','T_index_main');
!
! // COMMENT NEXT LINE OUT for producvtion use, (unknowns
should be "remove"d in production use)
! //$GLOBALS['phpgw']->template->set_unknowns("comment");
! // production use, use this:
$GLOBALS['phpgw']->template->set_unknowns("remove");
! // Template->pfp will (1) parse and substitute, (2)
"finish" - handle unknowns, (3) echo the output
! $GLOBALS['phpgw']->template->pfp('out','T_mlist_main');
! // note, for some reason, eventhough it seems we
*should* call common->phpgw_footer(),
! // if we do that, the client browser will get TWO page
footers, so we do not call it here
! }
!
!
! }
! ?>
Index: class.uimessage.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.uimessage.inc.php,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -r1.6 -r1.7
*** class.uimessage.inc.php 28 Sep 2002 15:20:19 -0000 1.6
--- class.uimessage.inc.php 25 Oct 2002 12:45:53 -0000 1.7
***************
*** 1,291 ****
! <?php
!
/**************************************************************************\
! * phpGroupWare - email UI Class for Message Lists
*
! * http://www.phpgroupware.org
*
! * Written by Angelo (Angles) Puglisi <address@hidden> *
! * --------------------------------------------
*
! * This program is free software; you can redistribute it and/or modify
it *
! * under the terms of the GNU General Public License as published by
the *
! * Free Software Foundation; either version 2 of the License, or (at
your *
! * option) any later version.
*
!
\**************************************************************************/
!
! /* $Id$ */
!
! class uimessage
! {
! var $bo;
! var $debug = 0;
! var $is_modular = False;
!
! var $public_functions = array(
! 'message' => True,
! 'get_is_modular' => True,
! 'set_is_modular' => True
! );
!
! function uimessage()
! {
!
! }
!
! function get_is_modular()
! {
! return $this->is_modular;
! }
!
! function set_is_modular($feed_bool=False)
! {
! // is_bool() is in the php3 compat library
! if ((isset($feed_bool))
! && (is_bool($feed_bool)))
! {
! // only change this if the arg is boolean
! $this->is_modular = $feed_bool;
! }
! return $this->is_modular;
! }
!
! function message($reuse_feed_args='')
! {
! if (empty($reuse_feed_args))
! {
! $reuse_feed_args = array();
! }
!
! $this->bo = CreateObject("email.bomessage");
! $this->bo->message_data($reuse_feed_args);
!
! if ($this->is_modular == True)
! {
! // we do NOT echo or print output any html, we
are being used as a module by another app
! // all we do in this case is pass the parsed
html to the calling app
! }
! else
! {
! // we are the BO and the UI, we take care of
outputting the HTML to the client browser
! // NOW we can out the header, because
"index_data()" filled this global
! //
$GLOBALS['phpgw_info']['flags']['email_refresh_uri']
! // which is needed to preserve folder and sort
settings during the auto-refresh-ing
! // currently (Dec 6, 2001) that logic is in
phpgwapi/inc/templates/idsociety/head.inc.php
!
unset($GLOBALS['phpgw_info']['flags']['noheader']);
!
unset($GLOBALS['phpgw_info']['flags']['nonavbar']);
! $GLOBALS['phpgw_info']['flags']['noappheader']
= True;
! $GLOBALS['phpgw_info']['flags']['noappfooter']
= True;
! $GLOBALS['phpgw']->common->phpgw_header();
! // NOTE: as of Dec 10, 2001 a call from
menuaction defaults to NOT modular
! // HOWEVER still this class must NOT invoke
$GLOBALS['phpgw']->common->phpgw_header()
! // even though we had to output the header (go
figure... :)
! }
!
! // ---- BEGIN UIMESSAGE
! $GLOBALS['phpgw']->template->set_file(array(
! 'T_message_main' => 'message_main.tpl',
! 'T_message_echo_dump' => 'message_echo_dump.tpl'
! ));
!
$GLOBALS['phpgw']->template->set_block('T_message_main','B_x-phpgw-type','V_x-phpgw-type');
!
$GLOBALS['phpgw']->template->set_block('T_message_main','B_cc_data','V_cc_data');
!
$GLOBALS['phpgw']->template->set_block('T_message_main','B_attach_list','V_attach_list');
!
$GLOBALS['phpgw']->template->set_block('T_message_main','B_debug_parts','V_debug_parts');
!
$GLOBALS['phpgw']->template->set_block('T_message_main','B_display_part','V_display_part');
!
$GLOBALS['phpgw']->template->set_block('T_message_echo_dump','B_setup_echo_dump','V_setup_echo_dump');
!
$GLOBALS['phpgw']->template->set_block('T_message_echo_dump','B_done_echo_dump','V_done_echo_dump');
!
! if (!empty($this->xi['msgtype']))
! {
!
$GLOBALS['phpgw']->template->set_var('application',$this->bo->xi['application']);
!
$GLOBALS['phpgw']->template->parse('V_x-phpgw-type','B_x-phpgw-type');
! }
! else
! {
!
$GLOBALS['phpgw']->template->set_var('V_x-phpgw-type','');
! }
!
! // ---- TOOL BAR / MENU BAR ----
!
$GLOBALS['phpgw']->template->set_var('accounts_label',$this->bo->xi['accounts_label']);
!
$GLOBALS['phpgw']->template->set_var('ctrl_bar_font',$this->bo->xi['ctrl_bar_font']);
!
$GLOBALS['phpgw']->template->set_var('ctrl_bar_font_size',$this->bo->xi['ctrl_bar_font_size']);
!
$GLOBALS['phpgw']->template->set_var('ctrl_bar_back1',$this->bo->xi['ctrl_bar_back1']);
! // ---- account switchbox ----
!
$GLOBALS['phpgw']->template->set_var('acctbox_listbox',$this->bo->xi['acctbox_listbox']);
!
$GLOBALS['phpgw']->template->set_var('acctbox_frm_name',$this->bo->xi['acctbox_frm_name']);
!
$GLOBALS['phpgw']->template->set_var('acctbox_action',$this->bo->xi['acctbox_action']);
! // ---- Move Message Box ----
!
$GLOBALS['phpgw']->template->set_var('move_current_sort',$this->bo->xi['move_current_sort']);
!
$GLOBALS['phpgw']->template->set_var('move_current_order',$this->bo->xi['move_current_order']);
!
$GLOBALS['phpgw']->template->set_var('move_current_start',$this->bo->xi['move_current_start']);
!
$GLOBALS['phpgw']->template->set_var('mlist_checkbox_name',$this->bo->xi['mlist_checkbox_name']);
!
$GLOBALS['phpgw']->template->set_var('mlist_embedded_uri',$this->bo->xi['mlist_embedded_uri']);
!
$GLOBALS['phpgw']->template->set_var('frm_delmov_action',$this->bo->xi['frm_delmov_action']);
!
$GLOBALS['phpgw']->template->set_var('frm_delmov_name',$this->bo->xi['frm_delmov_name']);
!
$GLOBALS['phpgw']->template->set_var('delmov_listbox',$this->bo->xi['delmov_listbox']);
!
$GLOBALS['phpgw']->template->set_var('move_postmove_goto_name',$this->bo->xi['move_postmove_goto_name']);
!
$GLOBALS['phpgw']->template->set_var('move_postmove_goto_value',$this->bo->xi['move_postmove_goto_value']);
!
! /*
! ok acctbox_frm_name
! ok acctbox_action
! ok ctrl_bar_back1
! ok acctbox_listbox
! ok ctrl_bar_font
! ok ctrl_bar_font_size
! ok accounts_label
!
! ok frm_delmov_name
! ok frm_delmov_action
! ok current_sort
! ok current_order
! ok current_start
! ok mlist_checkbox_name
! ok mlist_embedded_uri
! ok delmov_listbox
! */
!
!
!
!
$GLOBALS['phpgw']->template->set_var('ilnk_prev_msg',$this->bo->xi['ilnk_prev_msg']);
!
$GLOBALS['phpgw']->template->set_var('ilnk_next_msg',$this->bo->xi['ilnk_next_msg']);
!
! // ---- Labels and Colors for From, To, CC, Files, and
Subject -----
!
$GLOBALS['phpgw']->template->set_var('tofrom_labels_bkcolor',$this->bo->xi['tofrom_labels_bkcolor']);
!
$GLOBALS['phpgw']->template->set_var('tofrom_data_bkcolor',$this->bo->xi['tofrom_data_bkcolor']);
!
!
$GLOBALS['phpgw']->template->set_var('lang_from',$this->bo->xi['lang_from']);
!
$GLOBALS['phpgw']->template->set_var('lang_to',$this->bo->xi['lang_to']);
!
$GLOBALS['phpgw']->template->set_var('lang_cc',$this->bo->xi['lang_cc']);
!
$GLOBALS['phpgw']->template->set_var('lang_date',$this->bo->xi['lang_date']);
!
$GLOBALS['phpgw']->template->set_var('lang_files',$this->bo->xi['lang_files']);
!
$GLOBALS['phpgw']->template->set_var('lang_subject',$this->bo->xi['lang_subject']);
!
! // ---- From: Message Data -----
!
$GLOBALS['phpgw']->template->set_var('from_data_final',$this->bo->xi['from_data_final']);
!
! // ---- To: Message Data -----
!
$GLOBALS['phpgw']->template->set_var('to_data_final',$this->bo->xi['to_data_final']);
!
! // ---- Cc: Message Data -----
! //if (isset($msg_headers->cc) &&
count($msg_headers->cc) > 0)
! // $this->bo->xi['
! if ( (isset($this->bo->xi['cc_data_final']))
! && ($this->bo->xi['cc_data_final'] != '') )
! {
!
$GLOBALS['phpgw']->template->set_var('cc_data_final',$this->bo->xi['cc_data_final']);
!
$GLOBALS['phpgw']->template->parse('V_cc_data','B_cc_data');
! }
! else
! {
!
$GLOBALS['phpgw']->template->set_var('V_cc_data','');
! }
!
! // ---- Message Date (set above) -----
!
$GLOBALS['phpgw']->template->set_var('message_date',$this->bo->xi['message_date']);
! // ---- Message Subject (set above) -----
!
$GLOBALS['phpgw']->template->set_var('message_subject',$this->bo->xi['message_subject']);
!
! // ---- Attachments List -----
! if ($this->bo->xi['list_of_files'] != '')
! {
!
$GLOBALS['phpgw']->template->set_var('list_of_files',$this->bo->xi['list_of_files']);
!
$GLOBALS['phpgw']->template->parse('V_attach_list','B_attach_list');
! }
! else
! {
!
$GLOBALS['phpgw']->template->set_var('V_attach_list','');
! }
!
!
! // ---- Images and Hrefs For Reply, ReplyAll, Forward,
and Delete -----
!
$GLOBALS['phpgw']->template->set_var('theme_font',$this->bo->xi['theme_font']);
!
$GLOBALS['phpgw']->template->set_var('theme_th_bg',$this->bo->xi['theme_th_bg']);
!
$GLOBALS['phpgw']->template->set_var('theme_row_on',$this->bo->xi['theme_row_on']);
!
$GLOBALS['phpgw']->template->set_var('reply_btns_bkcolor',$this->bo->xi['reply_btns_bkcolor']);
!
$GLOBALS['phpgw']->template->set_var('reply_btns_text',$this->bo->xi['reply_btns_text']);
!
$GLOBALS['phpgw']->template->set_var('lnk_goback_folder',$this->bo->xi['lnk_goback_folder']);
!
$GLOBALS['phpgw']->template->set_var('ilnk_reply',$this->bo->xi['ilnk_reply']);
!
$GLOBALS['phpgw']->template->set_var('ilnk_replyall',$this->bo->xi['ilnk_replyall']);
!
$GLOBALS['phpgw']->template->set_var('ilnk_forward',$this->bo->xi['ilnk_forward']);
!
$GLOBALS['phpgw']->template->set_var('ilnk_delete',$this->bo->xi['ilnk_delete']);
!
!
! // ---- DEBUG: Show Information About Each Part -----
! if ($this->bo->debug > 0)
! {
!
$GLOBALS['phpgw']->template->set_var('msg_body_info',$this->bo->xi['msg_body_info']);
!
$GLOBALS['phpgw']->template->parse('V_debug_parts','B_debug_parts');
! }
! else
! {
!
$GLOBALS['phpgw']->template->set_var('V_debug_parts','');
! }
!
! // ----- Message_Display Template Handles it from here
-------
!
$GLOBALS['phpgw']->template->set_var('theme_font',$this->bo->xi['theme_font']);
!
$GLOBALS['phpgw']->template->set_var('theme_th_bg',$this->bo->xi['theme_th_bg']);
!
$GLOBALS['phpgw']->template->set_var('theme_row_on',$this->bo->xi['theme_row_on']);
!
! // ---- so called "TOOLBAR" between the msg header
data and the message siaplay
!
$GLOBALS['phpgw']->template->set_var('view_option',$this->bo->xi['view_option']);
!
$GLOBALS['phpgw']->template->set_var('view_headers_href',$this->bo->xi['view_headers_href']);
!
$GLOBALS['phpgw']->template->set_var('view_raw_message_href',$this->bo->xi['view_raw_message_href']);
!
! // ----- SHOW MESSAGE -------
! @set_time_limit(120);
! $count_part_nice = count($this->bo->part_nice);
! for ($i = 0; $i < $count_part_nice; $i++)
! {
! if ($this->bo->part_nice[$i]['d_instructions']
== 'show')
! {
!
$GLOBALS['phpgw']->template->set_var('title_text',$this->bo->part_nice[$i]['title_text']);
!
$GLOBALS['phpgw']->template->set_var('display_str',$this->bo->part_nice[$i]['display_str']);
!
$GLOBALS['phpgw']->template->set_var('message_body',$this->bo->part_nice[$i]['message_body']);
!
$GLOBALS['phpgw']->template->parse('V_display_part','B_display_part', True);
! }
! elseif
($this->bo->part_nice[$i]['d_instructions'] == 'echo_out')
! {
! // output a blank message body, we'll
use an alternate method below
!
$GLOBALS['phpgw']->template->set_var('V_display_part','');
! // ----- Finished With Message_Mail
Template, Output It
!
$GLOBALS['phpgw']->template->pfp('out','T_message_main');
!
! // ----- Prepare a Table for this Echo
Dump
!
$GLOBALS['phpgw']->template->set_var('title_text',$this->bo->part_nice[$i]['title_text']);
!
$GLOBALS['phpgw']->template->set_var('display_str',$this->bo->part_nice[$i]['display_str']);
!
$GLOBALS['phpgw']->template->parse('V_setup_echo_dump','B_setup_echo_dump');
!
$GLOBALS['phpgw']->template->set_var('V_done_echo_dump','');
!
$GLOBALS['phpgw']->template->pfp('out','T_message_echo_dump');
!
! // ----- Prepare $msgball data for
phpgw_fetchbody()
! $msgball =
$GLOBALS['phpgw']->msg->get_arg_value('msgball');
! $msgball['part_no'] =
$this->bo->part_nice[$i]['m_part_num_mime'];
!
! // ----- Echo This Data Directly to
the Client
! echo '<pre>';
! echo
$GLOBALS['phpgw']->msg->phpgw_fetchbody($msgball);
! echo '</pre>';
! // ----- Close Table
!
$GLOBALS['phpgw']->template->set_var('V_setup_echo_dump','');
!
$GLOBALS['phpgw']->template->parse('V_done_echo_dump','B_done_echo_dump');
!
$GLOBALS['phpgw']->template->pfp('out','T_message_echo_dump');
!
! // = = = = = ======= CLEANUP AND
EXIT PAGE ======= = = = = = =
! $did_echo_dump = True;
! break;
! }
! }
! @set_time_limit(0);
! // by now it should be OK to close the stream
! $GLOBALS['phpgw']->msg->end_request();
!
! if ((isset($did_echo_dump))
! && ($did_echo_dump == True))
! {
! // DO NOTHING!
! // echo dump already outputted the template
! }
! else
! {
!
$GLOBALS['phpgw']->template->pfp('out','T_message_main');
! }
! }
! }
! ?>
--- 1,270 ----
! <?php
!
/**************************************************************************\
! * phpGroupWare - email UI Class for Message Lists
*
! * http://www.phpgroupware.org
*
! * Written by Angelo (Angles) Puglisi <address@hidden> *
! * --------------------------------------------
*
! * This program is free software; you can redistribute it and/or modify
it *
! * under the terms of the GNU General Public License as published by
the *
! * Free Software Foundation; either version 2 of the License, or (at
your *
! * option) any later version.
*
!
\**************************************************************************/
!
! /* $Id$ */
!
! /*!
! @class uimessage
! @abstract ?
! */
! class uimessage
! {
! var $bo;
! var $widgets;
! var $debug = 0;
!
! var $public_functions = array(
! 'message' => True
! );
!
! function uimessage()
! {
! return;
! }
!
! /*!
! @function message
! @abstract ?
! */
! function message()
! {
! $this->bo = CreateObject("email.bomessage");
! $this->bo->message_data();
!
! // NOW we can out the header, because "index_data()"
filled this global
! //
$GLOBALS['phpgw_info']['flags']['email_refresh_uri']
! // which is needed to preserve folder and sort settings
during the auto-refresh-ing
! // currently (Dec 6, 2001) that logic is in
phpgwapi/inc/templates/idsociety/head.inc.php
! unset($GLOBALS['phpgw_info']['flags']['noheader']);
! unset($GLOBALS['phpgw_info']['flags']['nonavbar']);
! $GLOBALS['phpgw_info']['flags']['noappheader'] = True;
! $GLOBALS['phpgw_info']['flags']['noappfooter'] = True;
! $GLOBALS['phpgw']->common->phpgw_header();
! // HOWEVER still this class must NOT invoke
$GLOBALS['phpgw']->common->phpgw_header()
! // even though we had to output the header (go
figure... :)
!
! // ---- BEGIN UIMESSAGE
! $GLOBALS['phpgw']->template->set_file(array(
! 'T_message_main' => 'message_main.tpl',
! 'T_message_echo_dump' => 'message_echo_dump.tpl'
! ));
!
$GLOBALS['phpgw']->template->set_block('T_message_main','B_x-phpgw-type','V_x-phpgw-type');
!
$GLOBALS['phpgw']->template->set_block('T_message_main','B_cc_data','V_cc_data');
!
$GLOBALS['phpgw']->template->set_block('T_message_main','B_attach_list','V_attach_list');
!
$GLOBALS['phpgw']->template->set_block('T_message_main','B_debug_parts','V_debug_parts');
!
$GLOBALS['phpgw']->template->set_block('T_message_main','B_display_part','V_display_part');
!
$GLOBALS['phpgw']->template->set_block('T_message_echo_dump','B_setup_echo_dump','V_setup_echo_dump');
!
$GLOBALS['phpgw']->template->set_block('T_message_echo_dump','B_done_echo_dump','V_done_echo_dump');
!
! //= = = = TOOLBAR WIDGET = = =
! $this->widgets = CreateObject('email.html_widgets');
!
$GLOBALS['phpgw']->template->set_var('widget_toolbar',$this->widgets->get_toolbar());
!
! if (!empty($this->xi['msgtype']))
! {
!
$GLOBALS['phpgw']->template->set_var('application',$this->bo->xi['application']);
!
$GLOBALS['phpgw']->template->parse('V_x-phpgw-type','B_x-phpgw-type');
! }
! else
! {
!
$GLOBALS['phpgw']->template->set_var('V_x-phpgw-type','');
! }
!
! // ---- TOOL BAR / MENU BAR ----
! $tpl_vars = Array(
! //'accounts_label' =>
$this->bo->xi['accounts_label'],
! //'ctrl_bar_font' =>
$this->bo->xi['ctrl_bar_font'],
! //'ctrl_bar_font_size' =>
$this->bo->xi['ctrl_bar_font_size'],
! //'ctrl_bar_back1' =>
$this->bo->xi['ctrl_bar_back1'],
!
! 'bar_back1' => '',
! //'bar_back1' =>
$GLOBALS['phpgw_info']['theme']['table_bg'],
! //'bar_back1' =>
$GLOBALS['phpgw_info']['theme']['bg08'],
!
! // ---- account switchbox ----
! //'acctbox_listbox' =>
$this->bo->xi['acctbox_listbox'],
! //'ilnk_accounts' =>
$this->bo->xi['ilnk_accounts'],
! //'acctbox_frm_name' =>
$this->bo->xi['acctbox_frm_name'],
! //'acctbox_action' =>
$this->bo->xi['acctbox_action'],
! // ---- Move Message Box ----
! 'move_current_sort' =>
$this->bo->xi['move_current_sort'],
! 'move_current_order' =>
$this->bo->xi['move_current_order'],
! 'move_current_start' =>
$this->bo->xi['move_current_start'],
! 'mlist_checkbox_name' =>
$this->bo->xi['mlist_checkbox_name'],
!
! 'mlist_embedded_uri' =>
$this->bo->xi['mlist_embedded_uri'],
! 'frm_delmov_action' =>
$this->bo->xi['frm_delmov_action'],
! 'frm_delmov_name' =>
$this->bo->xi['frm_delmov_name'],
! 'delmov_listbox' =>
$this->bo->xi['delmov_listbox'],
! 'move_postmove_goto_name' =>
$this->bo->xi['move_postmove_goto_name'],
! 'move_postmove_goto_value' =>
$this->bo->xi['move_postmove_goto_value'],
!
! 'ilnk_prev_msg' =>
$this->bo->xi['ilnk_prev_msg'],
! 'ilnk_next_msg' =>
$this->bo->xi['ilnk_next_msg'],
!
! // ---- Labels and Colors for From, To, CC,
Files, and Subject -----
! 'tofrom_labels_bkcolor' =>
$this->bo->xi['tofrom_labels_bkcolor'],
! 'tofrom_data_bkcolor' =>
$this->bo->xi['tofrom_data_bkcolor'],
!
! 'lang_from' =>
$this->bo->xi['lang_from'],
! 'lang_to' =>
$this->bo->xi['lang_to'],
! 'lang_cc' =>
$this->bo->xi['lang_cc'],
! 'lang_date' =>
$this->bo->xi['lang_date'],
! 'lang_files' => $this->bo->xi['lang_files'],
! 'lang_subject' =>
$this->bo->xi['lang_subject'],
!
! // ---- From: Message Data -----
! 'from_data_final' =>
$this->bo->xi['from_data_final'],
! // ---- To: Message Data -----
! 'to_data_final' =>
$this->bo->xi['to_data_final']
! );
! $GLOBALS['phpgw']->template->set_var($tpl_vars);
!
! // ---- Cc: Message Data -----
! //if (isset($msg_headers->cc) &&
count($msg_headers->cc) > 0)
! // $this->bo->xi['
! if ( (isset($this->bo->xi['cc_data_final']))
! && ($this->bo->xi['cc_data_final'] != '') )
! {
!
$GLOBALS['phpgw']->template->set_var('cc_data_final',$this->bo->xi['cc_data_final']);
!
$GLOBALS['phpgw']->template->parse('V_cc_data','B_cc_data');
! }
! else
! {
!
$GLOBALS['phpgw']->template->set_var('V_cc_data','');
! }
!
! // ---- Message Date (set above) -----
!
$GLOBALS['phpgw']->template->set_var('message_date',$this->bo->xi['message_date']);
! // ---- Message Subject (set above) -----
!
$GLOBALS['phpgw']->template->set_var('message_subject',$this->bo->xi['message_subject']);
!
! // ---- Attachments List -----
! if ($this->bo->xi['list_of_files'] != '')
! {
!
$GLOBALS['phpgw']->template->set_var('list_of_files',$this->bo->xi['list_of_files']);
!
$GLOBALS['phpgw']->template->parse('V_attach_list','B_attach_list');
! }
! else
! {
!
$GLOBALS['phpgw']->template->set_var('V_attach_list','');
! }
!
!
! $tpl_vars = Array(
! // ---- Images and Hrefs For Reply, ReplyAll,
Forward, and Delete -----
! 'theme_font' =>
$this->bo->xi['theme_font'],
! 'theme_th_bg' =>
$this->bo->xi['theme_th_bg'],
! 'theme_row_on' =>
$this->bo->xi['theme_row_on'],
! 'reply_btns_bkcolor' =>
$this->bo->xi['reply_btns_bkcolor'],
! 'reply_btns_text' =>
$this->bo->xi['reply_btns_text'],
!
! 'lnk_goback_folder' =>
$this->bo->xi['lnk_goback_folder'],
! 'ilnk_reply' =>
$this->bo->xi['ilnk_reply'],
! 'ilnk_replyall' =>
$this->bo->xi['ilnk_replyall'],
! 'ilnk_forward' =>
$this->bo->xi['ilnk_forward'],
! 'ilnk_delete' =>
$this->bo->xi['ilnk_delete']
! );
! $GLOBALS['phpgw']->template->set_var($tpl_vars);
!
!
! // ---- DEBUG: Show Information About Each Part -----
! // the debug output needs updating
! if ($this->bo->debug > 0)
! {
!
$GLOBALS['phpgw']->template->set_var('msg_body_info',$this->bo->xi['msg_body_info']);
!
$GLOBALS['phpgw']->template->parse('V_debug_parts','B_debug_parts');
! }
! else
! {
!
$GLOBALS['phpgw']->template->set_var('V_debug_parts','');
! }
!
! // ----- Message_Display Template Handles it from here
-------
!
$GLOBALS['phpgw']->template->set_var('theme_font',$this->bo->xi['theme_font']);
!
$GLOBALS['phpgw']->template->set_var('theme_th_bg',$this->bo->xi['theme_th_bg']);
!
$GLOBALS['phpgw']->template->set_var('theme_row_on',$this->bo->xi['theme_row_on']);
!
! // ---- so called "TOOLBAR" between the msg header
data and the message siaplay
!
$GLOBALS['phpgw']->template->set_var('view_option',$this->bo->xi['view_option']);
!
$GLOBALS['phpgw']->template->set_var('view_headers_href',$this->bo->xi['view_headers_href']);
!
$GLOBALS['phpgw']->template->set_var('view_raw_message_href',$this->bo->xi['view_raw_message_href']);
!
! // ----- SHOW MESSAGE -------
! //@set_time_limit(120);
! $count_part_nice = count($this->bo->part_nice);
! for ($i = 0; $i < $count_part_nice; $i++)
! {
! if ($this->bo->part_nice[$i]['d_instructions']
== 'show')
! {
!
$GLOBALS['phpgw']->template->set_var('title_text',$this->bo->part_nice[$i]['title_text']);
!
$GLOBALS['phpgw']->template->set_var('display_str',$this->bo->part_nice[$i]['display_str']);
!
$GLOBALS['phpgw']->template->set_var('message_body',$this->bo->part_nice[$i]['message_body']);
!
$GLOBALS['phpgw']->template->parse('V_display_part','B_display_part', True);
! }
! elseif
($this->bo->part_nice[$i]['d_instructions'] == 'echo_out')
! {
! // output a blank message body, we'll
use an alternate method below
!
$GLOBALS['phpgw']->template->set_var('V_display_part','');
! // ----- Finished With Message_Mail
Template, Output It
!
$GLOBALS['phpgw']->template->pfp('out','T_message_main');
!
! // ----- Prepare a Table for this Echo
Dump
!
$GLOBALS['phpgw']->template->set_var('title_text',$this->bo->part_nice[$i]['title_text']);
!
$GLOBALS['phpgw']->template->set_var('display_str',$this->bo->part_nice[$i]['display_str']);
!
$GLOBALS['phpgw']->template->parse('V_setup_echo_dump','B_setup_echo_dump');
!
$GLOBALS['phpgw']->template->set_var('V_done_echo_dump','');
!
$GLOBALS['phpgw']->template->pfp('out','T_message_echo_dump');
!
! // ----- Prepare $msgball data for
phpgw_fetchbody()
! $msgball =
$GLOBALS['phpgw']->msg->get_arg_value('msgball');
! $msgball['part_no'] =
$this->bo->part_nice[$i]['m_part_num_mime'];
!
! // ----- Echo This Data Directly to
the Client
! // since the php version of this of
b0rked for large msgs, perhaps use sockets code?
! echo '<pre>';
! echo
$GLOBALS['phpgw']->msg->phpgw_fetchbody($msgball);
! echo '</pre>';
! // ----- Close Table
!
$GLOBALS['phpgw']->template->set_var('V_setup_echo_dump','');
!
$GLOBALS['phpgw']->template->parse('V_done_echo_dump','B_done_echo_dump');
!
$GLOBALS['phpgw']->template->pfp('out','T_message_echo_dump');
!
! // = = = = = ======= CLEANUP AND
EXIT PAGE ======= = = = = = =
! $did_echo_dump = True;
! break;
! }
! }
! //@set_time_limit(0);
!
! if ((isset($did_echo_dump))
! && ($did_echo_dump == True))
! {
! // DO NOTHING!
! // echo dump already outputted the template
! }
! else
! {
!
$GLOBALS['phpgw']->template->pfp('out','T_message_main');
! //$GLOBALS['phpgw']->common->phpgw_footer();
! }
! // tell apache to release emeory back to the system on
script end
! //apache_child_terminate();
!
! // close down ALL mailserver streams
! $GLOBALS['phpgw']->msg->end_request();
! // destroy the object
! $GLOBALS['phpgw']->msg = '';
! unset($GLOBALS['phpgw']->msg);
! }
! }
! ?>
Index: class.uipreferences.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.uipreferences.inc.php,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -r1.14 -r1.15
*** class.uipreferences.inc.php 22 Jan 2002 07:33:18 -0000 1.14
--- class.uipreferences.inc.php 25 Oct 2002 12:45:53 -0000 1.15
***************
*** 1,607 ****
! <?php
!
/**************************************************************************\
! * phpGroupWare - E-Mail
*
! * http://www.phpgroupware.org
*
! * Based on Aeromail by Mark Cushman <address@hidden>
*
! * http://the.cushman.net/
*
! * --------------------------------------------
*
! * This program is free software; you can redistribute it and/or modify
it *
! * under the terms of the GNU General Public License as published by
the *
! * Free Software Foundation; either version 2 of the License, or (at
your *
[...1268 lines suppressed...]
!
$GLOBALS['phpgw']->template->parse('V_accts_list','B_accts_list', True);
! }
! }
! $add_new_acct_url = $GLOBALS['phpgw']->link(
!
'/index.php',
!
'menuaction=email.uipreferences.ex_accounts_edit'
!
.'&ex_acctnum='.$this->bo->add_new_account_token);
! $add_new_acct_href = '<a
href="'.$add_new_acct_url.'">'.lang('New Account').'</a>';
!
$GLOBALS['phpgw']->template->set_var('add_new_acct_href',$add_new_acct_href);
!
! $done_url = $GLOBALS['phpgw']->link(
!
'/preferences/index.php');
! $done_href = '<a
href="'.$done_url.'">'.lang('Done').'</a>';
!
$GLOBALS['phpgw']->template->set_var('done_href',$done_href);
!
! // output the template
!
$GLOBALS['phpgw']->template->pfp('out','T_prefs_ex_accounts');
! }
! }
! ?>
Index: functions.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/functions.inc.php,v
retrieving revision 1.114
retrieving revision 1.115
diff -C2 -r1.114 -r1.115
*** functions.inc.php 28 Sep 2002 20:01:43 -0000 1.114
--- functions.inc.php 25 Oct 2002 12:45:53 -0000 1.115
***************
*** 1,293 ****
! <?php
!
/**************************************************************************\
! * phpGroupWare - E-Mail
*
! * http://www.phpgroupware.org
*
! * Based on Aeromail by Mark Cushman <address@hidden>
*
! * http://the.cushman.net/
*
! * --------------------------------------------
*
! * This program is free software; you can redistribute it and/or modify
it *
! * under the terms of the GNU General Public License as published by
the *
! * Free Software Foundation; either version 2 of the License, or (at
your *
! * option) any later version.
*
!
\**************************************************************************/
!
! /* $Id$ */
!
! $d1 = strtolower(substr(APP_INC,0,3));
! if($d1 == 'htt' || $d1 == 'ftp' )
! {
! echo "Failed attempt to break in via an old Security
Hole!<br>\n";
! $GLOBALS['phpgw_info']['flags']['nodisplay'] = True;
! exit;
! }
! unset($d1);
!
! // ---- Turn Off Magic Quotes Runtime -----
! /*
! @Discussion Turn Off Magic Quotes Runtime
! magic_quotes_runtime essentially handles slashes when communicating
with databases.
! PHP MANUAL says:
! If magic_quotes_runtime is enabled, most functions that return
data from any sort of
! external source including databases and text files will have
quotes escaped with a backslash.
! this is undesirable - turn it off.
! @author Angles
! */
! set_magic_quotes_runtime(0);
!
! // ---- Set Some Debug Flags == -----
! //$debug_logins = True;
! $debug_logins = False;
!
! //$debug_args_array = True;
! $debug_args_array = False;
!
! // ---- == IS IT OK TO LOGIN To Mailserver == -----
! /*
! @Discussion Is It OK to Login To The Server?
! Preferences page, Users home page, Addressbook page,
! none require an actual connection to a server, in fact a connection may
not even
! be possible if preferences are not set or are set incorrectly
! @author Angles
! */
! // OK TO LOGIN pre-conditions
! // were we called from the main screen (user's home page)
! if(strstr($GLOBALS['phpgw_info']['server']['versions']['phpgwapi'],
'0.9.12'))
! {
! // user's welcome page was called "index.php" in ver 0.9.12
! // perhaps still needed during the upgrade procedure - so keep
this check
! $in_mainscreen =
eregi("^.*\/index\.php.*$",$GLOBALS['PHP_SELF']);
! }
! else
! {
! // after version 0.9.13 users welcome page is "home.php"
! $in_mainscreen =
eregi("^.*\/home\.php.*$",$GLOBALS['PHP_SELF']);
! }
! // were we in a typical email session
! $in_email = eregi("^.*\/email\/.*$",$GLOBALS['PHP_SELF']);
!
! // DO NOT LOGIN for these conditions --------
! $login_allowed = True; // initialize
!
! // these files do not require login to email server, or have been
replaced by n-tier classes.
! $no_login_check = Array(
! "attach_file\.php",
! "preferences\.php",
! "addressbook\.php",
! "folder\.php",
! "message\.php",
! //"filters\.php",
! "index\.php",
! "indexx\.php"
! );
! if($debug_logins) { echo 'email functions.php: $no_login_check[]:
'.serialize($no_login_check).'<br>'; }
!
! for($i=0; $i<count($no_login_check); $i++)
! {
! $match_this = $no_login_check[$i];
! if(eregi("^.*\/email\/$match_this.*$",$GLOBALS['PHP_SELF']))
! {
! $login_allowed = False;
! break;
! }
! }
!
! // MORE Login Restrictions That Need Work - Disabled for now
! // send_message needs to access the mailserver to get parts sometimes,
can't limit this here
! // AND ALSO Do Not Login - if sent message will NOT be put in the
"Sent" folder
! //if ( (eregi("^.*\/email\/send_message\.php.*$",$GLOBALS['PHP_SELF']))
! //&&
($GLOBALS['phpgw_info']['user']['preferences']['email']['mail_server_type'] !=
'imap')
! //&&
($GLOBALS['phpgw_info']['user']['preferences']['email']['mail_server_type'] !=
'imaps') )
! //{
! // $login_allowed = False;
! //}
!
! /*
! // this this debug report looks to be somewhat dated
! if ($debug_logins)
! {
! echo '<br>';
! echo 'PHP_SELF='.$GLOBALS['PHP_SELF'].'<br>';
! echo
'phpgw_info[server][webserver_url]='.$GLOBALS['phpgw_info']['server']['webserver_url'].'<br>';
! echo 'in_mainscreen='.serialize($in_mainscreen).'<br>';
! echo 'in_email='.serialize($in_email).'<br>';
! echo 'login_allowed='.serialize($login_allowed).'<br>';
! echo 'folder='.$folder.'<br>';
! echo
'get_mailsvr_callstr='.$GLOBALS['phpgw']->msg->get_mailsvr_callstr().'<br>';
! echo
'get_folder_long='.$GLOBALS['phpgw']->msg->get_folder_long($folder).'<br>';
! }
! */
!
! /*!
! @action begin mail request
! @abstract basic instructions for creating and initializing the
mail_msg class
! @param $this->args[] array see below for available array elements
! @param $args_array array currently only 2 elements are available
! $args_array['folder'] string default: 'INBOX'
! name of folder name to log into (i.e. open, select)
! $args_array['do_login'] boolean default: True
! should the mail_msg class actually create a mail_dcom
instance and then
! attempt to establish a connection to a server. In some
cases, such as when
! setting preferences, this is not desirable (not
possible before prefs are set, anyway)
! avoids delays and/or error messages of an unneeded
server connection
! @result none, this is an object
! @discussion The mail_msg class is intended to hide the complex
details of email requests
! from the developer, allowing almost anyone with little effort to
include useful email functionality
! in their application. For this reason, the initial arguments that
mail_msg class will look for are
! in two seperate structures. Param $args_array accepts only 2 elements,
"folder" and "do_login"
! and represents the minimum amount of information the calling
application need supply to
! the class to get something done. The other necessary data will be
inferred of gathered from the
! preferences class.
! Alternatively, the $this->args[] array can hold quite a number of
elements which can be used
! by the mail_msg class to accomplish more specific and/or more
complicated mail requests.
! See below for the currently available array elements that mail_msg
class will accept.
! Here are some simplified instructions on initializing and using the
mail_msg class.
!
! ---- INSTRUCTIONS: -------
! 1: create an instance of the mail_msg class
! $GLOBALS['phpgw']->msg = CreateObject("email.mail_msg");
! 2: (optional) if you want to pass some GPC type args to the class, put
then in the
! $GLOBALS['phpgw']->msg->args[] array
! example: putting $GLOBALS['HTTP_POST_VARS'] and/or HTTP_GET_VARS
! data into said msg->args[] array is accomplished with this
class function:
! $GLOBALS['phpgw']->msg->grab_class_args_gpc();
! Alternatively, if you are attempting to set email preferences,
use this call:
! $GLOBALS['phpgw']->msg->grab_set_prefs_args_gpc();
! FUTURE USAGE:
! Those two class functions will have equivalent calls
for external data feeds, like:
! $GLOBALS['phpgw']->msg->grab_class_args_xmlrpc();
! $GLOBALS['phpgw']->msg->grab_set_prefs_args_xmlrpc();
! 3: create an array (example: $args_array[]) to be the sole argument to
"begin_request()"
! 4: there is 1 needed and 1 optional params:
! $args_array['do_login'] : boolean (necessary) : default: True
! $args_array['folder'] : string (defaults to 'INBOX' if not
supplied)
! 5: call "begin_request" with that args array as such:
! $GLOBALS['phpgw']->msg->begin_request($args_array);
! 6: do something, like grab an email, list messages, check for new mail,
etc...
! $inbox_data = Array();
! $inbox_data =
$GLOBALS['phpgw']->msg->new_message_check();
! 7: when you are done, end the request with this command:
! $GLOBALS['phpgw']->msg->end_request('');
!
! Simple Example:
! $GLOBALS['phpgw']->msg = CreateObject("email.mail_msg");
! $args_array = Array();
! $args_array['folder'] = 'INBOX';
! $args_array['do_login'] = True;
! $GLOBALS['phpgw']->msg->begin_request($args_array);
! $inbox_data = Array();
! $inbox_data = $GLOBALS['phpgw']->msg->new_message_check();
! echo 'mail check says: '.$inbox_data['alert_string'];
! $GLOBALS['phpgw']->msg->end_request('');
! */
!
! // ---- Create the mail_msg Class -----
! //$GLOBALS['phpgw']->msg = CreateObject("email.mail_msg");
! if(is_object($GLOBALS['phpgw']->msg))
! {
! if($debug_logins) { echo 'email: functions.inc.php: is_object
test: $GLOBALS[phpgw]->msg is already set, do not create again<br>'; }
! }
! else
! {
! if($debug_logins) { echo 'email: functions.inc.php: is_object
test: $GLOBALS[phpgw]->msg is NOT set, creating mail_msg object<br>'; }
! $GLOBALS['phpgw']->msg = CreateObject("email.mail_msg");
! }
!
! /*
! // DEPRECIATED - now in email.bopreferences
! // ---- HANDLE GETTING PREFERENCE GPC HTTP_POST_VARS ARGS -------
! // setting prefs does not require a login, in fact you may not be able
to login until you set
! // some basic prefs, so it makes sence to handle that here
! if(get_var('submit_prefs',Array('POST')))
! {
! $GLOBALS['phpgw']->msg->grab_set_prefs_args_gpc();
! }
! */
!
! // UNKNOWN if $totalerrors and $errors are still used or not
! // $args_array['totalerrors'] = $totalerrors;
! // $args_array['errors'] = $errors;
!
! // ---- CONNECT TO MAILSERVER - IF IT'S OK -------
! if ((($in_email) || ($in_mainscreen)) && ($login_allowed))
! {
! // this will expose sensitive data, beter to comment it out
when not debugging
! //if ($debug_logins) { echo 'CALL TO LOGIN IN
FUNCTIONS.INC.PHP'.'<br>'.'userid='.$GLOBALS['phpgw_info']['user']['preferences']['email']['userid'];
}
!
! /*
! // DEPRECIATED - not happens aytomatically in
"->begin_request()"
! // ---- GRAB CLASS VARIABLES FROM HTTP POST OR GET GLOBALS
------
! $GLOBALS['phpgw']->msg->grab_class_args_gpc();
! */
!
! // ---- INITIALIZE SIMPLE REQUEST ARGS ARRAY HOLDER VARIABLE
-------
! // needed whether you intend to login or not
! $args_array = Array();
! // ====== ARGUMENTS THAT "BEGIN_REQUEST() ARGS_ARRAY TAKES
=====
! // (1) PRIMARY: $args_array["do_login"] = True/False
! // "Primary" means this arg value *should* be passed in the
$args_array[] item
! // although it can be passed thru any supported means.
"do_login" controls
! // whether class.mail_dcom is created and whether a server
login is attempted.
! // This can be undersirable if no email prefs exist or if a
server connection is otherwise
! // not required or not desired.
! // (2) additionally, *any* known class arg can be passed in
$args_array[] and theey will
! // OVERRIDE any previous arg value, such as gotten from the GPC
vars in "->grab_class_args_*()"
! // Otherwise, just let the "->grab_class_args_*()" set these
arg values.
! // NOTE: you can supply the "folder" and "do_login" values from
any data source, xml-rpc is planned
!
! // (1) ---- do_login: true/false ----
! // if true: class dcom is created and a login is attaemted, and
a reopen to the "foler" var is attempted
! // if false: used for information only, such as to fill
preferences for squirrelmail,
! // or for the preferences page, where info necessary for
logino may not yet be filled in
! $args_array['do_login'] = True;
!
! // "begin_request" will obtain the email preferences from the db
! // currently db table "phpgw_preferences", accessed via object
$GLOBALS['phpgw']->preferences
! // and also containing integrated pref handling code in
/mail/class.bopreferences.inc.php
! // "begin_request" will also attempt to obtain values for all
known args, ex. "->grab_class_args_*()",
! // and will prepare those args, such as preping the folder name
! // and login (if "do_login" == true) and, if logged in, will
set arg value "mailsvr_stream"
!
! // BEGIN the mail transaction REQUEST
! $some_stream =
$GLOBALS['phpgw']->msg->begin_request($args_array);
!
! // ---- Error Msg And Exit If Mailbox Connection Not
Established -----
! if(!$some_stream)
! {
!
$GLOBALS['phpgw']->msg->login_error('email_(slash)_functions.inc.php');
! // this exits the script
! }
! }
! else
! {
! // use the msg class BUT DO NOT login
! // ---- INITIALIZE ARGS ARRAY HOLDER VARIABLE -------
! // needed whether you intend to login or not
! $args_array = Array();
! $args_array['do_login'] = False;
! // this will obtain the email preferences from the db
(currently "phpgw_preferences")
! $GLOBALS['phpgw']->msg->begin_request($args_array);
! }
!
! // ---- UN-INITIALIZE ARGS ARRAY HOLDER VARIABLE -------
! // it's no longer needed
! $args_array = Array();
!
! // FROM HERE DOWN IS ALL DEPRECIATED CODE
! // ---- Various Functions Used To Support Email -----
! // note these are probably unused, because most (all ?) useful
functions have migrated into mail_msg class
!
! // this is BROKEN
! function mime_is_packagelist($part_nice)
! {
! if ((stristr($part_nice['subtype'], 'MIXED')) ||
! (stristr($part_nice['type'], 'multipart')) ||
! (stristr($part_nice['param_attribute'], 'boundry')))
! {
! return True;
! }
! else
! {
! return False;
! }
! }
! ?>
--- 1,35 ----
! <?php
!
/**************************************************************************\
! * phpGroupWare - E-Mail
*
! * http://www.phpgroupware.org
*
! * Based on Aeromail by Mark Cushman <address@hidden>
*
! * http://the.cushman.net/
*
! * --------------------------------------------
*
! * This program is free software; you can redistribute it and/or modify
it *
! * under the terms of the GNU General Public License as published by
the *
! * Free Software Foundation; either version 2 of the License, or (at
your *
! * option) any later version.
*
!
\**************************************************************************/
!
! /* $Id$ */
!
! $d1 = strtolower(substr(APP_INC,0,3));
! if($d1 == 'htt' || $d1 == 'ftp' )
! {
! echo "Failed attempt to break in via an old Security
Hole!<br>\n";
! $GLOBALS['phpgw']->common->phpgw_exit();
! }
! unset($d1);
!
! // ---- Turn Off Magic Quotes Runtime -----
! /*!
! @concept Turn Off Magic Quotes Runtime
! @discussion magic_quotes_runtime essentially handles slashes when
communicating with databases.
! PHP MANUAL says:
! If magic_quotes_runtime is enabled, most functions that return
data from any sort of
! external source including databases and text files will have
quotes escaped with a backslash.
! this is undesirable - turn it off.
! */
! set_magic_quotes_runtime(0);
!
! ?>
Index: hook_admin.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/hook_admin.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -r1.4 -r1.5
*** hook_admin.inc.php 4 Mar 2002 00:56:56 -0000 1.4
--- hook_admin.inc.php 25 Oct 2002 12:45:53 -0000 1.5
***************
*** 1,23 ****
! <?php
! /**************************************************************************\
! * phpGroupWare *
! * http://www.phpgroupware.org *
! * Written by Joseph Engo <address@hidden> *
! * -------------------------------------------- *
! * This program is free software; you can redistribute it and/or modify it *
! * under the terms of the GNU General Public License as published by the *
! * Free Software Foundation; either version 2 of the License, or (at your *
! * option) any later version. *
! \**************************************************************************/
!
! /* $Id$ */
! {
! // Only Modify the $file and $title variables.....
! $title = $appname;
! $file = Array(
! 'Site Configuration' =>
$GLOBALS['phpgw']->link('/index.php','menuaction=admin.uiconfig.index&appname='
. $appname)
! );
! //Do not modify below this line
! display_section($appname,$title,$file);
! }
! ?>
--- 1,23 ----
! <?php
! /**************************************************************************\
! * phpGroupWare *
! * http://www.phpgroupware.org *
! * Written by Joseph Engo <address@hidden> *
! * -------------------------------------------- *
! * This program is free software; you can redistribute it and/or modify it *
! * under the terms of the GNU General Public License as published by the *
! * Free Software Foundation; either version 2 of the License, or (at your *
! * option) any later version. *
! \**************************************************************************/
!
! /* $Id$ */
! {
! // Only Modify the $file and $title variables.....
! $title = $appname;
! $file = Array(
! 'Site Configuration' =>
$GLOBALS['phpgw']->link('/index.php','menuaction=admin.uiconfig.index&appname='
. $appname)
! );
! //Do not modify below this line
! display_section($appname,$title,$file);
! }
! ?>
Index: hook_email_add_def_pref.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/hook_email_add_def_pref.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -r1.4 -r1.5
*** hook_email_add_def_pref.inc.php 4 Mar 2002 00:56:56 -0000 1.4
--- hook_email_add_def_pref.inc.php 25 Oct 2002 12:45:53 -0000 1.5
***************
*** 1,20 ****
! <?php
! /**************************************************************************\
! * phpGroupWare - Preferences *
! * http://www.phpgroupware.org *
! * Written by Mark Peters <address@hidden> *
! * -------------------------------------------- *
! * This program is free software; you can redistribute it and/or modify it *
! * under the terms of the GNU General Public License as published by the *
! * Free Software Foundation; either version 2 of the License, or (at your *
! * option) any later version. *
! \**************************************************************************/
!
! /* $Id$ */
!
! $GLOBALS['pref']->change('email','mainscreen_showmail','True');
! $GLOBALS['pref']->change('email','use_trash_folder','False');
! $GLOBALS['pref']->change('email','default_sorting','old_new');
! $GLOBALS['pref']->change('email','show_addresses','from');
! $GLOBALS['pref']->change('email','email_sig','');
! ?>
--- 1,8 ----
! <?php
! global $pref;
! $pref->change("email","mainscreen_showmail","True");
! $pref->change("email","use_trash_folder","False");
! $pref->change("email","default_sorting","old_new");
! $pref->change("email","show_addresses","from");
! $pref->change("email","email_sig","");
! ?>
Index: hook_home.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/hook_home.inc.php,v
retrieving revision 1.54
retrieving revision 1.55
diff -C2 -r1.54 -r1.55
*** hook_home.inc.php 3 Oct 2002 04:15:03 -0000 1.54
--- hook_home.inc.php 25 Oct 2002 12:45:53 -0000 1.55
***************
*** 1,172 ****
! <?php
! /**************************************************************************\
! * phpGroupWare - E-Mail *
! * http://www.phpgroupware.org *
! * -------------------------------------------- *
! * This program is free software; you can redistribute it and/or modify it *
! * under the terms of the GNU General Public License as published by the *
! * Free Software Foundation; either version 2 of the License, or (at your *
! * option) any later version. *
! \**************************************************************************/
!
! /* $Id$ */
!
! $d1 =
strtolower(substr($GLOBALS['phpgw_info']['server']['app_inc'],0,3));
! if($d1 == 'htt' || $d1 == 'ftp' )
! {
! echo "Failed attempt to break in via an old Security
Hole!<br>\n";
! $GLOBALS['phpgw_info']['flags']['nodisplay'] = True;
! exit;
! }
! unset($d1);
!
! // does this array item actually exist before we create the mail_msg,
where is it created?
! if
($GLOBALS['phpgw_info']['user']['preferences']['email']['mainscreen_showmail']
== True)
! {
! // ---- Create the base email Msg Class -----
! if(!is_object(@$GLOBALS['phpgw']->msg))
! {
! $GLOBALS['phpgw']->msg = CreateObject('email.mail_msg');
! }
!
! $data = Array();
!
! $args_array = Array();
! $args_array['folder'] = 'INBOX';
! $args_array['do_login'] = True;
! $some_stream =
$GLOBALS['phpgw']->msg->begin_request($args_array);
! if(!$some_stream)
! {
! $title = '<font
color="#FFFFFF">'.lang('EMail').'</font>';
! $extra_data = '<b>Mail error:</b> Can not open
connection to mail server';
! }
! else
! {
! /* class mail_msg "new_message_check()"
! // this is the structure you will get
! $inbox_data['is_imap'] boolean - pop3 server do not
know what is "new" or not
! $inbox_data['folder_checked'] string - the folder
checked, as processed by the msg class
! $inbox_data['alert_string'] string - what to show the
user about this inbox check
! $inbox_data['number_new'] integer - for IMAP is
number "unseen"; for pop3 is number messages
! $inbox_data['number_all'] integer - for IMAP and pop3
is total number messages in that inbox
! */
! $inbox_data = Array();
! $inbox_data =
$GLOBALS['phpgw']->msg->new_message_check();
!
! $title = '<font color="#FFFFFF">'.lang('EMail').'
'.$inbox_data['alert_string'].'</font>';
!
! if($inbox_data['number_all'] >= 5)
! {
! $check_msgs = 5;
! }
! else
! {
! $check_msgs = $inbox_data['number_all'];
! }
!
! if ($inbox_data['number_all'] > 0)
! {
! $msgball_list = array();
! $msgball_list =
$GLOBALS['phpgw']->msg->get_msgball_list();
! }
! for($i=0; $i<$check_msgs; $i++)
! {
! $msg_headers =
$GLOBALS['phpgw']->msg->phpgw_header($msgball_list[$i]);
! $subject =
$GLOBALS['phpgw']->msg->get_subject($msg_headers,'');
! if(strlen($subject) > 65)
! {
! $subject = substr($subject,0,65).' ...';
! }
! $data[] = array(
! 'text' => $subject,
! 'link' => $GLOBALS['phpgw']->link(
! '/index.php',
!
'menuaction=email.uimessage.message'
!
.'&'.$msgball_list[$i]['uri']
! )
! );
! }
!
! // COMPOSE NEW email link
! $compose_link = $GLOBALS['phpgw']->link(
! '/index.php',
!
'menuaction=email.uicompose.compose'
! // this data tells us where to
return to after sending a message
! // since we started from home
page, send can not (at this time) take us back there
! // so instead take user to
INBOX for the default account (acctnum 0) after clicking the send button
! .'&fldball[folder]=INBOX'
! .'&fldball[acctnum]=0'
! );
! $compose_href = '<a
href="'.$compose_link.'">'.lang('Compose New').'</a>'."\r\n";
!
! // ADD FOLDER LISTBOX TO HOME PAGE (Needs to be
TEMPLATED)
! // Does This Mailbox Support Folders (i.e. more than
just INBOX)?
!
if($GLOBALS['phpgw']->msg->get_mailsvr_supports_folders() == False)
! {
! $extra_data = ' '.$compose_href;
! }
! else
! {
! // FUTURE: this will pick up the user option to
show num unseen msgs in dropdown list
! //$listbox_show_unseen = True;
! $listbox_show_unseen = False;
! // build the $feed_args array for the
all_folders_listbox function
! // anything not specified will be replace with
a default value if the function has one for that param
! $feed_args = Array(
! 'mailsvr_stream' => '',
! 'pre_select_folder' => '',
! 'skip_folder' => '',
! 'show_num_new' =>
$listbox_show_unseen,
! 'widget_name' =>
'fldball_fake_uri',
! 'folder_key_name' => 'folder',
! 'acctnum_key_name' => 'acctnum',
! 'on_change' =>
'document.switchbox.submit()',
! 'first_line_txt' => lang('switch
current folder to')
! );
! // get you custom built HTML listbox (a.k.a.
selectbox) widget
! $switchbox_listbox =
$GLOBALS['phpgw']->msg->all_folders_listbox($feed_args);
! // make it another TR we can insert into the
home page portal object
! // and surround it in FORM tags so the submit
will work
! $switchbox_action = $GLOBALS['phpgw']->link(
! '/index.php',
!
'menuaction=email.uiindex.index'
! );
! $extra_data = '<form name="switchbox"
action="'.$switchbox_action.'" method="post">'."\r\n"
! .'<td align="left">'."\r\n"
! .' <strong>'.lang('E-Mail
Folders').':</strong> '.$switchbox_listbox."\r\n"
! .' '.$compose_href."\r\n"
! .'</td>'."\r\n"
! .'</form>'."\r\n";
! }
! $GLOBALS['phpgw']->msg->end_request();
! }
!
! $portalbox = CreateObject('phpgwapi.listbox',
! Array(
! 'title' => $title,
! 'width' => '100%',
! 'outerborderwidth' => '0',
! 'header_background_image' =>
$GLOBALS['phpgw']->common->image('phpgwapi/templates/default','bg_filler')
! )
! );
! $app_id = $GLOBALS['phpgw']->applications->name2id('email');
! $GLOBALS['portal_order'][] = $app_id;
! $var = Array(
! 'up' => Array('url' => '/set_box.php', 'app' =>
$app_id),
! 'down' => Array('url' => '/set_box.php', 'app' =>
$app_id),
! 'close' => Array('url' => '/set_box.php', 'app' =>
$app_id),
! 'question' => Array('url' => '/set_box.php', 'app' =>
$app_id),
! 'edit' => Array('url' => '/set_box.php', 'app' =>
$app_id)
! );
!
! while(list($key,$value) = each($var))
! {
! $portalbox->set_controls($key,$value);
! }
!
! $portalbox->data = $data;
!
! // output the portalbox and below it (1) the folders listbox
(if applicable) and (2) Compose New mail link
! echo "\n".'<!-- BEGIN Mailbox info
-->'."\n".$portalbox->draw($extra_data).'<!-- END Mailbox info -->'."\n";
! }
! ?>
--- 1,171 ----
! <?php
! /**************************************************************************\
! * phpGroupWare - E-Mail *
! * http://www.phpgroupware.org *
! * -------------------------------------------- *
! * This program is free software; you can redistribute it and/or modify it *
! * under the terms of the GNU General Public License as published by the *
! * Free Software Foundation; either version 2 of the License, or (at your *
! * option) any later version. *
! \**************************************************************************/
!
! /* $Id$ */
!
! $d1 =
strtolower(substr($GLOBALS['phpgw_info']['server']['app_inc'],0,3));
! if($d1 == 'htt' || $d1 == 'ftp' )
! {
! echo "Failed attempt to break in via an old Security
Hole!<br>\n";
! $GLOBALS['phpgw']->common->phpgw_exit();
! }
! unset($d1);
!
!
! // does this array item actually exist before we create the mail_msg,
where is it created?
! //if
($GLOBALS['phpgw_info']['user']['preferences']['email']['mainscreen_showmail']
== True)
!
! // create a msg object just to have access to the prefs
! $my_msg_bootstrap = '';
! $my_msg_bootstrap = CreateObject("email.msg_bootstrap");
! $my_msg_bootstrap->set_do_login(False);
! $my_msg_bootstrap->ensure_mail_msg_exists('email.hook_home', 0);
!
! // does account 0 (default, main account) have this pref set
! // this pref is either set for "ON", of not set which represents a "no"
! // other accounts can be shown by (1) giving the extra accounts access
to this pref item, and
! // (2) by doing a loop testing for accounts other then just account 0
! if ($GLOBALS['phpgw']->msg->get_isset_pref('mainscreen_showmail', 0))
! {
! // NO LONGER needed, from here on, msg objects opens streams on
demand if requied
! //$my_msg_bootstrap = '';
! //$my_msg_bootstrap = CreateObject("email.msg_bootstrap");
! //$my_msg_bootstrap->ensure_mail_msg_exists('email.hook_home',
0);
!
! $data = Array();
!
! /* class mail_msg "new_message_check()"
! // this is the structure you will get
! $inbox_data['is_imap'] boolean - pop3 server do not know what
is "new" or not
! $inbox_data['folder_checked'] string - the folder checked, as
processed by the msg class
! $inbox_data['alert_string'] string - what to show the user
about this inbox check
! $inbox_data['number_new'] integer - for IMAP is number
"unseen"; for pop3 is number messages
! $inbox_data['number_all'] integer - for IMAP and pop3 is
total number messages in that inbox
! */
! $inbox_data = Array();
! $inbox_data = $GLOBALS['phpgw']->msg->new_message_check();
!
! $title = '<font color="#FFFFFF">'.lang('EMail').'
'.$inbox_data['alert_string'].'</font>';
!
! if($inbox_data['number_all'] >= 5)
! {
! $check_msgs = 5;
! }
! else
! {
! $check_msgs = $inbox_data['number_all'];
! }
!
! if ($inbox_data['number_all'] > 0)
! {
! $msgball_list = array();
! $msgball_list =
$GLOBALS['phpgw']->msg->get_msgball_list();
! }
! for($i=0; $i<$check_msgs; $i++)
! {
! $msg_headers =
$GLOBALS['phpgw']->msg->phpgw_header($msgball_list[$i]);
! $subject =
$GLOBALS['phpgw']->msg->get_subject($msg_headers,'');
! if(strlen($subject) > 65)
! {
! $subject = substr($subject,0,65).' ...';
! }
! $data[] = array(
! 'text' => $subject,
! 'link' => $GLOBALS['phpgw']->link(
! '/index.php',
!
'menuaction=email.uimessage.message'
! .'&'.$msgball_list[$i]['uri']
! )
! );
! }
!
! // COMPOSE NEW email link
! $compose_link = $GLOBALS['phpgw']->link(
! '/index.php',
! 'menuaction=email.uicompose.compose'
! // this data tells us where to return
to after sending a message
! // since we started from home page,
send can not (at this time) take us back there
! // so instead take user to INBOX for
the default account (acctnum 0) after clicking the send button
! .'&fldball[folder]=INBOX'
! .'&fldball[acctnum]=0'
! );
! $compose_href = '<a href="'.$compose_link.'">'.lang('Compose
New').'</a>'."\r\n";
!
! // ADD FOLDER LISTBOX TO HOME PAGE (Needs to be TEMPLATED)
! // Does This Mailbox Support Folders (i.e. more than just
INBOX)?
! if($GLOBALS['phpgw']->msg->get_mailsvr_supports_folders() ==
False)
! {
! $extra_data = ' '.$compose_href;
! }
! else
! {
! // build the $feed_args array for the
all_folders_listbox function
! // anything not specified will be replace with a
default value if the function has one for that param
! $feed_args = Array(
! 'mailsvr_stream' => '',
! 'pre_select_folder' => '',
! 'skip_folder' => '',
! 'show_num_new' =>
$GLOBALS['phpgw_info']['user']['preferences']['email']['newmsg_combobox'],
! 'widget_name' => 'fldball_fake_uri',
! 'folder_key_name' => 'folder',
! 'acctnum_key_name' => 'acctnum',
! 'on_change' =>
'document.switchbox.submit()',
! 'first_line_txt' => lang('switch current
folder to')
! );
! // get you custom built HTML listbox (a.k.a. selectbox)
widget
! $switchbox_listbox =
$GLOBALS['phpgw']->msg->all_folders_listbox($feed_args);
! // make it another TR we can insert into the home page
portal object
! // and surround it in FORM tags so the submit will work
! $switchbox_action = $GLOBALS['phpgw']->link(
! '/index.php',
! 'menuaction=email.uiindex.index'
! );
! $extra_data = '<form name="switchbox"
action="'.$switchbox_action.'" method="post">'."\r\n"
! .'<td align="left">'."\r\n"
! .' <strong>'.lang('E-Mail
Folders').':</strong> '.$switchbox_listbox."\r\n"
! .' '.$compose_href."\r\n"
! .'</td>'."\r\n"
! .'</form>'."\r\n";
! }
! $GLOBALS['phpgw']->msg->end_request();
!
! $portalbox = CreateObject('phpgwapi.listbox',
! Array(
! 'title' => $title,
! 'primary' =>
$GLOBALS['phpgw_info']['theme']['navbar_bg'],
! 'secondary' =>
$GLOBALS['phpgw_info']['theme']['navbar_bg'],
! 'tertiary' =>
$GLOBALS['phpgw_info']['theme']['navbar_bg'],
! 'width' => '100%',
! 'outerborderwidth' => '0',
! 'header_background_image' =>
$GLOBALS['phpgw']->common->image('phpgwapi/templates/phpgw_website','bg_filler')
! )
! );
! $app_id = $GLOBALS['phpgw']->applications->name2id('email');
! $GLOBALS['portal_order'][] = $app_id;
! $var = Array(
! 'up' => Array('url' => '/set_box.php', 'app' =>
$app_id),
! 'down' => Array('url' => '/set_box.php', 'app' =>
$app_id),
! 'close' => Array('url' => '/set_box.php', 'app' =>
$app_id),
! 'question' => Array('url' => '/set_box.php', 'app' =>
$app_id),
! 'edit' => Array('url' => '/set_box.php', 'app' =>
$app_id)
! );
!
! while(list($key,$value) = each($var))
! {
! $portalbox->set_controls($key,$value);
! }
!
! $portalbox->data = $data;
!
! // output the portalbox and below it (1) the folders listbox
(if applicable) and (2) Compose New mail link
! echo "\n".'<!-- BEGIN Mailbox info
-->'."\n".$portalbox->draw($extra_data).'<!-- END Mailbox info -->'."\n";
! }
! ?>
Index: hook_manual.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/hook_manual.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -r1.4 -r1.5
*** hook_manual.inc.php 4 Mar 2002 00:56:56 -0000 1.4
--- hook_manual.inc.php 25 Oct 2002 12:45:53 -0000 1.5
***************
*** 1,23 ****
! <?php
! /**************************************************************************\
! * phpGroupWare - Manual *
! * http://www.phpgroupware.org *
! * Written by Mark Peters <address@hidden> *
! * -------------------------------------------- *
! * This program is free software; you can redistribute it and/or modify it *
! * under the terms of the GNU General Public License as published by the *
! * Free Software Foundation; either version 2 of the License, or (at your *
! * option) any later version. *
! \**************************************************************************/
!
! /* $Id$ */
!
! $file = Array(
! 'Viewing' => 'viewing.php',
! 'Replying' => 'replying.php',
! 'Composing/Saving/Deleting' => 'other.php',
! 'Notes' => 'notes.php'
! );
! //Do not modify below this line
! display_manual_section($appname,$file);
! ?>
--- 1,23 ----
! <?php
! /**************************************************************************\
! * phpGroupWare - Calendar Holidays *
! * http://www.phpgroupware.org *
! * Written by Mark Peters <address@hidden> *
! * -------------------------------------------- *
! * This program is free software; you can redistribute it and/or modify it *
! * under the terms of the GNU General Public License as published by the *
! * Free Software Foundation; either version 2 of the License, or (at your *
! * option) any later version. *
! \**************************************************************************/
!
! /* $Id$ */
!
! $file = Array(
! 'Viewing' => 'viewing.php',
! 'Replying' => 'replying.php',
! 'Composing/Saving/Deleting' => 'other.php',
! 'Notes' => 'notes.php'
! );
! //Do not modify below this line
! display_manual_section($appname,$file);
! ?>
Index: hook_notifywindow.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/hook_notifywindow.inc.php,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -r1.9 -r1.10
*** hook_notifywindow.inc.php 28 Sep 2002 20:01:43 -0000 1.9
--- hook_notifywindow.inc.php 25 Oct 2002 12:45:53 -0000 1.10
***************
*** 1,80 ****
! <?php
!
/**************************************************************************\
! * phpGroupWare - E-Mail
*
! * http://www.phpgroupware.org
*
! * --------------------------------------------
*
! * This program is free software; you can redistribute it and/or
modify it*
! * under the terms of the GNU General Public License as published
by the *
! * Free Software Foundation; either version 2 of the License, or
(at your *
! * option) any later version.
*
!
\**************************************************************************/
!
! /* $Id$ */
!
! $d1 = strtolower(substr(APP_INC,0,3));
! if($d1 == 'htt' || $d1 == 'ftp' )
! {
! echo "Failed attempt to break in via an old Security
Hole!<br>\n";
! $GLOBALS['phpgw_info']['flags']['nodisplay'] = True;
! exit;
! }
! unset($d1);
!
! // NOTE: notify for email not available if the welcome screen show mail
option if off
! // just wondering, where and when is this pref array data created prior
to mail_msg object creation?
! if
(($GLOBALS['phpgw_info']['user']['preferences']['email']['mainscreen_showmail'])
! && (isset($GLOBALS['phpgw_info']['user']['apps']['email'])
! && $GLOBALS['phpgw_info']['user']['apps']['email']))
! {
! // ---- Create the base email Msg Class -----
! //$GLOBALS['phpgw']->msg = CreateObject("email.mail_msg");
! if (is_object($GLOBALS['phpgw']->msg))
! {
! //echo 'email hook_notifywindow: is_object test:
$GLOBALS[phpgw]->msg is already set, do not create again<br>'; }
! }
! else
! {
! //echo 'email hook_notifywindow: is_object test:
$GLOBALS[phpgw]->msg is NOT set, creating mail_msg object<br>'; }
! $GLOBALS['phpgw']->msg = CreateObject("email.mail_msg");
! }
! $args_array = Array();
! $args_array['folder'] = 'INBOX';
! $args_array['do_login'] = True;
! $GLOBALS['phpgw']->msg->begin_request($args_array);
! if
((string)$GLOBALS['phpgw']->msg->get_arg_value('mailsvr_stream') != '')
! {
! /* // this is the structure you will get
! $inbox_data['is_imap'] boolean - pop3 server do not
know what is "new" or not
! $inbox_data['folder_checked'] string - the folder
checked, as processed by the msg class
! $inbox_data['alert_string'] string - what to show the
user about this inbox check
! $inbox_data['number_new'] integer - for IMAP is
number "unseen"; for pop3 is number messages
! $inbox_data['number_all'] integer - for IMAP and pop3
is total number messages in that inbox
! */
! $inbox_data = Array();
! $inbox_data =
$GLOBALS['phpgw']->msg->new_message_check();
! }
! else
! {
! $inbox_data['alert_string'] = lang('<b>Mail error:</b>
Can not open connection to mail server');
! }
! // end the mailserver request (i.e. logout of the mail server)
! $GLOBALS['phpgw']->msg->end_request();
!
! if ($inbox_data['alert_string'] != '')
! {
! echo '<script language="JavaScript">'."\n";
! echo ' <!-- Activate Cloaking Device'."\n";
! echo ' function CheckEmail()'."\n";
! echo ' {'."\n";
! echo '
window.opener.document.location.href="'.$GLOBALS['phpgw']->link('/index.php','menuaction=email.uiindex.index').'";'."\n";
! echo ' }'."\n";
! echo ' //-->'."\n";
! echo ' </script>'."\n";
! echo "\r\n" . '<tr><td align="left"><!-- Mailbox info
X10 -->' . "\r\n";
! echo lang("EMail").' - <a
href="JavaScript:CheckEmail();">'.$inbox_data['alert_string'].'</a>';
! //echo '</font>';
! echo "\r\n".'<!-- Mailox info --></td></tr>'."\r\n";
! }
!
! }
! ?>
--- 1,114 ----
! <?php
!
/**************************************************************************\
! * phpGroupWare - E-Mail
*
! * http://www.phpgroupware.org
*
! * --------------------------------------------
*
! * This program is free software; you can redistribute it and/or
modify it*
! * under the terms of the GNU General Public License as published
by the *
! * Free Software Foundation; either version 2 of the License, or
(at your *
! * option) any later version.
*
!
\**************************************************************************/
!
! /* $Id$ */
!
! $d1 = strtolower(substr(APP_INC,0,3));
! if($d1 == 'htt' || $d1 == 'ftp' )
! {
! echo "Failed attempt to break in via an old Security
Hole!<br>\n";
! $GLOBALS['phpgw']->common->phpgw_exit();
! }
! unset($d1);
!
! // NOTE: notify for email not available if the welcome screen show mail
option if off
! // just wondering, where and when is this pref array data created prior
to mail_msg object creation?
! if
(($GLOBALS['phpgw_info']['user']['preferences']['email']['mainscreen_showmail'])
! && (isset($GLOBALS['phpgw_info']['user']['apps']['email'])
! && $GLOBALS['phpgw_info']['user']['apps']['email']))
! {
! $my_msg_bootstrap = '';
! $my_msg_bootstrap = CreateObject("email.msg_bootstrap");
!
$my_msg_bootstrap->ensure_mail_msg_exists('email.hook_notifywindow', 0);
!
! /* // this is the structure you will get
! $inbox_data['is_imap'] boolean - pop3 server do not know what
is "new" or not
! $inbox_data['folder_checked'] string - the folder checked, as
processed by the msg class
! $inbox_data['alert_string'] string - what to show the user
about this inbox check
! $inbox_data['number_new'] integer - for IMAP is number
"unseen"; for pop3 is number messages
! $inbox_data['number_all'] integer - for IMAP and pop3 is
total number messages in that inbox
! */
! $inbox_data = Array();
! $inbox_data = $GLOBALS['phpgw']->msg->new_message_check();
! // end the mailserver request (i.e. logout of the mail server)
! $GLOBALS['phpgw']->msg->end_request();
!
! $current_uid=$inbox_data['uidnext'];
! $old_uid=$GLOBALS['phpgw']->common->appsession();
! if(!empty($old_uid))
! {
! $new_msgs=$current_id-$old_id;
! }
! else
! {
! $new_msgs=$inbox_data['number_new'];
! }
!
! if ($inbox_data['alert_string'] != '')
! {
! echo '<script language="JavaScript">'."\n";
! echo ' <!-- Activate Cloaking Device'."\n";
! echo ' function CheckEmail()'."\n";
! echo ' {'."\n";
! echo '
window.opener.document.location.href="'.$GLOBALS['phpgw']->link('/index.php','menuaction=email.uiindex.index').'";'."\n";
! echo ' }'."\n";
! echo ' //-->'."\n";
! echo ' </script>'."\n";
! echo "\r\n" . '<tr><td align="left"><!-- Mailbox info
X10 -->' . "\r\n";
! echo '<table width="100%"
style="border-color:#000000;border-style:solid;border-width:1px;"><tr>'."\r\n";
! echo '<td width="20%" valign="middle"
align="center">'."\r\n";
! echo '<a href="JavaScript:CheckEmail();"><img
src="email/templates/default/images/navbar.png" alt="email icon"
border=0></a>'."\r\n";
! echo "<td>\r\n";
!
! if($new_msgs>0)
! {
! echo '<a
href="JavaScript:CheckEmail();"><b>New:</b> '.$new_msgs.'</a><br>';
! $urgent=true;
! }
! else
! {
! echo '<a
href="JavaScript:CheckEmail();"><b>New:</b> None</a><br>'."\r\n";
! }
!
! if($inbox_data['number_new']>0)
! {
! echo '<a
href="JavaScript:CheckEmail();"><b>Unread:</b>
'.$inbox_data['number_new'].'</a><br>'."\r\n";
! }
! else
! {
! echo '<a
href="JavaScript:CheckEmail();"><b>Unread:</b> None</a><br>'."\r\n";
! }
!
! if($inbox_data['number_all']<100)
! {
! echo '<a
href="JavaScript:CheckEmail();"><b>INBOX:</b>
'.$inbox_data['number_all'].'</a>'."\r\n";
! }
! else
! {
! echo '<a
href="JavaScript:CheckEmail();"><nobr><b>INBOX: TOO MANY</b></a></nobr>'."\r\n";
! }
!
! if($urgent)
! {
! echo '<script type="text/javascript"
language="Javascript 1.3">'."\r\n";
! echo '<!--'."\r\n";
! echo 'window.focus();'."\r\n";
! echo 'document.bgcolor="#ff6666";'."\r\n";
! echo '// -->'."\r\n";
! echo '</script>'."\r\n";
! }
!
! echo "</td></tr></table>\r\n";
! echo "\r\n".'<!-- Mailox info --></td></tr>'."\r\n";
! }
! $GLOBALS['phpgw']->common->appsession($current_uid);
! }
! ?>
Index: hook_notifywindow_simple.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/hook_notifywindow_simple.inc.php,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -r1.7 -r1.8
*** hook_notifywindow_simple.inc.php 28 Sep 2002 20:01:43 -0000 1.7
--- hook_notifywindow_simple.inc.php 25 Oct 2002 12:45:53 -0000 1.8
***************
*** 1,82 ****
! <?php
! /**************************************************************************\
! * phpGroupWare - E-Mail *
! * http://www.phpgroupware.org *
! * -------------------------------------------- *
! * This program is free software; you can redistribute it and/or modify it *
! * under the terms of the GNU General Public License as published by the *
! * Free Software Foundation; either version 2 of the License, or (at your *
! * option) any later version. *
! \**************************************************************************/
!
! /* $Id$ */
!
! $d1 = strtolower(substr(APP_INC,0,3));
! if($d1 == 'htt' || $d1 == 'ftp' )
! {
! echo "Failed attempt to break in via an old Security
Hole!<br>\n";
! $GLOBALS['phpgw_info']['flags']['nodisplay'] = True;
! exit;
! }
! unset($d1);
!
! // is this still needed?
! //$tmp_app_inc = $GLOBALS['phpgw_info']["server"]["app_inc"];
! //$GLOBALS['phpgw_info']["server"]["app_inc"] =
$GLOBALS['phpgw_info']["server"]["server_root"]."/email/inc";
!
!
if(($GLOBALS['phpgw_info']['user']['preferences']['email']['mainscreen_showmail'])
&&
! (isset($GLOBALS['phpgw_info']['user']['apps']['email'])) &&
! ($GLOBALS['phpgw_info']['user']['apps']['email']))
! {
! // ---- Create the base email Msg Class -----
! //$GLOBALS['phpgw']->msg = CreateObject("email.mail_msg");
! if(is_object($GLOBALS['phpgw']->msg))
! {
! //echo 'email hook_notifywindow_simple: is_object test:
$GLOBALS[phpgw]->msg is already set, do not create again<br>'; }
! }
! else
! {
! //echo 'email hook_notifywindow_simple: is_object test:
$GLOBALS[phpgw]->msg is NOT set, creating mail_msg object<br>'; }
! $GLOBALS['phpgw']->msg = CreateObject('email.mail_msg');
! }
! $args_array = Array();
! $args_array['folder'] = 'INBOX';
! $args_array['do_login'] = True;
! $GLOBALS['phpgw']->msg->begin_request($args_array);
!
if((string)$GLOBALS['phpgw']->msg->get_arg_value('mailsvr_stream') != '')
! {
! /* // this is the structure you will get
! $inbox_data['is_imap'] boolean - pop3 server do not
know what is "new" or not
! $inbox_data['folder_checked'] string - the folder
checked, as processed by the msg class
! $inbox_data['alert_string'] string - what to show the
user about this inbox check
! $inbox_data['number_new'] integer - for IMAP is
number "unseen"; for pop3 is number messages
! $inbox_data['number_all'] integer - for IMAP and pop3
is total number messages in that inbox
! */
! $inbox_data = Array();
! $inbox_data =
$GLOBALS['phpgw']->msg->new_message_check();
! if($inbox_data['is_imap'])
! {
! if($inbox_data['number_new'] > 0)
! {
! echo 'action:newmail:' .
$inbox_data['number_all'] . chr(13);
! }
! }
! else
! {
! if ($inbox_data['number_all'] > 0)
! {
! echo 'action:newmail' .
$inbox_data['number_all'] . chr(13);
! }
! }
! }
! else
! {
! echo lang('<b>Mail error:</b> Can not open connection
to mail server');
! }
! // end the mailserver request
! $GLOBALS['phpgw']->msg->end_request();
! }
!
! // is this still necessary?
! //$GLOBALS['phpgw_info']["server"]["app_inc"] = $tmp_app_inc;
! ?>
--- 1,55 ----
! <?php
! /**************************************************************************\
! * phpGroupWare - E-Mail
*
! * http://www.phpgroupware.org
*
! * --------------------------------------------
*
! * This program is free software; you can redistribute it and/or modify it
*
! * under the terms of the GNU General Public License as published by the
*
! * Free Software Foundation; either version 2 of the License, or (at your
*
! * option) any later version.
*
! \**************************************************************************/
!
! /* $Id$ */
!
! $d1 = strtolower(substr(APP_INC,0,3));
! if($d1 == 'htt' || $d1 == 'ftp' )
! {
! echo "Failed attempt to break in via an old Security
Hole!<br>\n";
! $GLOBALS['phpgw']->common->phpgw_exit();
! }
! unset($d1);
!
! if
(($GLOBALS['phpgw_info']["user"]["preferences"]["email"]["mainscreen_showmail"])
! && (isset($GLOBALS['phpgw_info']["user"]["apps"]["email"]))
! && ($GLOBALS['phpgw_info']["user"]["apps"]["email"]))
! {
! $my_msg_bootstrap = '';
! $my_msg_bootstrap = CreateObject("email.msg_bootstrap");
!
$my_msg_bootstrap->ensure_mail_msg_exists('email.hook_notifywindow_simple', 0);
! /* // this is the structure you will get
! $inbox_data['is_imap'] boolean - pop3 server do not know what
is "new" or not
! $inbox_data['folder_checked'] string - the folder checked, as
processed by the msg class
! $inbox_data['alert_string'] string - what to show the user
about this inbox check
! $inbox_data['number_new'] integer - for IMAP is number
"unseen"; for pop3 is number messages
! $inbox_data['number_all'] integer - for IMAP and pop3 is
total number messages in that inbox
! */
! $inbox_data = Array();
! $inbox_data = $GLOBALS['phpgw']->msg->new_message_check();
! if ($inbox_data['is_imap'])
! {
! if ($inbox_data['number_new'] > 0)
! {
! echo
'action:newmail:'.$inbox_data["number_all"].chr(13);
! }
! }
! else
! {
! if ($inbox_data['number_all'] > 0)
! {
! echo
'action:newmail'.$inbox_data["number_all"].chr(13);
! }
! }
! // end the mailserver request
! $GLOBALS['phpgw']->msg->end_request();
! }
! ?>
Index: hook_preferences.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/hook_preferences.inc.php,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -r1.12 -r1.13
*** hook_preferences.inc.php 4 Mar 2002 00:56:56 -0000 1.12
--- hook_preferences.inc.php 25 Oct 2002 12:45:53 -0000 1.13
***************
*** 1,25 ****
! <?php
! /**************************************************************************\
! * phpGroupWare *
! * http://www.phpgroupware.org *
! * Written by Joseph Engo <address@hidden> *
! * -------------------------------------------- *
! * This program is free software; you can redistribute it and/or modify it *
! * under the terms of the GNU General Public License as published by the *
! * Free Software Foundation; either version 2 of the License, or (at your *
! * option) any later version. *
! \**************************************************************************/
!
! /* $Id$ */
! {
! // Only Modify the $file and $title variables.....
! $title = $appname;
! $file = Array(
! 'E-Mail Preferences' =>
$GLOBALS['phpgw']->link('/index.php','menuaction=email.uipreferences.preferences'),
! 'Extra E-Mail Accounts' =>
$GLOBALS['phpgw']->link('/index.php','menuaction=email.uipreferences.ex_accounts_list'),
! 'E-Mail Filters' =>
$GLOBALS['phpgw']->link('/index.php','menuaction=email.uifilters.filters_list')
! );
! //Do not modify below this line
! display_section($appname,$title,$file);
! }
! ?>
--- 1,23 ----
! <?php
! /**************************************************************************\
! * phpGroupWare *
! * http://www.phpgroupware.org *
! * Written by Joseph Engo <address@hidden> *
! * -------------------------------------------- *
! * This program is free software; you can redistribute it and/or modify it *
! * under the terms of the GNU General Public License as published by the *
! * Free Software Foundation; either version 2 of the License, or (at your *
! * option) any later version. *
! \**************************************************************************/
!
! /* $Id$ */
! {
! $title = $appname;
! $file = Array(
! 'E-Mail Preferences' =>
$GLOBALS['phpgw']->link('/index.php','menuaction=email.uipreferences.preferences'),
! 'Extra E-Mail Accounts' =>
$GLOBALS['phpgw']->link('/index.php','menuaction=email.uipreferences.ex_accounts_list'),
! 'E-Mail Filters' =>
$GLOBALS['phpgw']->link('/index.php','menuaction=email.uifilters.filters_list')
! );
! display_section($appname,$title,$file);
! }
! ?>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Phpgroupware-cvs] CVS: email/inc class.boaction.inc.php,1.14,1.15 class.bocompose.inc.php,1.4,1.5 class.bofilters.inc.php,1.12,1.13 class.bofolder.inc.php,1.5,1.6 class.boindex.inc.php,1.26,1.27 class.bomessage.inc.php,1.10,1.11 class.bopreferences.inc.php,1.20,1.21 class.bosend.inc.php,1.9,1.10 class.mail_dcom.inc.php,1.8,1.9 class.mail_dcom_base.inc.php,1.6,1.7 class.mail_dcom_base_sock.inc.php,1.22,1.23 class.mail_dcom_imap.inc.php,1.19,1.20 class.mail_dcom_imap_sock.inc.php,1.13,1.14 class.mail_dcom_nntp.inc.php,1.2,1.3 class.mail_dcom_nntp_sock.inc.php,1.3,1.4 class.mail_dcom_pop3.inc.php,1.9,1.10 class.mail_dcom_pop3_sock.inc.php,1.18,1.19 class.mail_msg.inc.php,1.2,1.3 class.mail_msg_base.inc.php,1.75,1.76 class.mail_msg_display.inc.php,1.37,1.38 class.mail_msg_wrappers.inc.php,1.33,1.34 class.mail_send.inc.php,1.9,1.10 class.uicompose.inc.php,1.2,1.3 class.uifilters.inc.php,1.10,1.11 class.uifolder.inc.php,1.2,1.3 class.uiindex.inc.php,1.18,1.19 class.uimessage.inc.php,1.6,1.7 class.uipreferences.inc.php,1.14,1.15 functions.inc.php,1.114,1.115 hook_admin.inc.php,1.4,1.5 hook_email_add_def_pref.inc.php,1.4,1.5 hook_home.inc.php,1.54,1.55 hook_manual.inc.php,1.4,1.5 hook_notifywindow.inc.php,1.9,1.10 hook_notifywindow_simple.inc.php,1.7,1.8 hook_preferences.inc.php,1.12,1.13,
Dave Hall <address@hidden> <=
- Prev by Date:
[Phpgroupware-cvs] CVS: email/templates/default/images navbar.gif,1.1,1.2 navbar.png,1.3,1.4
- Next by Date:
[Phpgroupware-cvs] CVS: email/setup phpgw_da.lang,1.4,1.5 phpgw_de.lang,1.7,1.8 phpgw_en.lang,1.14,1.15 phpgw_es.lang,1.9,1.10 phpgw_fr.lang,1.7,1.8 phpgw_it.lang,1.3,1.4 phpgw_pt.lang,1.2,1.3 phpgw_sv.lang,1.2,1.3 setup.inc.php,1.13,1.14
- Previous by thread:
[Phpgroupware-cvs] CVS: email/templates/default/images navbar.gif,1.1,1.2 navbar.png,1.3,1.4
- Next by thread:
[Phpgroupware-cvs] CVS: email/setup phpgw_da.lang,1.4,1.5 phpgw_de.lang,1.7,1.8 phpgw_en.lang,1.14,1.15 phpgw_es.lang,1.9,1.10 phpgw_fr.lang,1.7,1.8 phpgw_it.lang,1.3,1.4 phpgw_pt.lang,1.2,1.3 phpgw_sv.lang,1.2,1.3 setup.inc.php,1.13,1.14
- Index(es):