4 * mail_fetch/options.php
6 * Setup of the mailfetch plugin.
8 * @copyright © 1999-2006 The SquirrelMail Project Team
9 * @license http://opensource.org/licenses/gpl-license.php GNU Public License
12 * @subpackage mail_fetch
16 * Include the SquirrelMail initialization file.
18 require('../../include/init.php');
20 include_once(SM_PATH
. 'functions/imap_general.php');
23 sqgetGlobalVar('username', $username, SQ_SESSION
);
24 sqgetGlobalVar('key', $key, SQ_COOKIE
);
25 sqgetGlobalVar('onetimepad', $onetimepad, SQ_SESSION
);
26 sqgetGlobalVar('delimiter', $delimiter, SQ_SESSION
);
28 if(!sqgetGlobalVar('mf_cypher', $mf_cypher, SQ_POST
)) {
31 if(! sqgetGlobalVar('mf_action', $mf_action, SQ_POST
) ) {
32 if (sqgetGlobalVar('mf_action_mod', $mf_action_mod, SQ_POST
)) {
33 $mf_action = 'Modify';
35 elseif (sqgetGlobalVar('mf_action_del', $mf_action_del, SQ_POST
)) {
36 $mf_action = 'Delete';
39 $mf_action = 'config';
43 sqgetGlobalVar('mf_sn', $mf_sn, SQ_POST
);
44 sqgetGlobalVar('mf_server', $mf_server, SQ_POST
);
45 sqgetGlobalVar('mf_port', $mf_port, SQ_POST
);
46 sqgetGlobalVar('mf_alias', $mf_alias, SQ_POST
);
47 sqgetGlobalVar('mf_user', $mf_user, SQ_POST
);
48 sqgetGlobalVar('mf_pass', $mf_pass, SQ_POST
);
49 sqgetGlobalVar('mf_subfolder', $mf_subfolder, SQ_POST
);
50 sqgetGlobalVar('mf_login', $mf_login, SQ_POST
);
51 sqgetGlobalVar('mf_fref', $mf_fref, SQ_POST
);
52 sqgetGlobalVar('mf_lmos', $mf_lmos, SQ_POST
);
53 sqgetGlobalVar('submit_mailfetch', $submit_mailfetch, SQ_POST
);
58 displayPageHeader( $color, 'None' );
60 switch( $mf_action ) {
62 if ($mf_sn<1) $mf_sn=0;
63 if (!isset($mf_server)) return;
64 setPref($data_dir,$username,"mailfetch_server_$mf_sn", (isset($mf_server)?
$mf_server:""));
65 setPref($data_dir,$username,"mailfetch_port_$mf_sn", (isset($mf_port)?
$mf_port:110));
66 setPref($data_dir,$username,"mailfetch_alias_$mf_sn", (isset($mf_alias)?
$mf_alias:""));
67 setPref($data_dir,$username,"mailfetch_user_$mf_sn",(isset($mf_user)?
$mf_user:""));
68 setPref($data_dir,$username,"mailfetch_pass_$mf_sn",(isset($mf_pass)?
encrypt( $mf_pass ) :""));
69 if( isset($mf_cypher) && $mf_cypher <> 'on' ) SetPref($data_dir,$username,'mailfetch_cypher', 'on');
70 setPref($data_dir,$username,"mailfetch_lmos_$mf_sn",(isset($mf_lmos)?
$mf_lmos:""));
71 setPref($data_dir,$username,"mailfetch_login_$mf_sn",(isset($mf_login)?
$mf_login:""));
72 setPref($data_dir,$username,"mailfetch_fref_$mf_sn",(isset($mf_fref)?
$mf_fref:""));
73 setPref($data_dir,$username,"mailfetch_subfolder_$mf_sn",(isset($mf_subfolder)?
$mf_subfolder:""));
75 setPref($data_dir,$username,'mailfetch_server_number', $mf_sn);
76 $mf_action = 'config';
78 case 'confirm_modify':
80 if (!isset($mf_server)) return;
81 setPref($data_dir,$username,"mailfetch_server_$mf_sn", (isset($mf_server)?
$mf_server:""));
82 setPref($data_dir,$username,"mailfetch_port_$mf_sn", (isset($mf_port)?
$mf_port:110));
83 setPref($data_dir,$username,"mailfetch_alias_$mf_sn", (isset($mf_alias)?
$mf_alias:""));
84 setPref($data_dir,$username,"mailfetch_user_$mf_sn",(isset($mf_user)?
$mf_user:""));
85 setPref($data_dir,$username,"mailfetch_pass_$mf_sn",(isset($mf_pass)?
encrypt( $mf_pass ) :""));
86 if( $mf_cypher <> 'on' ) setPref($data_dir,$username,"mailfetch_cypher", 'on');
87 setPref($data_dir,$username,"mailfetch_lmos_$mf_sn",(isset($mf_lmos)?
$mf_lmos:""));
88 setPref($data_dir,$username,"mailfetch_login_$mf_sn",(isset($mf_login)?
$mf_login:""));
89 setPref($data_dir,$username,"mailfetch_fref_$mf_sn",(isset($mf_fref)?
$mf_fref:""));
90 setPref($data_dir,$username,"mailfetch_subfolder_$mf_sn",(isset($mf_subfolder)?
$mf_subfolder:""));
91 $mf_action = 'config';
93 case 'confirm_delete':
95 $mailfetch_server_number = getPref($data_dir, $username, "mailfetch_server_number");
96 if ($mf_sn+
1==$mailfetch_server_number) {
97 //is the last server, whe can only decrase $mailfetch_server_number
98 $mailfetch_server_number--;
99 setPref($data_dir,$username,"mailfetch_server_number", $mailfetch_server_number);
101 //if not the last, all the sequel server come up one step
102 //then whe decrase $mailfetch_server_number
103 $mailfetch_server_number--;
104 for ($i=$mf_sn;$i<$mailfetch_server_number;$i++
) {
106 setPref($data_dir,$username,'mailfetch_server_'.$i,
107 getPref($data_dir,$username, 'mailfetch_server_'.$tmp));
108 setPref($data_dir,$username,'mailfetch_port_'.$i,
109 getPref($data_dir,$username, 'mailfetch_port_'.$tmp));
110 setPref($data_dir,$username,'mailfetch_alias_'.$i,
111 getPref($data_dir,$username, 'mailfetch_alias_'.$tmp));
112 setPref($data_dir,$username,'mailfetch_user_'.$i,
113 getPref($data_dir,$username, 'mailfetch_user_'.$tmp));
114 setPref($data_dir,$username,'mailfetch_pass_'.$i,
115 getPref($data_dir,$username, 'mailfetch_pass_'.$tmp));
116 setPref($data_dir,$username,'mailfetch_lmos_'.$i,
117 getPref($data_dir,$username, 'mailfetch_lmos_'.$tmp));
118 setPref($data_dir,$username,'mailfetch_login_'.$i,
119 getPref($data_dir,$username, 'mailfetch_login_'.$tmp));
120 setPref($data_dir,$username,'mailfetch_fref_'.$i,
121 getPref($data_dir,$username, 'mailfetch_fref_'.$tmp));
122 setPref($data_dir,$username,'mailfetch_subfolder_'.$i,
123 getPref($data_dir,$username, 'mailfetch_subfolder_'.$tmp));
124 setPref($data_dir,$username,'mailfetch_uidl_'.$i,
125 getPref($data_dir,$username, 'mailfetch_uidl_'.$tmp));
127 setPref($data_dir,$username,"mailfetch_server_number", $mailfetch_server_number);
129 $mf_action = 'config';
133 $mailfetch_server_number = getPref($data_dir, $username, 'mailfetch_server_number', 0);
134 $mailfetch_cypher = getPref( $data_dir, $username, 'mailfetch_cypher' );
135 if ($mailfetch_server_number<1) {
136 $mailfetch_server_number=0;
138 for ($i=0;$i<$mailfetch_server_number;$i++
) {
139 $mailfetch_server_[$i] = getPref($data_dir, $username, "mailfetch_server_$i");
140 $mailfetch_port_[$i] = getPref($data_dir, $username, "mailfetch_port_$i");
141 $mailfetch_alias_[$i] = getPref($data_dir, $username, "mailfetch_alias_$i");
142 $mailfetch_user_[$i] = getPref($data_dir, $username, "mailfetch_user_$i");
143 $mailfetch_pass_[$i] = getPref($data_dir, $username, "mailfetch_pass_$i");
144 $mailfetch_lmos_[$i] = getPref($data_dir, $username, "mailfetch_lmos_$i");
145 $mailfetch_login_[$i] = getPref($data_dir, $username, "mailfetch_login_$i");
146 $mailfetch_fref_[$i] = getPref($data_dir, $username, "mailfetch_fref_$i");
147 $mailfetch_uidl_[$i] = getPref($data_dir, $username, "mailfetch_uidl_$i");
148 $mailfetch_subfolder_[$i] = getPref($data_dir, $username, "mailfetch_subfolder_$i");
149 if( $mailfetch_cypher == 'on' ) $mailfetch_pass_[$i] = decrypt( $mailfetch_pass_[$i] );
152 echo '<br /><form method="post" action="'.$PHP_SELF.'">' .
156 '<b>' . _("Remote POP server settings") . '</b>',
157 'center', $color[0] )
159 'center', '', 'width="95%"' ) .
163 _("You should be aware that the encryption used to store your password is not perfectly secure. However, if you are using pop, there is inherently no encryption anyway. Additionally, the encryption that we do to save it on the server can be undone by a hacker reading the source to this file.") ,
168 _("If you leave password empty, it will be asked when you fetch mail.") ,
173 '<input type="checkbox" name="mf_cypher" ' .
174 (($mailfetch_cypher=='on')?
'checked="checked" />':' />') .
175 _("Encrypt passwords (informative only)") ,
178 'center', '', 'width="95%"' );
180 switch( $mf_action ) {
182 echo html_tag( 'table', '', 'center', '', 'width="70%" cellpadding="5" cellspacing="1"' ) .
184 html_tag( 'td', '<b>' . _("Add Server") . '</b>', 'center', $color[9] )
187 html_tag( 'td', '', 'center', $color[0] ) .
189 "<input type=\"hidden\" name=\"mf_sn\" value=\"$mailfetch_server_number\" />" .
190 '<input type="hidden" name="mf_action" value="add" />' .
191 html_tag( 'table' ) .
193 html_tag( 'th', _("Server:"), 'right' ) .
194 html_tag( 'td', '<input type="text" name="mf_server" value="" size="40" />', 'left' )
197 html_tag( 'th', _("Port:"), 'right') .
198 html_tag( 'td', '<input type="text" name="mf_port" value="110" size="20" />', 'left')
201 html_tag( 'th', _("Alias:"), 'right' ) .
202 html_tag( 'td', '<input type="text" name="mf_alias" value="" size="20" />', 'left' )
205 html_tag( 'th', _("Username:"), 'right' ) .
206 html_tag( 'td', '<input type="text" name="mf_user" value="" size="20" />', 'left' )
209 html_tag( 'th', _("Password:"), 'right' ) .
210 html_tag( 'td', '<input type="password" name="mf_pass" value="" size="20" />', 'left' )
213 html_tag( 'th', _("Store in Folder:"), 'right' ) .
214 html_tag( 'td', '', 'left' );
215 $imapConnection = sqimap_login ($username, $key, $imapServerAddress, $imapPort, 0);
216 $boxes = sqimap_mailbox_list($imapConnection);
217 echo '<select name="mf_subfolder">';
220 if ( isset($mf_subfolder) )
221 $selected = array(strtolower($mf_subfolder));
222 echo sqimap_mailbox_option_list($imapConnection, $selected);
223 echo '</select></td></tr>' .
225 html_tag( 'th', ' ', 'right' ) .
226 html_tag( 'td', '<input type="checkbox" name="mf_lmos" checked="checked" />' . _("Leave Mail on Server"), 'left' )
229 html_tag( 'th', ' ', 'right' ) .
230 html_tag( 'td', '<input type="checkbox" name="mf_login" />' . _("Check mail at login"), 'left' )
233 html_tag( 'th', ' ', 'right' ) .
234 html_tag( 'td', '<input type="checkbox" name="mf_fref" />' . _("Check mail at folder refresh"), 'left' )
238 '<input type="submit" name="submit_mailfetch" value="' . _("Add Server") . '" />',
239 'center', '', 'colspan="2"' )
241 '</table></td></tr></table></form>';
244 echo '<font size="-5"><br /></font>' .
245 html_tag( 'table', '', 'center', '', 'width="70%" cellpadding="5" cellspacing="1"' ) .
247 html_tag( 'td', '<b>' . _("Modify Server") . '</b>', 'center', $color[9] )
250 html_tag( 'td', '', 'center', $color[0] );
251 if ($mailfetch_server_number>0) {
252 echo "<form action=\"$PHP_SELF\" method=\"post\" target=\"_self\">";
253 echo '<b>' . _("Server Name:") . '</b> <select name="mf_sn">';
254 for ($i=0;$i<$mailfetch_server_number;$i++
) {
255 echo "<option value=\"$i\">" .
256 htmlspecialchars( (($mailfetch_alias_[$i]=='')?
$mailfetch_server_[$i]:$mailfetch_alias_[$i])) . "</option>";
259 ' <input type="submit" name="mf_action_mod" value="' . _("Modify") . '" />'.
260 ' <input type="submit" name="mf_action_del" value="' . _("Delete") . '" />'.
263 echo _("No servers known.");
265 echo '</td></tr></table>';
267 case 'Delete': //erase confirmation about a server
268 echo html_tag( 'table',
270 html_tag( 'td', '<b>' . _("Fetching Servers") . '</b>', 'center', $color[0] )
272 'center', '', 'width="95%" cellpadding="5" cellspacing="1"' ) .
276 html_tag( 'td', '<b>' . _("Confirm Deletion of a Server") . '</b>', 'center', $color[9] )
280 "<input type=\"hidden\" name=\"mf_sn\" value=\"$mf_sn\" />" .
281 '<input type="hidden" name="mf_action" value="confirm_delete" />' .
282 '<br />' . _("Selected Server:") . " <b>" . htmlspecialchars($mailfetch_server_[$mf_sn]) . "</b><br />" .
283 _("Confirm delete of selected server?") . '<br /><br />' .
284 '<input type="submit" name="submit_mailfetch" value="' . _("Confirm Delete") . '" />' .
286 'center', $color[9] )
288 'center', '', 'width="70%" cellpadding="5" cellspacing="1"' );
289 break; //modify a server
291 echo html_tag( 'table',
293 html_tag( 'td', '<b>' . _("Fetching Servers") . '</b>', 'center', $color[0] )
295 'center', '', 'width="95%" cellpadding="5" cellspacing="1"' ) .
297 html_tag( 'table', '', 'center', '', 'width="70%" cellpadding="5" cellspacing="1"' ) .
299 html_tag( 'td', '<b>' . _("Modify Server") . '</b>', 'center', $color[9] )
302 html_tag( 'td', '', 'center', $color[0] ) .
304 "<input type=\"hidden\" name=\"mf_sn\" value=\"$mf_sn\" />" .
305 '<input type="hidden" name="mf_action" value="confirm_modify" />' .
306 html_tag( 'table' ) .
308 html_tag( 'th', _("Server:"), 'right' ) .
309 html_tag( 'td', '<input type="text" name="mf_server" value="' .
310 htmlspecialchars($mailfetch_server_[$mf_sn]) . '" size="40" />', 'left' )
313 html_tag( 'th', _("Port:"), 'right' ) .
314 html_tag( 'td', '<input type="text" name="mf_port" value="' .
315 htmlspecialchars($mailfetch_port_[$mf_sn]) . '" size="40" />', 'left' )
318 html_tag( 'th', _("Alias:"), 'right' ) .
319 html_tag( 'td', '<input type="text" name="mf_alias" value="' .
320 htmlspecialchars($mailfetch_alias_[$mf_sn]) . '" size="40" />', 'left' )
323 html_tag( 'th', _("Username:"), 'right' ) .
324 html_tag( 'td', '<input type="text" name="mf_user" value="' .
325 htmlspecialchars($mailfetch_user_[$mf_sn]) . '" size="20" />', 'left' )
328 html_tag( 'th', _("Password:"), 'right' ) .
329 html_tag( 'td', '<input type="password" name="mf_pass" value="' .
330 htmlspecialchars($mailfetch_pass_[$mf_sn]) . '" size="20" />', 'left' )
333 html_tag( 'th', _("Store in Folder:"), 'right' ) .
334 html_tag( 'td', '', 'left' );
336 $imapConnection = sqimap_login ($username, $key, $imapServerAddress, $imapPort, 0);
337 $boxes = sqimap_mailbox_list($imapConnection);
338 echo '<select name="mf_subfolder">';
340 if ( isset($mailfetch_subfolder_[$mf_sn]) ) {
341 $selected = array(strtolower($mailfetch_subfolder_[$mf_sn]));
343 echo sqimap_mailbox_option_list($imapConnection, $selected) .
344 '</select></td></tr>' .
346 html_tag( 'th', ' ', 'right' ) .
348 '<input type="checkbox" name="mf_lmos" ' . (($mailfetch_lmos_[$mf_sn] == 'on')?
'checked="checked"':'') .
349 ' />' . _("Leave Mail on Server") ,
353 html_tag( 'th', ' ', 'right' ) .
355 '<input type="checkbox" name="mf_login" ' . ( ($mailfetch_login_[$mf_sn] == 'on')?
'checked="checked"':'') .
356 ' />' . _("Check mail at login"),
360 html_tag( 'th', ' ', 'right' ) .
362 '<input type="checkbox" name="mf_fref" ' . ( ($mailfetch_fref_[$mf_sn] == 'on')?
'checked="checked"':'') .
363 ' />' . _("Check mail at folder refresh") ,
368 '<input type="submit" name="submit_mailfetch" value="' . _("Modify Server") . '" />',
369 'center', '', 'colspan="2"' )
371 '</table></form></td></tr></table>';
373 default: //unsupported action
377 html_tag( 'td', '<b>' . _("Fetching Servers") . '</b>', 'center', $color[0] )
379 'center', '', 'width="95%"' ) .
383 html_tag( 'td', '<b>' . _("Undefined Function") . '</b>', 'center', $color[9] ) .
384 html_tag( 'td', '<b>' . _("The function you requested is unknown.") . '</b>', 'center', $color[0] )
386 'center', '', 'width="70%"' );