'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'),
);
}
global $globals;
$page->changeTpl('emails/send.tpl');
+ $page->addJsLink('ajax.js');
$page->assign('xorg_title','Polytechnique.org - Envoyer un email');
return join(', ', $ret);
}
+ foreach ($_FILES as &$file) {
+ if ($file['name'] && !PlUpload::get($file, S::v('forlife'), 'emails.send', false)) {
+ $page->trig("Impossible de télécharger '" . pl_entities($file['name']) . "'");
+ }
+ }
+
$to2 = getEmails(Env::v('to_contacts'));
$cc2 = getEmails(Env::v('cc_contacts'));
$txt = str_replace('^M', '', Env::v('contenu'));
$to = Env::v('to');
$subj = Env::v('sujet');
$from = Env::v('from');
- $cc = Env::v('cc');
- $bcc = Env::v('bcc');
+ $cc = trim(Env::v('cc'));
+ $bcc = trim(Env::v('bcc'));
- if (empty($to) && empty($cc) && empty($to2)) {
+ if (empty($to) && empty($cc) && empty($to2) && empty($bcc) && empty($cc2)) {
$page->trig("Indique au moins un destinataire.");
+ $page->assign('uploaded_f', PlUpload::listFilenames(S::v('forlife'), 'emails.send'));
} else {
$mymail = new PlMailer();
$mymail->setFrom($from);
if (!empty($bcc)) { $mymail->addBcc($bcc); }
if (!empty($to2)) { $mymail->addTo($to2); }
if (!empty($cc2)) { $mymail->addCc($cc2); }
- if (is_uploaded_file($_FILES['uploaded']['tmp_name'])) {
- $mymail->addAttachment($_FILES['uploaded']['tmp_name'],
- $_FILES['uploaded']['type'],
- $_FILES['uploaded']['name']);
+ $files =& PlUpload::listFiles(S::v('forlife'), 'emails.send');
+ foreach ($files as $name=>&$upload) {
+ $mymail->addUploadAttachment($upload, $name);
+ }
+ if (Env::v('nowiki')) {
+ $mymail->setTxtBody(wordwrap($txt, 78, "\n"));
+ } else {
+ $mymail->setWikiBody($txt);
}
- $mymail->setTxtBody(wordwrap($txt,72,"\n"));
if ($mymail->send()) {
$page->trig("Ton mail a bien été envoyé.");
$_REQUEST = array('bcc' => S::v('bestalias').'@'.$globals->mail->domain);
+ PlUpload::clear(S::v('forlife'), 'emails.send');
} else {
$page->trig("Erreur lors de l'envoi du courriel, réessaye.");
+ $page->assign('uploaded_f', PlUpload::listFilenames(S::v('forlife'), 'emails.send'));
}
}
} else {
+ PlUpload::clear(S::v('forlife'), 'emails.send');
$_REQUEST['bcc'] = S::v('bestalias').'@'.$globals->mail->domain;
}
WHERE c.uid = {?}
ORDER BY u.nom, u.prenom", S::v('uid'));
$page->assign('contacts', $res->fetchAllAssoc());
+ $page->assign('maxsize', ini_get('post_max_size') . 'o');
}
function handler_broken(&$page, $warn = null, $email = null)
$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: