+ $page->assign('maxsize', ini_get('upload_max_filesize') . 'o');
+ }
+
+ function handler_test(&$page, $hruid = null)
+ {
+ global $globals;
+ require_once 'emails.inc.php';
+
+ if (!S::has_xsrf_token()) {
+ return PL_FORBIDDEN;
+ }
+
+ // Retrieves the User object for the test email recipient.
+ if (S::has_perms() && $hruid) {
+ $user = User::getSilent($hruid);
+ } else {
+ $user = S::user();
+ }
+ if (!$user) {
+ return PL_NOT_FOUND;
+ }
+
+ // Sends the test email.
+ $redirect = new Redirect($user->id());
+
+ $mailer = new PlMailer('emails/test.mail.tpl');
+ $mailer->assign('email', $user->bestEmail());
+ $mailer->assign('redirects', $redirect->active_emails());
+ $mailer->assign('display_name', $user->displayName());
+ $mailer->assign('sexe', $user->isFemale());
+ $mailer->send($user->isEmailFormatHtml());
+ exit;
+ }
+
+ function handler_imap_in(&$page, $hash = null, $login = null)
+ {
+ $page->changeTpl('emails/imap_register.tpl');
+ $id = null;
+ if (!empty($hash) || !empty($login)) {
+ $req = XDB::query("SELECT u.prenom, FIND_IN_SET('femme', u.flags) AS sexe, a.id
+ FROM aliases AS a
+ INNER JOIN newsletter_ins AS ni ON (a.id = ni.user_id)
+ INNER JOIN auth_user_md5 AS u ON (u.user_id = a.id)
+ WHERE a.alias = {?} AND ni.hash = {?}", $login, $hash);
+ list($prenom, $sexe, $id) = $req->fetchOneRow();
+ }
+
+ require_once('emails.inc.php');
+ $page->assign('ok', false);
+ if (S::logged() && (is_null($id) || $id == S::i('uid'))) {
+ $storage = new EmailStorage(S::i('uid'), 'imap');
+ $storage->activate();
+ $page->assign('ok', true);
+ $page->assign('prenom', S::v('prenom'));
+ $page->assign('sexe', S::v('femme'));
+ } else if (!S::logged() && $id) {
+ $storage = new EmailStorage($id, 'imap');
+ $storage->activate();
+ $page->assign('ok', true);
+ $page->assign('prenom', $prenom);
+ $page->assign('sexe', $sexe);
+ }