Add RFC 2231 support. Thanks to Piotr Pawlow. (#2501379)
[squirrelmail.git] / plugins / mail_fetch / options.php
index 6bf63ca25f0baea3c43d668472493885834be182..e74766f4cb119ee1d9d9f3f111e9da48d24de13e 100644 (file)
@@ -5,23 +5,27 @@
  *
  * Setup of the mailfetch plugin.
  *
- * @copyright © 1999-2006 The SquirrelMail Project Team
+ * @copyright © 1999-2007 The SquirrelMail Project Team
  * @license http://opensource.org/licenses/gpl-license.php GNU Public License
  * @version $Id$
  * @package plugins
  * @subpackage mail_fetch
  */
 
-/** @ignore */
-define('SM_PATH','../../');
+/**
+ * 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');
 
-require_once(SM_PATH . 'include/validate.php');
-include_once(SM_PATH . 'functions/imap.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)) {
@@ -49,12 +53,14 @@ 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);
 
 
 /* end globals */
 
-displayPageHeader( $color, 'None' );
+displayPageHeader( $color );
 
 switch( $mf_action ) {
  case 'add':
@@ -64,12 +70,22 @@ switch( $mf_action ) {
      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';
@@ -81,12 +97,23 @@ switch( $mf_action ) {
      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':
@@ -120,6 +147,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));
          }
@@ -145,6 +176,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] );
 }
 
@@ -208,10 +241,26 @@ switch( $mf_action ) {
              html_tag( 'th', _("Password:"), 'right' ) .
              html_tag( 'td', '<input type="password" name="mf_pass" value="" size="20" />', '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 '<select name="mf_subfolder">';
 
@@ -328,11 +377,25 @@ switch( $mf_action ) {
                  html_tag( 'td', '<input type="password" name="mf_pass" value="' .
                            htmlspecialchars($mailfetch_pass_[$mf_sn]) . '" size="20" />', '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 '<select name="mf_subfolder">';
      $selected = 0;
@@ -384,5 +447,5 @@ switch( $mf_action ) {
                        ) ,
                    'center', '', 'width="70%"' );
 }
-?>
-</body></html>
\ No newline at end of file
+
+$oTemplate->display('footer.tpl');