X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=modules%2Femail.php;h=1350ec7ea4d771869b655b19a524d65b897d2ea5;hb=55fd4ff4b86d5ef051fde7f7eaa4ea1a9661982b;hp=f40ce86e9a0df19b4c88212d2c5011a0d3654c28;hpb=5b21237dd71df96849421c33d87298f15709d0d9;p=platal.git diff --git a/modules/email.php b/modules/email.php index f40ce86..1350ec7 100644 --- a/modules/email.php +++ b/modules/email.php @@ -32,7 +32,9 @@ class EmailModule extends PLModule 'emails/send' => $this->make_hook('send', AUTH_MDP), 'emails/antispam/submit' => $this->make_hook('submit', AUTH_COOKIE), - 'admin/emails/duplicated' => $this->make_hook('duplicated', AUTH_MDP, 'admin') + 'admin/emails/duplicated' => $this->make_hook('duplicated', AUTH_MDP, 'admin'), + 'admin/emails/watch' => $this->make_hook('duplicated', AUTH_MDP, 'admin'), + 'admin/emails/lost' => $this->make_hook('lost', AUTH_MDP, 'admin'), ); } @@ -198,6 +200,11 @@ class EmailModule extends PLModule $redirect = new Redirect(S::v('uid')); + // FS#703 : $_GET is urldecoded twice, hence + // + (the data) => %2B (in the url) => + (first decoding) => ' ' (second decoding) + // Since there can be no spaces in emails, we can fix this with : + $email = str_replace(' ', '+', $email); + if ($action == 'remove' && $email) { $retour = $redirect->delete_email($email); $page->assign('retour', $retour); @@ -273,13 +280,14 @@ class EmailModule extends PLModule $page->changeTpl('emails/submit_spam.tpl'); if (Post::has('send_email')) { - $upload = $_FILES['mail']['tmp_name']; - if (!is_uploaded_file($upload)) { + $upload = PlUpload::get($_FILES['mail'], S::v('forlife'), 'spam.submit', true); + if (!$upload) { $page->trig('Une erreur a été rencontrée lors du transfert du fichier'); return; } - $mime = trim(mime_content_type($upload)); + $mime = $upload->contentType(); if ($mime != 'text/x-mail' && $mime != 'message/rfc822') { + $upload->clear(); $page->trig('Le fichier ne contient pas un mail complet'); return; } @@ -289,16 +297,16 @@ class EmailModule extends PLModule $mailer->addTo($box); $mailer->setFrom('"' . S::v('prenom') . ' ' . S::v('nom') . '" mail->domain . '>'); $mailer->setTxtBody(Post::v('type') . ' soumis par ' . S::v('forlife') . ' via le web'); - $mailer->addAttachment($upload, 'message/rfc822', $_FILES['mail']['name']); + $mailer->addUploadAttachment($upload, Post::v('type') . '.mail'); $mailer->send(); $page->trig('Le message a été transmis à ' . $box); + $upload->clear(); } } function handler_send(&$page) { global $globals; - $page->changeTpl('emails/send.tpl'); $page->addJsLink('ajax.js'); @@ -421,11 +429,11 @@ consulter la page <{$globals->baseurl}/emails/broken>. A bientôt sur Polytechnique.org ! -L'équipe d'administration "; +L'équipe d'administration mail->domain . '>'; $mail = new PlMailer(); - $mail->setFrom('"Polytechnique.org" '); - $mail->addTo("$dest@polytechnique.org"); + $mail->setFrom('"Polytechnique.org" mail->domain . '>'); + $mail->addTo("$dest@" . $globals->mail->domain); $mail->setSubject("Une de tes adresse de redirection Polytechnique.org ne marche plus !!"); $mail->setTxtBody($message); $mail->send(); @@ -562,6 +570,18 @@ L'équipe d'administration "; $page->assign('doublon', $props); } } + function handler_lost(&$page, $action = 'list', $email = null) + { + $page->changeTpl('emails/lost.tpl'); + + $page->assign('lost_emails', XDB::iterator(' + SELECT u.user_id, a.alias + FROM auth_user_md5 AS u + INNER JOIN aliases AS a ON (a.id = u.user_id AND a.type = "a_vie") + LEFT JOIN emails AS e ON (u.user_id=e.uid AND FIND_IN_SET("active",e.flags)) + WHERE e.uid IS NULL AND u.deces = 0 + ORDER BY u.promo DESC, u.nom, u.prenom')); + } } // vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8: