<?php require_once dirname(__FILE__).'/accesscheck.php'; if (isset($_GET['id'])) { $id = sprintf('%d', $_GET['id']); } else { $id = 0; } if (ALLOW_DELETEBOUNCE && isset($_GET['delete'])) { $delete = sprintf('%d', $_GET['delete']); } else { $delete = 0; } $actionresult = ''; $useremail = isset($_GET['useremail']) && is_email($_GET['useremail']) ? $_GET['useremail'] : ''; //# @TODO sanitize $deletebounce = isset($_GET['deletebounce']); //BUGFIX #15286 - nickyoung $amount = isset($_GET['amount']) ? sprintf('%d', $_GET['amount']) : ''; //BUGFIX #15286 - CS2 $unconfirm = isset($_GET['unconfirm']); //BUGFIX #15286 - CS2 $maketext = isset($_GET['maketext']); //BUGFIX #15286 - CS2 $deleteuser = isset($_GET['deleteuser']); //BUGFIX #15286 - CS2 $type = ''; if (isset($_GET['type'])) { switch ($_GET['type']) { case 'unidentified': $type = 'unidentified'; break; case 'processed': default: $type = 'processed'; break; } } if (!$id && !$delete) { Fatal_Error($GLOBALS['I18N']->get('No such record')); exit; } if (!isSuperUser()) { $access = accessLevel('bounce'); switch ($access) { case 'all': $subselect = ''; break; case 'none': default: $subselect = ' and '.$tables['list'].'.id = 0'; break; } } if (isset($start)) { echo '<br />'.PageLink2('bounces', $GLOBALS['I18N']->get('Back to the list of bounces'), "start=$start")."\n"; } if (isset($_GET['doit']) && isSuperUser()) { if ($useremail) { $req = Sql_Fetch_Row_Query(sprintf('select id from %s where email = "%s"', $tables['user'], sql_escape($useremail))); $userid = $req[0]; if (!$userid) { $actionresult .= "$useremail => ".$GLOBALS['I18N']->get('Not Found').'<br />'; } } if (!empty($userid) && $amount) { Sql_Query(sprintf('update %s set bouncecount = bouncecount + %d where id = %d', $tables['user'], $amount, $userid)); if (Sql_Affected_Rows()) { $actionresult .= sprintf($GLOBALS['I18N']->get('Added %s to bouncecount for subscriber %s').'<br />', $amount, $userid)."\n"; } else { $actionresult .= sprintf($GLOBALS['I18N']->get('Added %s to bouncecount for subscriber %s').'<br />', $amount, $userid)."\n"; } } if (!empty($userid) && $unconfirm) { Sql_Query(sprintf('update %s set confirmed = 0 where id = %d', $tables['user'], $userid)); $actionresult .= sprintf($GLOBALS['I18N']->get('Made subscriber %s unconfirmed').'<br />', $userid); } if (!empty($userid) && $maketext) { Sql_Query(sprintf('update %s set htmlemail = 0 where id = %d', $tables['user'], $userid)); $actionresult .= sprintf($GLOBALS['I18N']->get('Made subscriber %d to receive text').'<br />', $userid); } if (!empty($userid) && $deleteuser) { deleteUser($userid); $actionresult .= sprintf($GLOBALS['I18N']->get('Deleted subscriber %d').'<br />', $userid); } if (ALLOW_DELETEBOUNCE && $deletebounce) { $actionresult .= sprintf($GLOBALS['I18N']->get('Deleting bounce %d .. ')."\n", $id); deleteBounce($id); $actionresult .= $GLOBALS['I18N']->get('..Done, loading next bounce..')."<br /><hr/><br />\n"; $actionresult .= PageLink2('bounces', $GLOBALS['I18N']->get('Back to the list of bounces')); switch ($type) { case 'unidentified': $next = Sql_Fetch_Row_query(sprintf('select id from %s where id > %d and status = "unidentified bounce"', $tables['bounce'], $id)); $id = $next[0]; if (!$id) { $next = Sql_Fetch_Row_query(sprintf('select id from %s where status = "unidentified bounce" order by id desc limit 0,5', $tables['bounce'], $id)); } break; case 'processed': $next = Sql_Fetch_Row_query(sprintf('select id from %s where id > %d and status != "unidentified bounce"', $tables['bounce'], $id)); $id = $next[0]; if (!$id) { $next = Sql_Fetch_Row_query(sprintf('select id from %s where status != "unidentified bounce" order by id desc limit 0,5', $tables['bounce'], $id)); } break; default: $next = Sql_Fetch_Row_query(sprintf('select id from %s where id > %d', $tables['bounce'], $id)); break; } $id = $next[0]; if (!$id) { $next = Sql_Fetch_Row_query(sprintf('select id from %s order by id desc limit 0,5', $tables['bounce'], $id)); $id = $next[0]; } } echo '<div id="actionresult" class="result">'.$actionresult.'</div>'; } $guessedemail = ''; if ($id) { $result = Sql_query("SELECT * FROM {$tables['bounce']} where id = $id"); if (!Sql_Affected_Rows()) { echo '<div class="alert alert-warning " role="alert"> '.s('This bounce no longer exists in the database.').'</div>'; echo '<div class="pull-left">'.PageLinkButton('bounces', s('Manage bounces')).'</div>'; return; } $bounce = sql_fetch_array($result); //printf( "<br /><li><a href=\"javascript:deleteRec('%s');\">Delete</a>\n",PageURL2("bounce","","delete=$id")); if (preg_match("#([\d]+) bouncecount increased#", $bounce['comment'], $regs)) { $guessedid = $regs[1]; $emailreq = Sql_Fetch_Row_Query(sprintf('select email from %s where id = %d', $tables['user'], $guessedid)); $guessedemail = $emailreq[0]; } $newruleform = '<form method=post action="./?page=bouncerules">'; $newruleform .= '<table class="bounceListing">'; $newruleform .= sprintf('<tr><td>%s</td><td><input type="text" name="newrule" size="30" /></td></tr>', $GLOBALS['I18N']->get('Regular Expression')); $newruleform .= sprintf('<tr><td>%s</td><td><select name="action">', $GLOBALS['I18N']->get('Action')); foreach ($GLOBALS['bounceruleactions'] as $action => $desc) { $newruleform .= sprintf('<option value="%s" %s>%s</option>', $action, '', $desc); } $newruleform .= '</select></td></tr>'; $newruleform .= sprintf('<tr><td colspan="2">%s</td></tr><tr><td colspan="2"><textarea name="comment" rows=10 cols=65></textarea></td></tr>', $GLOBALS['I18N']->get('Memo for this rule')); $newruleform .= '<tr><td colspan="2"><p class="submit"><input type="submit" name="add" value="'.$GLOBALS['I18N']->get('Add new Rule').'" /></p></td></tr>'; $newruleform .= '</table></form>'; $actionpanel = ''; $actionpanel .= '<form method="get" action="">'; $actionpanel .= '<input type="hidden" name="page" value="'.$page.'" />'; $actionpanel .= '<input type="hidden" name="id" value="'.$id.'" />'; $actionpanel .= '<input type="hidden" name="type" value="'.$type.'" />'; $actionpanel .= '<table class="bounceActions">'; $actionpanel .= '<tr><td>'.$GLOBALS['I18N']->get('For subscriber with email').'</td><td><input type="text" name="useremail" value="'.$guessedemail.'" size="35" /></td></tr>'; $actionpanel .= '<tr><td>'.$GLOBALS['I18N']->get('Increase bouncecount with').'<br />'.$GLOBALS['I18N']->get('(use negative numbers to decrease)').'</td><td><input type="text" name="amount" value="0" size="5" /></td></tr>'; $actionpanel .= '<tr><td>'.$GLOBALS['I18N']->get('Mark subscriber as unconfirmed').'<br />'.$GLOBALS['I18N']->get('(so you can resend the request for confirmation)').' </td><td><input type="checkbox" name="unconfirm" value="1" /></td></tr>'; $actionpanel .= '<tr><td>'.$GLOBALS['I18N']->get('Set subscriber to receive text instead of HTML').' </td><td><input type="checkbox" name="maketext" value="1" /></td></tr>'; $actionpanel .= '<tr><td>'.$GLOBALS['I18N']->get('Delete subscriber').' </td><td><input type="checkbox" name="deleteuser" value="1" /></td></tr>'; if (ALLOW_DELETEBOUNCE) { $actionpanel .= '<tr><td>'.$GLOBALS['I18N']->get('Delete this bounce and go to the next').' </td><td><input type="checkbox" name="deletebounce" value="1" checked="checked" /></td></tr>'; } $actionpanel .= '<tr><td class="bgwhite"><input class="submit" type="submit" name="doit" value="'.$GLOBALS['I18N']->get('Do the above').'" /></td></tr>'; $actionpanel .= '</table></form>'; // if (USE_ADVANCED_BOUNCEHANDLING) { $actionpanel .= '<p class="button"><a href="#newrule">'.$GLOBALS['I18N']->get('Create New Rule based on this bounce').'</a></p>'; // } $p = new UIPanel($GLOBALS['I18N']->get('Possible Actions:'), $actionpanel); echo $p->display(); $transfer_encoding = ''; if (preg_match('/Content-Transfer-Encoding: ([\w-]+)/i', $bounce['header'], $regs)) { $transfer_encoding = strtolower($regs[1]); } elseif (0 && preg_match('/Content-Type: multipart\/mixed;\s+boundary="([^"]+)"/im', $bounce['header'], $regs)) { //# @TODO, this needs more work, but probably easier to find a class that can //# split is all into itÅ› parts // print "BOUNDARY: ". $regs[1]; $multi_part_boundary = $regs[1]; $parts = explode($multi_part_boundary, $bounce['data']); if (preg_match('/Content-Transfer-Encoding: ([\w-]+)/i', $bounce['data'], $regs)) { // var_dump($regs); // $transfer_encoding = strtolower($regs[1]); } } switch ($transfer_encoding) { case 'quoted-printable': $bounceBody = imap_qprint($bounce['data']); break; case 'base64': $bounceBody = imap_base64($bounce['data']); break; case '7bit': case '8bit': default: $bounceBody = $bounce['data']; } if (!empty($_SESSION['hidebounceheader'])) { $bounce['header'] = ''; } $bouncedetail = sprintf(' <div class="fleft"><div class="label">' .$GLOBALS['I18N']->get('ID').'</div><div class="content">%d</div></div> <div class="fleft"><div class="label">' .$GLOBALS['I18N']->get('Date').'</div><div class="content">%s</div></div> <div class="fleft"><div class="label">' .$GLOBALS['I18N']->get('Status').'</div><div class="content">%s</div></div> <div class="clear"></div><br /> <div class="label">' .$GLOBALS['I18N']->get('Comment').'</div><div class="content">%s</div><br /> <div class="label">' .$GLOBALS['I18N']->get('Header').'</div>'.'<div class="content">'.PageLinkAjax('bounce&hideheader=1', 'Close', '', 'hide').'%s</div><br /> <div class="label">' .$GLOBALS['I18N']->get('Body').'</div><div class="content">%s</div>', $id, $bounce['date'], $bounce['status'], $bounce['comment'], nl2br(htmlspecialchars($bounce['header'])), nl2br(htmlspecialchars($bounceBody))); // print '<tr><td colspan="2"><p class="submit"><input type="submit" name=change value="Save Changes"></p>'; $p = new UIPanel(s('Bounce Details'), $bouncedetail); echo $p->display(); // if (USE_ADVANCED_BOUNCEHANDLING) { $p = new UIPanel(s('New Rule').'<a name="newrule"></a>', $newruleform); echo $p->display(); // } }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
PEAR | Folder | 0755 |
|
|
PHPMailer | Folder | 0755 |
|
|
PHPMailer6 | Folder | 0755 |
|
|
actions | Folder | 0755 |
|
|
css | Folder | 0755 |
|
|
data | Folder | 0755 |
|
|
help | Folder | 0755 |
|
|
images | Folder | 0755 |
|
|
inc | Folder | 0755 |
|
|
info | Folder | 0755 |
|
|
js | Folder | 0755 |
|
|
locale | Folder | 0755 |
|
|
onyxrss | Folder | 0755 |
|
|
plugins | Folder | 0755 |
|
|
tests | Folder | 0755 |
|
|
ui | Folder | 0755 |
|
|
.gitignore | File | 20 B | 0644 |
|
.htaccess | File | 489 B | 0644 |
|
.minceconf | File | 994 B | 0644 |
|
AnalyticsQuery.php | File | 985 B | 0644 |
|
CsvReader.php | File | 1.27 KB | 0644 |
|
EmailSender.php | File | 477 B | 0644 |
|
Updater.php | File | 193 B | 0644 |
|
about.php | File | 7.4 KB | 0644 |
|
accesscheck.php | File | 715 B | 0644 |
|
addprefix.php | File | 1.01 KB | 0644 |
|
adduser.php | File | 46 B | 0644 |
|
admin.php | File | 12.77 KB | 0644 |
|
adminattributes.php | File | 7.46 KB | 0644 |
|
admins.php | File | 5.16 KB | 0644 |
|
analytics.php | File | 2.84 KB | 0644 |
|
attributes.php | File | 26.2 KB | 0644 |
|
blacklistemail.php | File | 1.22 KB | 0644 |
|
bounce.php | File | 11.14 KB | 0644 |
|
bouncemgt.php | File | 1.44 KB | 0644 |
|
bouncerule.php | File | 4.27 KB | 0644 |
|
bouncerules.php | File | 6.33 KB | 0644 |
|
bounces.php | File | 7.57 KB | 0644 |
|
catlists.php | File | 3.34 KB | 0644 |
|
checkbouncerules.php | File | 1.43 KB | 0644 |
|
checki18n.php | File | 3.13 KB | 0644 |
|
checkprerequisites.php | File | 1.62 KB | 0644 |
|
class.image.inc | File | 3.9 KB | 0644 |
|
class.phplistmailer.php | File | 30.73 KB | 0644 |
|
class.phplistmailerbase.php | File | 1.67 KB | 0644 |
|
community.php | File | 3.5 KB | 0644 |
|
communityfeed.php | File | 2.36 KB | 0644 |
|
configure.php | File | 7.85 KB | 0644 |
|
connect.php | File | 89.86 KB | 0644 |
|
convertstats.php | File | 5.83 KB | 0644 |
|
converttoutf8.php | File | 3.78 KB | 0644 |
|
cron.php | File | 3.34 KB | 0644 |
|
date.php | File | 7.65 KB | 0644 |
|
dbcheck.php | File | 3.7 KB | 0644 |
|
defaultFrontendTexts.php | File | 9.79 KB | 0644 |
|
defaultconfig.php | File | 30.66 KB | 0644 |
|
defaultplugin.php | File | 31.59 KB | 0644 |
|
defaults.php | File | 3.64 KB | 0644 |
|
defaultsystemtemplate.php | File | 15.29 KB | 0644 |
|
defaulttest.php | File | 1.23 KB | 0644 |
|
dlusers.php | File | 235 B | 0644 |
|
domainbounces.php | File | 507 B | 0644 |
|
domainstats.php | File | 371 B | 0644 |
|
editattributes.php | File | 8.78 KB | 0644 |
|
editlist.php | File | 7.4 KB | 0644 |
|
eventlog.php | File | 4.68 KB | 0644 |
|
export.php | File | 6.86 KB | 0644 |
|
exportuserdata.php | File | 8.26 KB | 0644 |
|
fckphplist.php | File | 49.84 KB | 0644 |
|
gchart.php | File | 903 B | 0644 |
|
generatebouncerules.php | File | 5.51 KB | 0644 |
|
home.php | File | 6.56 KB | 0644 |
|
hostedprocessqueuesetup.php | File | 3.09 KB | 0644 |
|
htaccess | File | 311 B | 0644 |
|
image.php | File | 2.01 KB | 0644 |
|
import.php | File | 2.75 KB | 0644 |
|
import1.php | File | 11.09 KB | 0644 |
|
import2.php | File | 34.16 KB | 0644 |
|
import3.php | File | 22.72 KB | 0644 |
|
import4.php | File | 16.86 KB | 0644 |
|
importadmin.php | File | 17.08 KB | 0644 |
|
importsimple.php | File | 7.32 KB | 0644 |
|
index.php | File | 32.82 KB | 0644 |
|
info.php | File | 1.07 KB | 0644 |
|
init.php | File | 27.36 KB | 0644 |
|
initialise.php | File | 12.05 KB | 0644 |
|
initlanguages.php | File | 867 B | 0644 |
|
languages.php | File | 21.37 KB | 0644 |
|
lib.php | File | 86.79 KB | 0644 |
|
list.php | File | 11.32 KB | 0644 |
|
listbounces.php | File | 4.13 KB | 0644 |
|
login.php | File | 6.39 KB | 0644 |
|
logout.php | File | 865 B | 0644 |
|
massremove.php | File | 2.55 KB | 0644 |
|
mclicks.php | File | 7.28 KB | 0644 |
|
members.php | File | 19.99 KB | 0644 |
|
mergeduplicates.php | File | 4.48 KB | 0644 |
|
message.php | File | 9.08 KB | 0644 |
|
messages.php | File | 26.27 KB | 0644 |
|
minify.txt | File | 201 B | 0644 |
|
msgbounces.php | File | 3.4 KB | 0644 |
|
msgstatus.php | File | 1.27 KB | 0644 |
|
mviews.php | File | 6.27 KB | 0644 |
|
mysql.inc | File | 40 B | 0644 |
|
mysqli.inc | File | 14.02 KB | 0644 |
|
pageaction.php | File | 1.11 KB | 0644 |
|
phpListAdminAuthentication.php | File | 6.82 KB | 0644 |
|
pluginlib.php | File | 9.43 KB | 0644 |
|
plugins.php | File | 17.78 KB | 0644 |
|
preparesend.php | File | 669 B | 0644 |
|
processbounces.php | File | 35.36 KB | 0644 |
|
processqueue.php | File | 3.71 KB | 0644 |
|
readtestmail.php | File | 11.59 KB | 0644 |
|
reconcileusers.php | File | 27.71 KB | 0644 |
|
redirecttoupdater.php | File | 187 B | 0644 |
|
reindex.php | File | 1.82 KB | 0644 |
|
rsslib.php | File | 3.17 KB | 0644 |
|
runcommand.php | File | 583 B | 0644 |
|
send.php | File | 6.17 KB | 0644 |
|
send_core.php | File | 63.91 KB | 0644 |
|
sendemaillib.php | File | 69.84 KB | 0644 |
|
sendprepared.php | File | 4.87 KB | 0644 |
|
sessionlib.php | File | 2.7 KB | 0644 |
|
setpermissions.php | File | 2.08 KB | 0644 |
|
setup.php | File | 2.56 KB | 0644 |
|
spage.php | File | 4.35 KB | 0644 |
|
spageedit.php | File | 19.08 KB | 0644 |
|
statsmgt.php | File | 1.23 KB | 0644 |
|
statsoverview.php | File | 6.19 KB | 0644 |
|
stresstest.php | File | 4.82 KB | 0644 |
|
structure.php | File | 29.21 KB | 0644 |
|
subscribelib2.php | File | 70.22 KB | 0644 |
|
subscriberstats.php | File | 617 B | 0644 |
|
suppressionlist.php | File | 1.71 KB | 0644 |
|
system.php | File | 795 B | 0644 |
|
systemstats.php | File | 5.73 KB | 0644 |
|
template.php | File | 16.4 KB | 0644 |
|
templates.php | File | 3.01 KB | 0644 |
|
tests.php | File | 1.67 KB | 0644 |
|
uclicks.php | File | 6.74 KB | 0644 |
|
update.php | File | 187 B | 0644 |
|
updateLib.php | File | 2.2 KB | 0644 |
|
updatetlds.php | File | 358 B | 0644 |
|
updatetranslation.php | File | 2.51 KB | 0644 |
|
upgrade.php | File | 23.82 KB | 0644 |
|
user.php | File | 23.08 KB | 0644 |
|
usercheck.php | File | 2.55 KB | 0644 |
|
userclicks.php | File | 11.57 KB | 0644 |
|
userhistory.php | File | 8.25 KB | 0644 |
|
usermgt.php | File | 1.9 KB | 0644 |
|
users.php | File | 19.3 KB | 0644 |
|
vCard.php | File | 1.9 KB | 0644 |
|
viewmessage.php | File | 635 B | 0644 |
|
viewtemplate.php | File | 1.86 KB | 0644 |
|
vote.php | File | 38 B | 0644 |
|