4 * mail_fetch/options.php
6 * Copyright (c) 1999-2005 The SquirrelMail Project Team
7 * Licensed under the GNU GPL. For full terms see the file COPYING.
9 * Setup of the mailfetch plugin.
13 * @subpackage mail_fetch
17 define('SM_PATH','../../');
19 require_once(SM_PATH
. 'include/validate.php');
20 include_once(SM_PATH
. 'functions/imap.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] );
153 echo '<br /><form method="post" action="'.$PHP_SELF.'">' .
157 '<b>' . _("Remote POP server settings") . '</b>',
158 'center', $color[0] )
160 'center', '', 'width="95%"' ) .
164 _("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.") ,
169 _("If you leave password empty, it will be asked when you fetch mail.") ,
174 '<input type="checkbox" name="mf_cypher" ' .
175 (($mailfetch_cypher=='on')?
'checked="checked" />':' />') .
176 _("Encrypt passwords (informative only)") ,
179 'center', '', 'width="95%"' );
181 switch( $mf_action ) {
183 echo html_tag( 'table', '', 'center', '', 'width="70%" cellpadding="5" cellspacing="1"' ) .
185 html_tag( 'td', '<b>' . _("Add Server") . '</b>', 'center', $color[9] )
188 html_tag( 'td', '', 'center', $color[0] ) .
190 "<input type=\"hidden\" name=\"mf_sn\" value=\"$mailfetch_server_number\" />" .
191 '<input type="hidden" name="mf_action" value="add" />' .
192 html_tag( 'table' ) .
194 html_tag( 'th', _("Server:"), 'right' ) .
195 html_tag( 'td', '<input type="text" name="mf_server" value="" size="40" />', 'left' )
198 html_tag( 'th', _("Port:"), 'right') .
199 html_tag( 'td', '<input type="text" name="mf_port" value="110" size="20" />', 'left')
202 html_tag( 'th', _("Alias:"), 'right' ) .
203 html_tag( 'td', '<input type="text" name="mf_alias" value="" size="20" />', 'left' )
206 html_tag( 'th', _("Username:"), 'right' ) .
207 html_tag( 'td', '<input type="text" name="mf_user" value="" size="20" />', 'left' )
210 html_tag( 'th', _("Password:"), 'right' ) .
211 html_tag( 'td', '<input type="password" name="mf_pass" value="" size="20" />', 'left' )
214 html_tag( 'th', _("Store in Folder:"), 'right' ) .
215 html_tag( 'td', '', 'left' );
216 $imapConnection = sqimap_login ($username, $key, $imapServerAddress, $imapPort, 0);
217 $boxes = sqimap_mailbox_list($imapConnection);
218 echo '<select name="mf_subfolder">';
221 if ( isset($mf_subfolder) )
222 $selected = array(strtolower($mf_subfolder));
223 echo sqimap_mailbox_option_list($imapConnection, $selected);
224 echo '</select></td></tr>' .
226 html_tag( 'th', ' ', 'right' ) .
227 html_tag( 'td', '<input type="checkbox" name="mf_lmos" checked="checked" />' . _("Leave Mail on Server"), 'left' )
230 html_tag( 'th', ' ', 'right' ) .
231 html_tag( 'td', '<input type="checkbox" name="mf_login" />' . _("Check mail at login"), 'left' )
234 html_tag( 'th', ' ', 'right' ) .
235 html_tag( 'td', '<input type="checkbox" name="mf_fref" />' . _("Check mail at folder refresh"), 'left' )
239 '<input type="submit" name="submit_mailfetch" value="' . _("Add Server") . '" />',
240 'center', '', 'colspan="2"' )
242 '</table></td></tr></table></form>';
245 echo '<font size="-5"><br /></font>' .
246 html_tag( 'table', '', 'center', '', 'width="70%" cellpadding="5" cellspacing="1"' ) .
248 html_tag( 'td', '<b>' . _("Modify Server") . '</b>', 'center', $color[9] )
251 html_tag( 'td', '', 'center', $color[0] );
252 if ($mailfetch_server_number>0) {
253 echo "<form action=\"$PHP_SELF\" method=\"post\" target=\"_self\">";
254 echo '<b>' . _("Server Name:") . '</b> <select name="mf_sn">';
255 for ($i=0;$i<$mailfetch_server_number;$i++
) {
256 echo "<option value=\"$i\">" .
257 htmlspecialchars( (($mailfetch_alias_[$i]=='')?
$mailfetch_server_[$i]:$mailfetch_alias_[$i])) . "</option>";
260 ' <input type="submit" name="mf_action_mod" value="' . _("Modify") . '" />'.
261 ' <input type="submit" name="mf_action_del" value="' . _("Delete") . '" />'.
264 echo _("No servers known.");
266 echo '</td></tr></table>';
268 case 'Delete': //erase confirmation about a server
269 echo html_tag( 'table',
271 html_tag( 'td', '<b>' . _("Fetching Servers") . '</b>', 'center', $color[0] )
273 'center', '', 'width="95%" cellpadding="5" cellspacing="1"' ) .
277 html_tag( 'td', '<b>' . _("Confirm Deletion of a Server") . '</b>', 'center', $color[9] )
281 "<input type=\"hidden\" name=\"mf_sn\" value=\"$mf_sn\" />" .
282 '<input type="hidden" name="mf_action" value="confirm_delete" />' .
283 '<br />' . _("Selected Server:") . " <b>" . htmlspecialchars($mailfetch_server_[$mf_sn]) . "</b><br />" .
284 _("Confirm delete of selected server?") . '<br /><br />' .
285 '<input type="submit" name="submit_mailfetch" value="' . _("Confirm Delete") . '" />' .
287 'center', $color[9] )
289 'center', '', 'width="70%" cellpadding="5" cellspacing="1"' );
290 break; //modify a server
292 echo html_tag( 'table',
294 html_tag( 'td', '<b>' . _("Fetching Servers") . '</b>', 'center', $color[0] )
296 'center', '', 'width="95%" cellpadding="5" cellspacing="1"' ) .
298 html_tag( 'table', '', 'center', '', 'width="70%" cellpadding="5" cellspacing="1"' ) .
300 html_tag( 'td', '<b>' . _("Modify Server") . '</b>', 'center', $color[9] )
303 html_tag( 'td', '', 'center', $color[0] ) .
305 "<input type=\"hidden\" name=\"mf_sn\" value=\"$mf_sn\" />" .
306 '<input type="hidden" name="mf_action" value="confirm_modify" />' .
307 html_tag( 'table' ) .
309 html_tag( 'th', _("Server:"), 'right' ) .
310 html_tag( 'td', '<input type="text" name="mf_server" value="' .
311 htmlspecialchars($mailfetch_server_[$mf_sn]) . '" size="40" />', 'left' )
314 html_tag( 'th', _("Port:"), 'right' ) .
315 html_tag( 'td', '<input type="text" name="mf_port" value="' .
316 htmlspecialchars($mailfetch_port_[$mf_sn]) . '" size="40" />', 'left' )
319 html_tag( 'th', _("Alias:"), 'right' ) .
320 html_tag( 'td', '<input type="text" name="mf_alias" value="' .
321 htmlspecialchars($mailfetch_alias_[$mf_sn]) . '" size="40" />', 'left' )
324 html_tag( 'th', _("Username:"), 'right' ) .
325 html_tag( 'td', '<input type="text" name="mf_user" value="' .
326 htmlspecialchars($mailfetch_user_[$mf_sn]) . '" size="20" />', 'left' )
329 html_tag( 'th', _("Password:"), 'right' ) .
330 html_tag( 'td', '<input type="password" name="mf_pass" value="' .
331 htmlspecialchars($mailfetch_pass_[$mf_sn]) . '" size="20" />', 'left' )
334 html_tag( 'th', _("Store in Folder:"), 'right' ) .
335 html_tag( 'td', '', 'left' );
337 $imapConnection = sqimap_login ($username, $key, $imapServerAddress, $imapPort, 0);
338 $boxes = sqimap_mailbox_list($imapConnection);
339 echo '<select name="mf_subfolder">';
341 if ( isset($mailfetch_subfolder_[$mf_sn]) ) {
342 $selected = array(strtolower($mailfetch_subfolder_[$mf_sn]));
344 echo sqimap_mailbox_option_list($imapConnection, $selected) .
345 '</select></td></tr>' .
348 html_tag( 'th', ' ', 'right' ) .
350 '<input type="checkbox" name="mf_lmos" ' . (($mailfetch_lmos_[$mf_sn] == 'on')?
'checked="checked"':'') .
351 ' />' . _("Leave Mail on Server") ,
355 html_tag( 'th', ' ', 'right' ) .
357 '<input type="checkbox" name="mf_login" ' . ( ($mailfetch_login_[$mf_sn] == 'on')?
'checked="checked"':'') .
358 ' />' . _("Check mail at login"),
362 html_tag( 'th', ' ', 'right' ) .
364 '<input type="checkbox" name="mf_fref" ' . ( ($mailfetch_fref_[$mf_sn] == 'on')?
'checked="checked"':'') .
365 ' />' . _("Check mail at folder refresh") ,
370 '<input type="submit" name="submit_mailfetch" value="' . _("Modify Server") . '" />',
371 'center', '', 'colspan="2"' )
374 '</table></form></td></tr></table>';
376 default: //unsupported action
380 html_tag( 'td', '<b>' . _("Fetching Servers") . '</b>', 'center', $color[0] )
382 'center', '', 'width="95%"' ) .
386 html_tag( 'td', '<b>' . _("Undefined Function") . '</b>', 'center', $color[9] ) .
387 html_tag( 'td', '<b>' . _("The function you requested is unknown.") . '</b>', 'center', $color[0] )
389 'center', '', 'width="70%"' );