<?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 ($GLOBALS["require_login"] && !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"]) && (($GLOBALS["require_login"] && isSuperUser()) || !$GLOBALS["require_login"])) { 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]; } } print '<div id="actionresult" class="result">'.$actionresult .'</div>'; } $guessedemail = ''; if ($id) { $result = Sql_query("SELECT * FROM {$tables["bounce"]} where id = $id"); if (!Sql_Affected_Rows()) { Fatal_Error($GLOBALS['I18N']->get('This bounce no longer exists in the database.')); 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); print $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"]); var_dump($parts); 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']; } $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">%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); print $p->display(); if (USE_ADVANCED_BOUNCEHANDLING) { $p = new UIPanel(s('New Rule').'<a name="newrule"></a>',$newruleform); print $p->display(); } }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
FCKeditor | Folder | 0755 |
|
|
PEAR | Folder | 0755 |
|
|
PHPMailer | Folder | 0755 |
|
|
PHPMailer6 | Folder | 0755 |
|
|
actions | Folder | 0755 |
|
|
auth | Folder | 0755 |
|
|
commonlib | Folder | 0755 |
|
|
css | Folder | 0755 |
|
|
data | Folder | 0755 |
|
|
help | Folder | 0755 |
|
|
images | Folder | 0755 |
|
|
inc | Folder | 0755 |
|
|
info | Folder | 0755 |
|
|
js | Folder | 0755 |
|
|
lan | Folder | 0755 |
|
|
locale | Folder | 0755 |
|
|
oldmailer | Folder | 0755 |
|
|
onyxrss | Folder | 0755 |
|
|
plugins | Folder | 0755 |
|
|
styles | Folder | 0755 |
|
|
tests | Folder | 0755 |
|
|
ui | Folder | 0755 |
|
|
uploadimages | Folder | 0755 |
|
|
.gitignore | File | 20 B | 0644 |
|
.htaccess | File | 171 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 |
|
about.php | File | 4.22 KB | 0644 |
|
accesscheck.php | File | 1.51 KB | 0644 |
|
addprefix.php | File | 966 B | 0644 |
|
adduser.php | File | 46 B | 0644 |
|
admin.php | File | 10.68 KB | 0644 |
|
adminattributes.php | File | 6.39 KB | 0644 |
|
admins.php | File | 4.54 KB | 0644 |
|
adodb.inc | File | 6.49 KB | 0644 |
|
analytics.php | File | 2.84 KB | 0644 |
|
attributes.php | File | 102 B | 0644 |
|
blacklistemail.php | File | 1.04 KB | 0644 |
|
bounce.php | File | 10.09 KB | 0644 |
|
bouncemgt.php | File | 1.39 KB | 0644 |
|
bouncerule.php | File | 3 KB | 0644 |
|
bouncerules.php | File | 5.86 KB | 0644 |
|
bounces.php | File | 6.01 KB | 0644 |
|
catlists.php | File | 2.64 KB | 0644 |
|
checkbouncerules.php | File | 1.34 KB | 0644 |
|
checki18n.php | File | 2.69 KB | 0644 |
|
checkprerequisites.php | File | 1.05 KB | 0644 |
|
class.html.mime.mail-outlookfix.inc | File | 19.93 KB | 0644 |
|
class.html.mime.mail.inc | File | 19.35 KB | 0644 |
|
class.image.inc | File | 5.77 KB | 0644 |
|
class.phplistmailer.php | File | 24.23 KB | 0644 |
|
class.phplistmailerbase.php | File | 1.5 KB | 0644 |
|
community.php | File | 1.78 KB | 0644 |
|
communityfeed.php | File | 2.36 KB | 0644 |
|
configure.php | File | 5.25 KB | 0644 |
|
connect.php | File | 74.36 KB | 0644 |
|
convertstats.php | File | 5.51 KB | 0644 |
|
converttoutf8.php | File | 3.77 KB | 0644 |
|
cron.php | File | 3.37 KB | 0644 |
|
date.php | File | 6.08 KB | 0644 |
|
dbcheck.php | File | 111 B | 0644 |
|
defaultFrontendTexts.php | File | 9.57 KB | 0644 |
|
defaultconfig.inc | File | 23.52 KB | 0644 |
|
defaultconfig.php | File | 24.92 KB | 0644 |
|
defaultplugin.php | File | 23.31 KB | 0644 |
|
defaults.php | File | 2.83 KB | 0644 |
|
defaultsystemtemplate.php | File | 1.83 KB | 0644 |
|
defaulttest.php | File | 1.12 KB | 0644 |
|
dlusers.php | File | 232 B | 0644 |
|
domainbounces.php | File | 507 B | 0644 |
|
domainstats.php | File | 2.83 KB | 0644 |
|
editattributes.php | File | 6.7 KB | 0644 |
|
editlist.php | File | 6.79 KB | 0644 |
|
error_log | File | 274 B | 0644 |
|
eventlog.php | File | 4.49 KB | 0644 |
|
export.php | File | 4.84 KB | 0644 |
|
exportuserdata.php | File | 6.36 KB | 0644 |
|
fckphplist.php | File | 43.21 KB | 0644 |
|
footer.inc | File | 1.19 KB | 0644 |
|
footer.old.inc | File | 1.82 KB | 0644 |
|
gchart.php | File | 869 B | 0644 |
|
generatebouncerules.php | File | 5.24 KB | 0644 |
|
getrss.php | File | 3.94 KB | 0644 |
|
header.inc | File | 1.75 KB | 0644 |
|
home.php | File | 16.36 KB | 0644 |
|
hostedprocessqueuesetup.php | File | 1.64 KB | 0644 |
|
htaccess | File | 311 B | 0644 |
|
image.php | File | 795 B | 0644 |
|
import.php | File | 2.54 KB | 0644 |
|
import1.php | File | 9.41 KB | 0644 |
|
import2.php | File | 243 B | 0644 |
|
import3.php | File | 20.26 KB | 0644 |
|
import4.php | File | 15.63 KB | 0644 |
|
importadmin.php | File | 14.5 KB | 0644 |
|
importlib.php | File | 2.86 KB | 0644 |
|
importsimple.php | File | 5.84 KB | 0644 |
|
index.php | File | 22.53 KB | 0644 |
|
index.php.old | File | 22.53 KB | 0644 |
|
info.php | File | 1.01 KB | 0644 |
|
init.php | File | 21.7 KB | 0644 |
|
initialise.php | File | 10.02 KB | 0644 |
|
initlanguages.php | File | 794 B | 0644 |
|
languages.php | File | 22.43 KB | 0644 |
|
lib.php | File | 59.85 KB | 0644 |
|
list.php | File | 11.79 KB | 0644 |
|
listbounces.php | File | 4.64 KB | 0644 |
|
login.php | File | 6.05 KB | 0755 |
|
logout.php | File | 224 B | 0644 |
|
massremove.php | File | 1.81 KB | 0644 |
|
massunconfirm.php | File | 1.52 KB | 0644 |
|
mclicks.php | File | 9.55 KB | 0644 |
|
members.php | File | 16.58 KB | 0644 |
|
mergeduplicates.php | File | 4.28 KB | 0644 |
|
message.php | File | 7.27 KB | 0644 |
|
messages.php | File | 18.94 KB | 0644 |
|
mimePart.php | File | 10.7 KB | 0644 |
|
minify.txt | File | 201 B | 0644 |
|
msgbounces.php | File | 3.79 KB | 0644 |
|
msgstatus.php | File | 1.18 KB | 0644 |
|
mviews.php | File | 7.88 KB | 0644 |
|
mysql.inc | File | 11.19 KB | 0644 |
|
mysqli.inc | File | 11.58 KB | 0644 |
|
pageaction.php | File | 1.08 KB | 0644 |
|
pagetop.php | File | 1.17 KB | 0644 |
|
phpListAdminAuthentication.php | File | 7.2 KB | 0644 |
|
pluginlib.php | File | 6.39 KB | 0644 |
|
plugins.php | File | 10.32 KB | 0644 |
|
preparesend.php | File | 627 B | 0644 |
|
processbounces.php | File | 29.71 KB | 0644 |
|
processqueue.php | File | 3.73 KB | 0644 |
|
purgerss.php | File | 1.38 KB | 0644 |
|
readtestmail.php | File | 11.26 KB | 0644 |
|
reconcileusers.php | File | 25.16 KB | 0644 |
|
redirecttoupdater.php | File | 170 B | 0644 |
|
reindex.php | File | 1.69 KB | 0644 |
|
rsslib.php | File | 2.8 KB | 0644 |
|
runcommand.php | File | 583 B | 0644 |
|
send.php | File | 5.58 KB | 0644 |
|
send_core.php | File | 56.08 KB | 0644 |
|
sendemaillib.php | File | 64.2 KB | 0644 |
|
sendprepared.php | File | 4.33 KB | 0644 |
|
sessionlib.php | File | 2.92 KB | 0644 |
|
setpermissions.php | File | 1.57 KB | 0644 |
|
setup.php | File | 3.21 KB | 0644 |
|
sidebar.php | File | 2.67 KB | 0644 |
|
spage.php | File | 3.29 KB | 0644 |
|
spageedit.php | File | 17.07 KB | 0644 |
|
statsmgt.php | File | 1.22 KB | 0644 |
|
statsoverview.php | File | 7.62 KB | 0644 |
|
stresstest.php | File | 5.1 KB | 0644 |
|
structure.php | File | 26.79 KB | 0644 |
|
subscribelib2.php | File | 66.02 KB | 0644 |
|
subscriberstats.php | File | 591 B | 0644 |
|
suppressionlist.php | File | 1.71 KB | 0644 |
|
system.php | File | 784 B | 0644 |
|
systemstats.php | File | 7.71 KB | 0644 |
|
template.php | File | 12.72 KB | 0644 |
|
templates.php | File | 3.02 KB | 0644 |
|
tests.php | File | 1.57 KB | 0644 |
|
uclicks.php | File | 6.52 KB | 0644 |
|
update.php | File | 187 B | 0644 |
|
updateLib.php | File | 2.77 KB | 0644 |
|
updatetlds.php | File | 399 B | 0644 |
|
updatetranslation.php | File | 1.94 KB | 0644 |
|
upgrade.php | File | 29.03 KB | 0644 |
|
user.php | File | 2.35 KB | 0644 |
|
usercheck.php | File | 2.27 KB | 0644 |
|
userclicks.php | File | 8 KB | 0644 |
|
userhistory.php | File | 127 B | 0644 |
|
usermgt.php | File | 1.83 KB | 0644 |
|
users.php | File | 393 B | 0644 |
|
vCard.php | File | 1.9 KB | 0644 |
|
viewmessage.php | File | 610 B | 0644 |
|
viewrss.php | File | 4.07 KB | 0644 |
|
viewtemplate.php | File | 1.82 KB | 0644 |
|
vote.php | File | 38 B | 0644 |
|