60 lines
1.9 KiB
PHP
60 lines
1.9 KiB
PHP
<?php
|
|
require_once "vendor/autoload.php";
|
|
require_once "config.php";
|
|
require_once "activethreads.php";
|
|
require_once "email.php";
|
|
|
|
$pdo = new PDO(DSN, MYSQL_USER, MYSQL_PASSWORD);
|
|
$threads = getLatestActiveThreads(FORUM_ID, 100, true);
|
|
$users = $pdo->prepare("SELECT usergroup, loginkey, email, username FROM ".MYBB_PREFIX."users
|
|
WHERE usergroup = 4
|
|
AND isSubscribed = 1");
|
|
$users->execute();
|
|
$users = $users->fetchAll();
|
|
|
|
$url = $pdo->prepare("SELECT value FROM ".MYBB_PREFIX."settings WHERE name = 'bburl'");
|
|
$url->execute();
|
|
$url = $url->fetch()['value'];
|
|
|
|
$tmp = $pdo->prepare("SELECT name, value FROM ".MYBB_PREFIX."settings WHERE name LIKE 'smtp_%'");
|
|
$tmp->execute();
|
|
$tmp = $tmp->fetchAll();
|
|
$smtp = [];
|
|
foreach ($tmp as $row) {
|
|
$smtp[$row['name']] = $row['value'];
|
|
}
|
|
unset($tmp);
|
|
$transport = Swift_SmtpTransport::newInstance($smtp['smtp_host'], $smtp['smtp_port'])
|
|
->setUsername($smtp['smtp_user'])
|
|
->setPassword($smtp['smtp_pass']);
|
|
$mailer = Swift_Mailer::newInstance($transport);
|
|
|
|
$forbidden = 'SELECT fid, gid FROM '.MYBB_PREFIX.'forumpermissions WHERE canviewthreads = 0';
|
|
$forbidden = $pdo->prepare($forbidden);
|
|
$forbidden->execute();
|
|
$forbidden = $forbidden->fetchAll();
|
|
$temp = $forbidden;
|
|
$forbidden = [];
|
|
foreach ($temp as $row) {
|
|
if (!isset($forbidden[$row['gid']])) {
|
|
$forbidden[$row['gid']] = [];
|
|
}
|
|
$forbidden[$row['gid']][] = $row['fid'];
|
|
}
|
|
|
|
foreach ($users as $user) {
|
|
$email = $user['email'];
|
|
$message = print_email($user['username'], $url.D_PATH.'/unsubscribe.php?email='.$user['email'].'&key='.$user['login.key'], $threads, $forbidden[$user['usergroup']]);
|
|
if (DRY_RUN) {
|
|
echo $message;
|
|
}
|
|
$message = Swift_Message::newInstance()
|
|
->setSubject('Daily Digest — Olympic Business Forum')
|
|
->setFrom('no-reply@olympicbusinessforum.com')
|
|
->setTo(array($email => $user['username']))
|
|
->setBody($message, 'text/html');
|
|
if (!DRY_RUN) {
|
|
$mailer->send($message);
|
|
}
|
|
}
|