You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

55 lines
1.5 KiB
PHP

<?php
if(!$active_user->admin) {
require('views/error403.php');
die;
}
if(!empty($_POST['subject']) && !empty($_POST['body']) && !empty($router->vars['recipients'])) {
$email = new Email;
$email->subject = $_POST['subject'];
$email->body = $_POST['body'];
$email->add_reply_to($config['email']['admin_address'], $config['email']['admin_name']);
$email->add_recipient('noreply', 'Undisclosed recipients');
$filters = array();
if($router->vars['recipients'] == 'server_admins') {
$filters['admins_servers'] = 1;
}
foreach($user_dir->list_users(array(), $filters) as $user) {
if($user->active) {
$email->add_bcc($user->email, $user->name);
}
}
$email->send();
$alert = new UserAlert;
$alert->content = "Mail sent!";
$active_user->add_alert($alert);
redirect();
} elseif(empty($router->vars['recipients'])) {
$content = new PageSection('bulk_mail_choose');
} else {
switch($router->vars['recipients']) {
case 'all_users':
$rcpt_desc = 'users of';
$rcpt_role = 'user of';
break;
case 'server_admins':
$rcpt_desc = 'server admins on';
$rcpt_role = 'server admin on';
break;
default:
require('views/error404.php');
die;
}
$content = new PageSection('bulk_mail');
$content->set('recipients', $router->vars['recipients']);
$content->set('rcpt_desc', $rcpt_desc);
$content->set('rcpt_role', $rcpt_role);
}
$page = new PageSection('base');
$page->set('title', 'Bulk mail');
$page->set('content', $content);
$page->set('alerts', $active_user->pop_alerts());
echo $page->generate();