4 * mail_fetch/options.php
6 * Setup of the mailfetch plugin.
8 * @copyright © 1999-2007 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');
19 include_once(SM_PATH
. 'plugins/mail_fetch/functions.php' );
20 include_once(SM_PATH
. 'functions/imap_general.php');
21 include_once(SM_PATH
. 'functions/forms.php');
24 sqgetGlobalVar('delimiter', $delimiter, SQ_SESSION
);
26 if(!sqgetGlobalVar('mf_cypher', $mf_cypher, SQ_POST
)) {
29 if(! sqgetGlobalVar('mf_action', $mf_action, SQ_POST
) ) {
30 if (sqgetGlobalVar('mf_action_mod', $mf_action_mod, SQ_POST
)) {
31 $mf_action = 'Modify';
33 elseif (sqgetGlobalVar('mf_action_del', $mf_action_del, SQ_POST
)) {
34 $mf_action = 'Delete';
37 $mf_action = 'config';
41 sqgetGlobalVar('mf_sn', $mf_sn, SQ_POST
);
42 sqgetGlobalVar('mf_server', $mf_server, SQ_POST
);
43 sqgetGlobalVar('mf_port', $mf_port, SQ_POST
);
44 sqgetGlobalVar('mf_alias', $mf_alias, SQ_POST
);
45 sqgetGlobalVar('mf_user', $mf_user, SQ_POST
);
46 sqgetGlobalVar('mf_pass', $mf_pass, SQ_POST
);
47 sqgetGlobalVar('mf_subfolder', $mf_subfolder, SQ_POST
);
48 sqgetGlobalVar('mf_login', $mf_login, SQ_POST
);
49 sqgetGlobalVar('mf_fref', $mf_fref, SQ_POST
);
50 sqgetGlobalVar('mf_lmos', $mf_lmos, SQ_POST
);
51 sqgetGlobalVar('mf_auth', $mf_auth, SQ_POST
);
52 sqgetGlobalVar('mf_type', $mf_type, SQ_POST
);
53 sqgetGlobalVar('submit_mailfetch', $submit_mailfetch, SQ_POST
);
58 displayPageHeader( $color );
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:""));
69 if ( isset($mf_pass) ) {
70 if ( isset($mf_cypher) && $mf_cypher == 'on' ) {
71 setPref($data_dir,$username,"mailfetch_cypher", ($mf_cypher == 'on' ?
'on' : ''));
72 $pass = encrypt($mf_pass);
77 setPref($data_dir,$username,"mailfetch_pass_$mf_sn",$pass);
78 setPref($data_dir,$username,"mailfetch_lmos_$mf_sn",(isset($mf_lmos)?
$mf_lmos:""));
79 setPref($data_dir,$username,"mailfetch_login_$mf_sn",(isset($mf_login)?
$mf_login:""));
80 setPref($data_dir,$username,"mailfetch_fref_$mf_sn",(isset($mf_fref)?
$mf_fref:""));
81 setPref($data_dir,$username,"mailfetch_subfolder_$mf_sn",(isset($mf_subfolder)?
$mf_subfolder:""));
82 setPref($data_dir,$username,"mailfetch_auth_$mf_sn",(isset($mf_auth)?
$mf_auth:MAIL_FETCH_AUTH_USER
));
83 setPref($data_dir,$username,"mailfetch_type_$mf_sn",(isset($mf_type)?
$mf_type:MAIL_FETCH_USE_PLAIN
));
85 setPref($data_dir,$username,'mailfetch_server_number', $mf_sn);
86 $mf_action = 'config';
88 case 'confirm_modify':
90 if (!isset($mf_server)) return;
91 setPref($data_dir,$username,"mailfetch_server_$mf_sn", (isset($mf_server)?
$mf_server:""));
92 setPref($data_dir,$username,"mailfetch_port_$mf_sn", (isset($mf_port)?
$mf_port:110));
93 setPref($data_dir,$username,"mailfetch_alias_$mf_sn", (isset($mf_alias)?
$mf_alias:""));
94 setPref($data_dir,$username,"mailfetch_user_$mf_sn",(isset($mf_user)?
$mf_user:""));
96 if ( isset($mf_pass) ) {
97 if ( isset($mf_cypher) && $mf_cypher == 'on' ) {
98 setPref($data_dir,$username,"mailfetch_cypher", 'on');
99 $pass = encrypt($mf_pass);
101 setPref($data_dir,$username,"mailfetch_cypher", '');
105 setPref($data_dir,$username,"mailfetch_pass_$mf_sn",$pass);
106 setPref($data_dir,$username,"mailfetch_lmos_$mf_sn",(isset($mf_lmos)?
$mf_lmos:""));
107 setPref($data_dir,$username,"mailfetch_login_$mf_sn",(isset($mf_login)?
$mf_login:""));
108 setPref($data_dir,$username,"mailfetch_fref_$mf_sn",(isset($mf_fref)?
$mf_fref:""));
109 setPref($data_dir,$username,"mailfetch_subfolder_$mf_sn",(isset($mf_subfolder)?
$mf_subfolder:""));
110 setPref($data_dir,$username,"mailfetch_auth_$mf_sn",(isset($mf_auth)?
$mf_auth:MAIL_FETCH_AUTH_USER
));
111 setPref($data_dir,$username,"mailfetch_type_$mf_sn",(isset($mf_type)?
$mf_type:MAIL_FETCH_USE_PLAIN
));
112 $mf_action = 'config';
114 case 'confirm_delete':
116 $mailfetch_server_number = getPref($data_dir, $username, "mailfetch_server_number");
117 if ($mf_sn+
1==$mailfetch_server_number) {
118 //is the last server, whe can only decrase $mailfetch_server_number
119 $mailfetch_server_number--;
120 setPref($data_dir,$username,"mailfetch_server_number", $mailfetch_server_number);
122 //if not the last, all the sequel server come up one step
123 //then whe decrase $mailfetch_server_number
124 $mailfetch_server_number--;
125 for ($i=$mf_sn;$i<$mailfetch_server_number;$i++
) {
127 setPref($data_dir,$username,'mailfetch_server_'.$i,
128 getPref($data_dir,$username, 'mailfetch_server_'.$tmp));
129 setPref($data_dir,$username,'mailfetch_port_'.$i,
130 getPref($data_dir,$username, 'mailfetch_port_'.$tmp));
131 setPref($data_dir,$username,'mailfetch_alias_'.$i,
132 getPref($data_dir,$username, 'mailfetch_alias_'.$tmp));
133 setPref($data_dir,$username,'mailfetch_user_'.$i,
134 getPref($data_dir,$username, 'mailfetch_user_'.$tmp));
135 setPref($data_dir,$username,'mailfetch_pass_'.$i,
136 getPref($data_dir,$username, 'mailfetch_pass_'.$tmp));
137 setPref($data_dir,$username,'mailfetch_lmos_'.$i,
138 getPref($data_dir,$username, 'mailfetch_lmos_'.$tmp));
139 setPref($data_dir,$username,'mailfetch_login_'.$i,
140 getPref($data_dir,$username, 'mailfetch_login_'.$tmp));
141 setPref($data_dir,$username,'mailfetch_fref_'.$i,
142 getPref($data_dir,$username, 'mailfetch_fref_'.$tmp));
143 setPref($data_dir,$username,'mailfetch_subfolder_'.$i,
144 getPref($data_dir,$username, 'mailfetch_subfolder_'.$tmp));
145 setPref($data_dir,$username,'mailfetch_auth_'.$i,
146 getPref($data_dir,$username, 'mailfetch_auth_'.$tmp,MAIL_FETCH_AUTH_USER
));
147 setPref($data_dir,$username,'mailfetch_type_'.$i,
148 getPref($data_dir,$username, 'mailfetch_type_'.$tmp,MAIL_FETCH_USE_PLAIN
));
149 setPref($data_dir,$username,'mailfetch_uidl_'.$i,
150 getPref($data_dir,$username, 'mailfetch_uidl_'.$tmp));
152 setPref($data_dir,$username,"mailfetch_server_number", $mailfetch_server_number);
154 $mf_action = 'config';
158 $mailfetch_server_number = getPref($data_dir, $username, 'mailfetch_server_number', 0);
159 $mailfetch_cypher = getPref( $data_dir, $username, 'mailfetch_cypher' );
160 if ($mailfetch_server_number<1) {
161 $mailfetch_server_number=0;
163 for ($i=0;$i<$mailfetch_server_number;$i++
) {
164 $mailfetch_server_[$i] = getPref($data_dir, $username, "mailfetch_server_$i");
165 $mailfetch_port_[$i] = getPref($data_dir, $username, "mailfetch_port_$i");
166 $mailfetch_alias_[$i] = getPref($data_dir, $username, "mailfetch_alias_$i");
167 $mailfetch_user_[$i] = getPref($data_dir, $username, "mailfetch_user_$i");
168 $mailfetch_pass_[$i] = getPref($data_dir, $username, "mailfetch_pass_$i");
169 $mailfetch_lmos_[$i] = getPref($data_dir, $username, "mailfetch_lmos_$i");
170 $mailfetch_login_[$i] = getPref($data_dir, $username, "mailfetch_login_$i");
171 $mailfetch_fref_[$i] = getPref($data_dir, $username, "mailfetch_fref_$i");
172 $mailfetch_uidl_[$i] = getPref($data_dir, $username, "mailfetch_uidl_$i");
173 $mailfetch_subfolder_[$i] = getPref($data_dir, $username, "mailfetch_subfolder_$i");
174 $mailfetch_auth_[$i] = getPref($data_dir, $username, "mailfetch_auth_$i",MAIL_FETCH_AUTH_USER
);
175 $mailfetch_type_[$i] = getPref($data_dir, $username, "mailfetch_type_$i",MAIL_FETCH_USE_PLAIN
);
176 if( $mailfetch_cypher == 'on' ) $mailfetch_pass_[$i] = decrypt( $mailfetch_pass_[$i] );
179 echo '<br /><form method="post" action="'.$PHP_SELF.'">' .
183 '<b>' . _("Remote POP server settings") . '</b>',
184 'center', $color[0] )
186 'center', '', 'width="95%"' ) .
190 _("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.") ,
195 _("If you leave password empty, it will be asked when you fetch mail.") ,
200 '<input type="checkbox" name="mf_cypher" ' .
201 (($mailfetch_cypher=='on')?
'checked="checked" />':' />') .
202 _("Encrypt passwords (informative only)") ,
205 'center', '', 'width="95%"' );
207 switch( $mf_action ) {
209 echo html_tag( 'table', '', 'center', '', 'width="70%" cellpadding="5" cellspacing="1"' ) .
211 html_tag( 'td', '<b>' . _("Add Server") . '</b>', 'center', $color[9] )
214 html_tag( 'td', '', 'center', $color[0] ) .
216 "<input type=\"hidden\" name=\"mf_sn\" value=\"$mailfetch_server_number\" />" .
217 '<input type="hidden" name="mf_action" value="add" />' .
218 html_tag( 'table' ) .
220 html_tag( 'th', _("Server:"), 'right' ) .
221 html_tag( 'td', '<input type="text" name="mf_server" value="" size="40" />', 'left' )
224 html_tag( 'th', _("Port:"), 'right') .
225 html_tag( 'td', '<input type="text" name="mf_port" value="110" size="20" />', 'left')
228 html_tag( 'th', _("Alias:"), 'right' ) .
229 html_tag( 'td', '<input type="text" name="mf_alias" value="" size="20" />', 'left' )
232 html_tag( 'th', _("Username:"), 'right' ) .
233 html_tag( 'td', '<input type="text" name="mf_user" value="" size="20" />', 'left' )
236 html_tag( 'th', _("Password:"), 'right' ) .
237 html_tag( 'td', '<input type="password" name="mf_pass" value="" size="20" />', 'left' )
240 html_tag( 'th', _("Authentication type:"), 'right' ) .
241 html_tag( 'td', addSelect('mf_auth',
242 array(MAIL_FETCH_AUTH_USER
=> _("USER"),
243 MAIL_FETCH_AUTH_APOP
=> _("APOP"),
244 MAIL_FETCH_AUTH_RFC1939
=> _("APOP or USER")),
245 MAIL_FETCH_AUTH_USER
,true), 'left' )
248 html_tag( 'th', _("Connection type:"), 'right' ) .
249 html_tag( 'td', addSelect('mf_type',
250 array(MAIL_FETCH_USE_PLAIN
=> _("Plain text"),
251 MAIL_FETCH_USE_TLS
=> _("Use TLS"),
252 MAIL_FETCH_USE_STLS
=> _("Use StartTLS")),
253 MAIL_FETCH_USE_PLAIN
,true), 'left' )
256 html_tag( 'th', _("Store in Folder:"), 'right' ) .
257 html_tag( 'td', '', 'left' );
258 $imapConnection = sqimap_login ($username, false, $imapServerAddress, $imapPort, 0);
259 $boxes = sqimap_mailbox_list($imapConnection);
260 echo '<select name="mf_subfolder">';
263 if ( isset($mf_subfolder) )
264 $selected = array(strtolower($mf_subfolder));
265 echo sqimap_mailbox_option_list($imapConnection, $selected);
266 echo '</select></td></tr>' .
268 html_tag( 'th', ' ', 'right' ) .
269 html_tag( 'td', '<input type="checkbox" name="mf_lmos" checked="checked" />' . _("Leave Mail on Server"), 'left' )
272 html_tag( 'th', ' ', 'right' ) .
273 html_tag( 'td', '<input type="checkbox" name="mf_login" />' . _("Check mail at login"), 'left' )
276 html_tag( 'th', ' ', 'right' ) .
277 html_tag( 'td', '<input type="checkbox" name="mf_fref" />' . _("Check mail at folder refresh"), 'left' )
281 '<input type="submit" name="submit_mailfetch" value="' . _("Add Server") . '" />',
282 'center', '', 'colspan="2"' )
284 '</table></td></tr></table></form>';
287 echo '<font size="-5"><br /></font>' .
288 html_tag( 'table', '', 'center', '', 'width="70%" cellpadding="5" cellspacing="1"' ) .
290 html_tag( 'td', '<b>' . _("Modify Server") . '</b>', 'center', $color[9] )
293 html_tag( 'td', '', 'center', $color[0] );
294 if ($mailfetch_server_number>0) {
295 echo "<form action=\"$PHP_SELF\" method=\"post\" target=\"_self\">";
296 echo '<b>' . _("Server Name:") . '</b> <select name="mf_sn">';
297 for ($i=0;$i<$mailfetch_server_number;$i++
) {
298 echo "<option value=\"$i\">" .
299 htmlspecialchars( (($mailfetch_alias_[$i]=='')?
$mailfetch_server_[$i]:$mailfetch_alias_[$i])) . "</option>";
302 ' <input type="submit" name="mf_action_mod" value="' . _("Modify") . '" />'.
303 ' <input type="submit" name="mf_action_del" value="' . _("Delete") . '" />'.
306 echo _("No servers known.");
308 echo '</td></tr></table>';
310 case 'Delete': //erase confirmation about a server
311 echo html_tag( 'table',
313 html_tag( 'td', '<b>' . _("Fetching Servers") . '</b>', 'center', $color[0] )
315 'center', '', 'width="95%" cellpadding="5" cellspacing="1"' ) .
319 html_tag( 'td', '<b>' . _("Confirm Deletion of a Server") . '</b>', 'center', $color[9] )
323 "<input type=\"hidden\" name=\"mf_sn\" value=\"$mf_sn\" />" .
324 '<input type="hidden" name="mf_action" value="confirm_delete" />' .
325 '<br />' . _("Selected Server:") . " <b>" . htmlspecialchars($mailfetch_server_[$mf_sn]) . "</b><br />" .
326 _("Confirm delete of selected server?") . '<br /><br />' .
327 '<input type="submit" name="submit_mailfetch" value="' . _("Confirm Delete") . '" />' .
329 'center', $color[9] )
331 'center', '', 'width="70%" cellpadding="5" cellspacing="1"' );
332 break; //modify a server
334 echo html_tag( 'table',
336 html_tag( 'td', '<b>' . _("Fetching Servers") . '</b>', 'center', $color[0] )
338 'center', '', 'width="95%" cellpadding="5" cellspacing="1"' ) .
340 html_tag( 'table', '', 'center', '', 'width="70%" cellpadding="5" cellspacing="1"' ) .
342 html_tag( 'td', '<b>' . _("Modify Server") . '</b>', 'center', $color[9] )
345 html_tag( 'td', '', 'center', $color[0] ) .
347 "<input type=\"hidden\" name=\"mf_sn\" value=\"$mf_sn\" />" .
348 '<input type="hidden" name="mf_action" value="confirm_modify" />' .
349 html_tag( 'table' ) .
351 html_tag( 'th', _("Server:"), 'right' ) .
352 html_tag( 'td', '<input type="text" name="mf_server" value="' .
353 htmlspecialchars($mailfetch_server_[$mf_sn]) . '" size="40" />', 'left' )
356 html_tag( 'th', _("Port:"), 'right' ) .
357 html_tag( 'td', '<input type="text" name="mf_port" value="' .
358 htmlspecialchars($mailfetch_port_[$mf_sn]) . '" size="40" />', 'left' )
361 html_tag( 'th', _("Alias:"), 'right' ) .
362 html_tag( 'td', '<input type="text" name="mf_alias" value="' .
363 htmlspecialchars($mailfetch_alias_[$mf_sn]) . '" size="40" />', 'left' )
366 html_tag( 'th', _("Username:"), 'right' ) .
367 html_tag( 'td', '<input type="text" name="mf_user" value="' .
368 htmlspecialchars($mailfetch_user_[$mf_sn]) . '" size="20" />', 'left' )
371 html_tag( 'th', _("Password:"), 'right' ) .
372 html_tag( 'td', '<input type="password" name="mf_pass" value="' .
373 htmlspecialchars($mailfetch_pass_[$mf_sn]) . '" size="20" />', 'left' )
376 html_tag( 'th', _("Authentication type:"), 'right' ) .
377 html_tag( 'td', addSelect('mf_auth',array(MAIL_FETCH_AUTH_USER
=> _("USER"),
378 MAIL_FETCH_AUTH_APOP
=> _("APOP"),
379 MAIL_FETCH_AUTH_RFC1939
=> _("APOP or USER")),
380 $mailfetch_auth_[$mf_sn],true), 'left' )
383 html_tag( 'th', _("Connection type:"), 'right' ) .
384 html_tag( 'td', addSelect('mf_type',array(MAIL_FETCH_USE_PLAIN
=> _("Plain text"),
385 MAIL_FETCH_USE_TLS
=> _("Use TLS"),
386 MAIL_FETCH_USE_STLS
=> _("Use StartTLS")),
387 $mailfetch_type_[$mf_sn],true), 'left' )
390 html_tag( 'th', _("Store in Folder:"), 'right' ) .
391 html_tag( 'td', '', 'left' );
393 $imapConnection = sqimap_login ($username, false, $imapServerAddress, $imapPort, 0);
394 $boxes = sqimap_mailbox_list($imapConnection);
395 echo '<select name="mf_subfolder">';
397 if ( isset($mailfetch_subfolder_[$mf_sn]) ) {
398 $selected = array(strtolower($mailfetch_subfolder_[$mf_sn]));
400 echo sqimap_mailbox_option_list($imapConnection, $selected) .
401 '</select></td></tr>' .
403 html_tag( 'th', ' ', 'right' ) .
405 '<input type="checkbox" name="mf_lmos" ' . (($mailfetch_lmos_[$mf_sn] == 'on')?
'checked="checked"':'') .
406 ' />' . _("Leave Mail on Server") ,
410 html_tag( 'th', ' ', 'right' ) .
412 '<input type="checkbox" name="mf_login" ' . ( ($mailfetch_login_[$mf_sn] == 'on')?
'checked="checked"':'') .
413 ' />' . _("Check mail at login"),
417 html_tag( 'th', ' ', 'right' ) .
419 '<input type="checkbox" name="mf_fref" ' . ( ($mailfetch_fref_[$mf_sn] == 'on')?
'checked="checked"':'') .
420 ' />' . _("Check mail at folder refresh") ,
425 '<input type="submit" name="submit_mailfetch" value="' . _("Modify Server") . '" />',
426 'center', '', 'colspan="2"' )
428 '</table></form></td></tr></table>';
430 default: //unsupported action
434 html_tag( 'td', '<b>' . _("Fetching Servers") . '</b>', 'center', $color[0] )
436 'center', '', 'width="95%"' ) .
440 html_tag( 'td', '<b>' . _("Undefined Function") . '</b>', 'center', $color[9] ) .
441 html_tag( 'td', '<b>' . _("The function you requested is unknown.") . '</b>', 'center', $color[0] )
443 'center', '', 'width="70%"' );
446 $oTemplate->display('footer.tpl');