4 * options page for IMAP info plugin
5 * Copyright (c) 1999-2004 The SquirrelMail Project Team
6 * Licensed under the GNU GPL. For full terms see the file COPYING.
8 * This is where it all happens :)
10 * Written by: Jason Munro
19 define('SM_PATH','../../');
21 /* SquirrelMail required files. */
22 require_once(SM_PATH
. 'include/validate.php');
23 require_once(SM_PATH
. 'functions/page_header.php');
24 require_once(SM_PATH
. 'functions/imap.php');
25 require_once(SM_PATH
. 'functions/forms.php');
26 require_once(SM_PATH
. 'plugins/info/functions.php');
28 global $username, $color, $folder_prefix, $default_charset;
29 $default_charset = strtoupper($default_charset);
30 displayPageHeader($color, 'None');
34 sqgetGlobalVar('username', $username, SQ_SESSION
);
35 sqgetGlobalVar('key', $key, SQ_COOKIE
);
36 sqgetGlobalVar('onetimepad', $onetimepad, SQ_SESSION
);
38 sqgetGlobalVar('submit', $submit, SQ_POST
);
40 for($i = 0; $i <= 9; $i++
){
41 $varc = 'CHECK_TEST_'.$i;
42 sqgetGlobalVar($varc, $
$varc, SQ_POST
);
44 sqgetGlobalVar($vart, $
$vart, SQ_POST
);
49 $imap_stream = sqimap_login($username, $key, $imapServerAddress, $imapPort, 0);
50 $caps_array = get_caps($imap_stream);
63 print "<BR><CENTER><B>IMAP server information</B></CENTER><BR>\n";
64 print "<CENTER><TABLE BGCOLOR=".$color[3]." WIDTH=\"100%\" BORDER=1 CELLPADDING=2><TR><TD BGCOLOR=".$color[3]."><BR>\n";
65 print "<CENTER><TABLE WIDTH=\"95%\" BORDER=1 BGCOLOR=".$color[3].">\n";
66 print "<TR><TD BGCOLOR=".$color[4]."><B>Server Capability response:</B><BR>\n";
68 foreach($caps_array[0] as $value) {
69 print htmlspecialchars($value);
72 print "</TD></TR><TR><TD>\n";
74 if (!isset($submit) ||
$submit == 'default') {
75 print "<br><small><font color=".$color[6].">Select the IMAP commands you would like to run.
76 Most commands require a selected mailbox so the select command is already setup.
77 You can clear all the commands and test your own IMAP command strings. The commands are
78 executed in order. The default values are simple IMAP commands using your default_charset
79 and folder_prefix from SquirrelMail when needed.<br><br>
80 <b><center>NOTE: These commands are live, any changes made will effect your current
81 email account.</b></center></font></small><br>\n";
82 if (!isset($submit)) {
87 print 'folder_prefix = ' . htmlspecialchars($folder_prefix)."<br />\n" .
88 'default_charset = '.htmlspecialchars($default_charset)."\n";
91 print "<br /></td></tr></table></center><br />\n";
94 if ($submit == 'submit') {
96 for ($i=0;$i<count($list);$i++
) {
97 $type[$list[$i]] = $
$list[$i];
101 elseif ($submit == 'clear') {
102 for ($i=0;$i<count($list);$i++
) {
103 $type[$list[$i]] = '';
107 elseif (!$submit ||
$submit == 'default') {
109 'TEST_0' => "SELECT $mailbox",
110 'TEST_1' => "STATUS $mailbox (MESSAGES RECENT)",
111 'TEST_2' => "EXAMINE $mailbox",
112 'TEST_3' => "SEARCH CHARSET \"$default_charset\" ALL *",
113 'TEST_4' => "THREAD REFERENCES $default_charset ALL",
114 'TEST_5' => "SORT (DATE) $default_charset ALL",
115 'TEST_6' => "FETCH 1:* (FLAGS BODY[HEADER.FIELDS (FROM DATE TO)])",
116 'TEST_7' => "LSUB \"$folder_prefix\" \"*%\"",
117 'TEST_8' => "LIST \"$folder_prefix*\" \"*\"",
121 print "<FORM ACTION=\"options.php\" METHOD=POST>\n";
122 print "<CENTER><TABLE BORDER=1>\n";
123 print "<TR><TH>Select</TH><TH>Test Name</TH><TH>IMAP command string</TH>\n";
124 print "</TR><TR><TD>\n";
126 foreach($type as $index=>$value) {
127 print "</TD></TR><TR><TD WIDTH=\"10%\"><INPUT TYPE=CHECKBOX VALUE=1 NAME=CHECK_$index";
128 if ($index == 'TEST_0' && ($submit == 'default' ||
$submit == '')) {
131 $check = "CHECK_".$index;
132 if (isset($
$check) && $submit != 'clear' && $submit != 'default') {
135 print "></TD><TD WIDTH=\"30%\">$index</TD><TD WIDTH=\"60%\">\n";
136 print addInput($index, $value, 60);
139 print "</td></tr></table></center><br>\n";
141 addSubmit('submit','submit').
142 addSubmit('clear','submit').
143 addSubmit('default','submit').
148 if ($submit == 'submit') {
149 foreach ($type as $index=>$value) {
150 $check = "CHECK_".$index;
151 if (isset($
$check)) {
152 $type[$index] = $
$index;
153 array_push($tests, $index);
156 for ($i=0;$i<count($tests);$i++
) {
157 print "<CENTER><TABLE WIDTH=\"95%\" BORDER=0 BGCOLOR=".$color[4].">\n";
158 print "<TR><TD><B>".$tests[$i]."</B></TD><TR>";
159 print "<TR><TD><SMALL><B><FONT COLOR=".$color[7].
160 ">Request:</FONT></SMALL></B></TD></TR>\n";
161 $response = imap_test($imap_stream, $type[$tests[$i]]);
162 print "<TR><TD><SMALL><B><FONT COLOR=".$color[7].
163 ">Response:</FONT></SMALL></B></TD></TR>\n";
165 print_response($response);
166 print "</TD><TR></TABLE></CENTER><BR>\n";
169 print "</TD></TR></TABLE></CENTER></BODY></HTML>";
170 sqimap_logout($imap_stream);
171 do_hook('info_bottom');