X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=plugins%2Fmail_fetch%2Foptions.php;h=aaec073d465e638aea54257e907223054c7bcbae;hb=c0d968010e710870fdfee2f22d7cc9fad370c7a9;hp=6cea52716e5acc974e28b5e49f65255e85532714;hpb=202bcbcc2b67c7c153db1b09b608b62beeba0496;p=squirrelmail.git diff --git a/plugins/mail_fetch/options.php b/plugins/mail_fetch/options.php index 6cea5271..aaec073d 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-2012 The SquirrelMail Project Team * @license http://opensource.org/licenses/gpl-license.php GNU Public License * @version $Id$ * @package plugins @@ -16,13 +16,16 @@ * Include the SquirrelMail initialization file. */ require('../../include/init.php'); - +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('username', $username, SQ_SESSION); -sqgetGlobalVar('key', $key, SQ_COOKIE); -sqgetGlobalVar('onetimepad', $onetimepad, SQ_SESSION); sqgetGlobalVar('delimiter', $delimiter, SQ_SESSION); if(!sqgetGlobalVar('mf_cypher', $mf_cypher, SQ_POST)) { @@ -50,44 +53,100 @@ sqgetGlobalVar('mf_subfolder', $mf_subfolder, SQ_POST); sqgetGlobalVar('mf_login', $mf_login, SQ_POST); sqgetGlobalVar('mf_fref', $mf_fref, SQ_POST); 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); /* 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:"")); setPref($data_dir,$username,"mailfetch_subfolder_$mf_sn",(isset($mf_subfolder)?$mf_subfolder:"")); + setPref($data_dir,$username,"mailfetch_auth_$mf_sn",(isset($mf_auth)?$mf_auth:MAIL_FETCH_AUTH_USER)); + 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:"")); setPref($data_dir,$username,"mailfetch_subfolder_$mf_sn",(isset($mf_subfolder)?$mf_subfolder:"")); + setPref($data_dir,$username,"mailfetch_auth_$mf_sn",(isset($mf_auth)?$mf_auth:MAIL_FETCH_AUTH_USER)); + setPref($data_dir,$username,"mailfetch_type_$mf_sn",(isset($mf_type)?$mf_type:MAIL_FETCH_USE_PLAIN)); $mf_action = 'config'; break; case 'confirm_delete': @@ -121,6 +180,10 @@ switch( $mf_action ) { getPref($data_dir,$username, 'mailfetch_fref_'.$tmp)); setPref($data_dir,$username,'mailfetch_subfolder_'.$i, getPref($data_dir,$username, 'mailfetch_subfolder_'.$tmp)); + setPref($data_dir,$username,'mailfetch_auth_'.$i, + getPref($data_dir,$username, 'mailfetch_auth_'.$tmp,MAIL_FETCH_AUTH_USER)); + setPref($data_dir,$username,'mailfetch_type_'.$i, + getPref($data_dir,$username, 'mailfetch_type_'.$tmp,MAIL_FETCH_USE_PLAIN)); setPref($data_dir,$username,'mailfetch_uidl_'.$i, getPref($data_dir,$username, 'mailfetch_uidl_'.$tmp)); } @@ -146,6 +209,8 @@ for ($i=0;$i<$mailfetch_server_number;$i++) { $mailfetch_fref_[$i] = getPref($data_dir, $username, "mailfetch_fref_$i"); $mailfetch_uidl_[$i] = getPref($data_dir, $username, "mailfetch_uidl_$i"); $mailfetch_subfolder_[$i] = getPref($data_dir, $username, "mailfetch_subfolder_$i"); + $mailfetch_auth_[$i] = getPref($data_dir, $username, "mailfetch_auth_$i",MAIL_FETCH_AUTH_USER); + $mailfetch_type_[$i] = getPref($data_dir, $username, "mailfetch_type_$i",MAIL_FETCH_USE_PLAIN); if( $mailfetch_cypher == 'on' ) $mailfetch_pass_[$i] = decrypt( $mailfetch_pass_[$i] ); } @@ -177,6 +242,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"' ) . @@ -209,10 +282,26 @@ switch( $mf_action ) { html_tag( 'th', _("Password:"), 'right' ) . html_tag( 'td', '', 'left' ) ) . + html_tag( 'tr', + html_tag( 'th', _("Authentication type:"), 'right' ) . + html_tag( 'td', addSelect('mf_auth', + array(MAIL_FETCH_AUTH_USER => _("USER"), + MAIL_FETCH_AUTH_APOP => _("APOP"), + MAIL_FETCH_AUTH_RFC1939 => _("APOP or USER")), + MAIL_FETCH_AUTH_USER,true), 'left' ) + ) . + html_tag( 'tr', + html_tag( 'th', _("Connection type:"), 'right' ) . + html_tag( 'td', addSelect('mf_type', + array(MAIL_FETCH_USE_PLAIN => _("Plain text"), + MAIL_FETCH_USE_TLS => _("Use TLS"), + MAIL_FETCH_USE_STLS => _("Use StartTLS")), + MAIL_FETCH_USE_PLAIN,true), 'left' ) + ) . html_tag( 'tr' ) . html_tag( 'th', _("Store in Folder:"), 'right' ) . html_tag( 'td', '', 'left' ); - $imapConnection = sqimap_login ($username, $key, $imapServerAddress, $imapPort, 0); + $imapConnection = sqimap_login ($username, false, $imapServerAddress, $imapPort, 0); $boxes = sqimap_mailbox_list($imapConnection); echo '', 'left' ) ) . + html_tag( 'tr', + html_tag( 'th', _("Authentication type:"), 'right' ) . + html_tag( 'td', addSelect('mf_auth',array(MAIL_FETCH_AUTH_USER => _("USER"), + MAIL_FETCH_AUTH_APOP => _("APOP"), + MAIL_FETCH_AUTH_RFC1939 => _("APOP or USER")), + $mailfetch_auth_[$mf_sn],true), 'left' ) + ) . + html_tag( 'tr', + html_tag( 'th', _("Connection type:"), 'right' ) . + html_tag( 'td', addSelect('mf_type',array(MAIL_FETCH_USE_PLAIN => _("Plain text"), + MAIL_FETCH_USE_TLS => _("Use TLS"), + MAIL_FETCH_USE_STLS => _("Use StartTLS")), + $mailfetch_type_[$mf_sn],true), 'left' ) + ) . html_tag( 'tr' ) . html_tag( 'th', _("Store in Folder:"), 'right' ) . html_tag( 'td', '', 'left' ); - $imapConnection = sqimap_login ($username, $key, $imapServerAddress, $imapPort, 0); + $imapConnection = sqimap_login ($username, false, $imapServerAddress, $imapPort, 0); $boxes = sqimap_mailbox_list($imapConnection); echo '