X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=plugins%2Fmail_fetch%2Foptions.php;h=8d667b756ea9ce4a88c61825bf3739eab126bd43;hb=c4faef335b2362c81b8ebf026d4066c12d70536c;hp=4f9abd17e8db460b7b5ad3fa641176d6bbbe366e;hpb=929da10db42a7764d611a14ac36b07a1a6089710;p=squirrelmail.git diff --git a/plugins/mail_fetch/options.php b/plugins/mail_fetch/options.php index 4f9abd17..8d667b75 100644 --- a/plugins/mail_fetch/options.php +++ b/plugins/mail_fetch/options.php @@ -5,7 +5,7 @@ * * Setup of the mailfetch plugin. * - * @copyright © 1999-2006 The SquirrelMail Project Team + * @copyright 1999-2020 The SquirrelMail Project Team * @license http://opensource.org/licenses/gpl-license.php GNU Public License * @version $Id$ * @package plugins @@ -20,6 +20,11 @@ include_once(SM_PATH . 'plugins/mail_fetch/functions.php' ); include_once(SM_PATH . 'functions/imap_general.php'); include_once(SM_PATH . 'functions/forms.php'); +// don't load this page if this plugin is not enabled +// +global $plugins; +if (!in_array('mail_fetch', $plugins)) exit; + /* globals */ sqgetGlobalVar('delimiter', $delimiter, SQ_SESSION); @@ -51,22 +56,46 @@ sqgetGlobalVar('mf_lmos', $mf_lmos, SQ_POST); sqgetGlobalVar('mf_auth', $mf_auth, SQ_POST); sqgetGlobalVar('mf_type', $mf_type, SQ_POST); sqgetGlobalVar('submit_mailfetch', $submit_mailfetch, SQ_POST); +$mf_port = trim($mf_port); +$mf_server = trim($mf_server); +global $imap_stream_options; // in case not defined in config /* end globals */ -displayPageHeader( $color, 'None' ); +displayPageHeader( $color ); switch( $mf_action ) { case 'add': + + $mf_action = 'config'; + + // restrict port number if necessary + // + $message = validate_mail_fetch_port_number($mf_port); + if (!empty($message)) break; + + // restrict server address if necessary + // + $message = validate_mail_fetch_server_address($mf_server); + if (!empty($message)) break; + if ($mf_sn<1) $mf_sn=0; if (!isset($mf_server)) return; setPref($data_dir,$username,"mailfetch_server_$mf_sn", (isset($mf_server)?$mf_server:"")); setPref($data_dir,$username,"mailfetch_port_$mf_sn", (isset($mf_port)?$mf_port:110)); setPref($data_dir,$username,"mailfetch_alias_$mf_sn", (isset($mf_alias)?$mf_alias:"")); setPref($data_dir,$username,"mailfetch_user_$mf_sn",(isset($mf_user)?$mf_user:"")); - setPref($data_dir,$username,"mailfetch_pass_$mf_sn",(isset($mf_pass)?encrypt( $mf_pass ) :"")); - if( isset($mf_cypher) && $mf_cypher <> 'on' ) SetPref($data_dir,$username,'mailfetch_cypher', 'on'); + $pass = ""; + if ( isset($mf_pass) ) { + if ( isset($mf_cypher) && $mf_cypher == 'on' ) { + setPref($data_dir,$username,"mailfetch_cypher", ($mf_cypher == 'on' ? 'on' : '')); + $pass = encrypt($mf_pass); + } else { + $pass = $mf_pass; + } + } + setPref($data_dir,$username,"mailfetch_pass_$mf_sn",$pass); setPref($data_dir,$username,"mailfetch_lmos_$mf_sn",(isset($mf_lmos)?$mf_lmos:"")); setPref($data_dir,$username,"mailfetch_login_$mf_sn",(isset($mf_login)?$mf_login:"")); setPref($data_dir,$username,"mailfetch_fref_$mf_sn",(isset($mf_fref)?$mf_fref:"")); @@ -75,17 +104,44 @@ switch( $mf_action ) { setPref($data_dir,$username,"mailfetch_type_$mf_sn",(isset($mf_type)?$mf_type:MAIL_FETCH_USE_PLAIN)); $mf_sn++; setPref($data_dir,$username,'mailfetch_server_number', $mf_sn); - $mf_action = 'config'; break; + + // modify a server + // case 'confirm_modify': - //modify a server + + // restrict port number if necessary + // + $message = validate_mail_fetch_port_number($mf_port); + if (!empty($message)) { + $mf_action = 'Modify'; + break; + } + + // restrict server address if necessary + // + $message = validate_mail_fetch_server_address($mf_server); + if (!empty($message)) { + $mf_action = 'Modify'; + break; + } + if (!isset($mf_server)) return; setPref($data_dir,$username,"mailfetch_server_$mf_sn", (isset($mf_server)?$mf_server:"")); setPref($data_dir,$username,"mailfetch_port_$mf_sn", (isset($mf_port)?$mf_port:110)); setPref($data_dir,$username,"mailfetch_alias_$mf_sn", (isset($mf_alias)?$mf_alias:"")); setPref($data_dir,$username,"mailfetch_user_$mf_sn",(isset($mf_user)?$mf_user:"")); - setPref($data_dir,$username,"mailfetch_pass_$mf_sn",(isset($mf_pass)?encrypt( $mf_pass ) :"")); - if( $mf_cypher <> 'on' ) setPref($data_dir,$username,"mailfetch_cypher", 'on'); + $pass = ""; + if ( isset($mf_pass) ) { + if ( isset($mf_cypher) && $mf_cypher == 'on' ) { + setPref($data_dir,$username,"mailfetch_cypher", 'on'); + $pass = encrypt($mf_pass); + } else { + setPref($data_dir,$username,"mailfetch_cypher", ''); + $pass = $mf_pass; + } + } + setPref($data_dir,$username,"mailfetch_pass_$mf_sn",$pass); setPref($data_dir,$username,"mailfetch_lmos_$mf_sn",(isset($mf_lmos)?$mf_lmos:"")); setPref($data_dir,$username,"mailfetch_login_$mf_sn",(isset($mf_login)?$mf_login:"")); setPref($data_dir,$username,"mailfetch_fref_$mf_sn",(isset($mf_fref)?$mf_fref:"")); @@ -187,6 +243,14 @@ echo '
' . ) , 'center', '', 'width="95%"' ); +// display error or other messages if necessary +// +if (!empty($message)) { + echo html_tag( 'table', '', 'center', '', 'width="70%" cellpadding="5" cellspacing="1"' ) . + html_tag( 'tr', + html_tag( 'td', '' . $message . '', 'center', $color[2] )); +} + switch( $mf_action ) { case 'config': echo html_tag( 'table', '', 'center', '', 'width="70%" cellpadding="5" cellspacing="1"' ) . @@ -238,7 +302,7 @@ switch( $mf_action ) { html_tag( 'tr' ) . html_tag( 'th', _("Store in Folder:"), 'right' ) . html_tag( 'td', '', 'left' ); - $imapConnection = sqimap_login ($username, false, $imapServerAddress, $imapPort, 0); + $imapConnection = sqimap_login ($username, false, $imapServerAddress, $imapPort, 0, $imap_stream_options); $boxes = sqimap_mailbox_list($imapConnection); echo ''; for ($i=0;$i<$mailfetch_server_number;$i++) { echo ""; + sm_encode_html_special_chars( (($mailfetch_alias_[$i]=='')?$mailfetch_server_[$i]:$mailfetch_alias_[$i])) . ""; } echo ''. '  '. @@ -305,7 +369,7 @@ switch( $mf_action ) { html_tag( 'td', "" . '' . - '
' . _("Selected Server:") . " " . htmlspecialchars($mailfetch_server_[$mf_sn]) . "
" . + '
' . _("Selected Server:") . " " . sm_encode_html_special_chars($mailfetch_server_[$mf_sn]) . "
" . _("Confirm delete of selected server?") . '

' . '' . '
' , @@ -333,27 +397,27 @@ switch( $mf_action ) { html_tag( 'tr', html_tag( 'th', _("Server:"), 'right' ) . html_tag( 'td', '', 'left' ) + sm_encode_html_special_chars($mailfetch_server_[$mf_sn]) . '" size="40" />', 'left' ) ) . html_tag( 'tr', html_tag( 'th', _("Port:"), 'right' ) . html_tag( 'td', '', 'left' ) + sm_encode_html_special_chars($mailfetch_port_[$mf_sn]) . '" size="40" />', 'left' ) ) . html_tag( 'tr', html_tag( 'th', _("Alias:"), 'right' ) . html_tag( 'td', '', 'left' ) + sm_encode_html_special_chars($mailfetch_alias_[$mf_sn]) . '" size="40" />', 'left' ) ) . html_tag( 'tr', html_tag( 'th', _("Username:"), 'right' ) . html_tag( 'td', '', 'left' ) + sm_encode_html_special_chars($mailfetch_user_[$mf_sn]) . '" size="20" />', 'left' ) ) . html_tag( 'tr', html_tag( 'th', _("Password:"), 'right' ) . html_tag( 'td', '', 'left' ) + sm_encode_html_special_chars($mailfetch_pass_[$mf_sn]) . '" size="20" />', 'left' ) ) . html_tag( 'tr', html_tag( 'th', _("Authentication type:"), 'right' ) . @@ -373,7 +437,7 @@ switch( $mf_action ) { html_tag( 'th', _("Store in Folder:"), 'right' ) . html_tag( 'td', '', 'left' ); - $imapConnection = sqimap_login ($username, false, $imapServerAddress, $imapPort, 0); + $imapConnection = sqimap_login ($username, false, $imapServerAddress, $imapPort, 0, $imap_stream_options); $boxes = sqimap_mailbox_list($imapConnection); echo '