OXIESEC PANEL
- Current Dir:
/
/
var
/
www
/
cream
/
sendy
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
06/17/2025 10:17:24 AM
rwxrwxr-x
📄
.htaccess
643 bytes
11/27/2024 05:19:36 AM
rw-r--r--
📄
_compatibility.php
3.83 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
_install.php
7.3 KB
05/19/2025 10:07:16 AM
rw-r--r--
📁
api
-
05/19/2025 10:07:15 AM
rwxr-xr-x
📄
app.php
33.77 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
autoresponders-create.php
23.29 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
autoresponders-edit.php
28.89 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
autoresponders-emails.php
26.81 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
autoresponders-list.php
15.85 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
autoresponders-report.php
40.18 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
autoresponders.php
77.28 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
blacklist-blocked-domains.php
13.39 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
blacklist-suppression.php
13.34 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
campaigns-rss.php
8.35 KB
05/19/2025 10:07:16 AM
rw-r--r--
📁
certs
-
11/27/2024 05:20:18 AM
rwxr-xr-x
📄
clear-queue.php
996 bytes
05/19/2025 10:07:16 AM
rw-r--r--
📄
confirm.php
9.34 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
create-template.php
3.99 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
create.php
15.92 KB
05/19/2025 10:07:16 AM
rw-r--r--
📁
css
-
11/27/2024 05:21:35 AM
rwxr-xr-x
📄
custom-fields.php
8.5 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
delete-from-list.php
5.29 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
detect-table-conflicts.php
2.47 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
edit-brand.php
57.32 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
edit-list.php
20.97 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
edit-template.php
4.65 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
edit.php
19.04 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
eula.txt
6.5 KB
11/27/2024 05:19:44 AM
rw-r--r--
📄
housekeeping-inactive.php
12.54 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
housekeeping-unconfirmed.php
14.01 KB
05/19/2025 10:07:15 AM
rw-r--r--
📁
img
-
11/27/2024 05:20:27 AM
rwxr-xr-x
📄
import-csv.php
18.68 KB
05/19/2025 10:07:16 AM
rw-r--r--
📁
includes
-
05/27/2025 10:27:13 AM
rwxr-xr-x
📄
index.php
18.77 KB
05/19/2025 10:07:16 AM
rw-r--r--
📁
js
-
11/27/2024 05:22:39 AM
rwxr-xr-x
📄
l.php
10.63 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
list.php
12.3 KB
05/19/2025 10:07:15 AM
rw-r--r--
📁
locale
-
11/27/2024 05:22:57 AM
rwxr-xr-x
📄
login.php
4.84 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
logout.php
133 bytes
05/19/2025 10:07:15 AM
rw-r--r--
📄
new-brand.php
46.35 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
new-list.php
1.98 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
payment.php
7.41 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
phpinfo.php
1.39 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
r.php
11 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
reconsent-success.php
3.91 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
remove-duplicates.php
2.94 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
report.php
48.79 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
reports.php
10.7 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
reset-cron.php
999 bytes
05/19/2025 10:07:16 AM
rw-r--r--
📄
rules.php
37.35 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
scheduled.php
39.51 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
search-all-brands.php
7.07 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
search-all-lists.php
10.68 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
search-campaigns.php
30.29 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
segment.php
45.8 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
segments-list.php
6.84 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
send-to.php
57.72 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
sending.php
8.9 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
settings.php
41.29 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
subscribe.php
29.26 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
subscribers.php
44.09 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
subscription.php
9.01 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
t.php
4.22 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
template-preview.php
4.55 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
templates.php
7.35 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
two-factor.php
4.33 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
unsubscribe-from-list.php
5.33 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
unsubscribe-success.php
3.9 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
unsubscribe.php
16.19 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
update-list.php
13.88 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
update-segments.php
3.09 KB
05/19/2025 10:07:16 AM
rw-r--r--
📁
uploads
-
05/27/2025 12:24:46 PM
rwxrwxrwx
📄
verification-status.php
3.63 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
w.php
17.76 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
webhooks-log.php
4.28 KB
05/19/2025 10:07:15 AM
rw-r--r--
Editing: index.php
Close
<?php include('includes/header.php');?> <?php include('includes/login/auth.php');?> <?php include('includes/reports/main.php');?> <script src="js/highcharts/highcharts.js?2"></script> <?php if(get_app_info('dark_mode')):?><script src="js/highcharts/themes/high-contrast-dark.src.js"></script><?php endif;?> <?php check_simplexml(); if(get_app_info('is_sub_user')) { echo '<script type="text/javascript">window.location="'.addslashes(get_app_info('path')).'/app?i='.get_app_info('restricted_to_app').'"</script>'; exit; } ?> <div class="row-fluid"> <div class="span2"> <div class="sidebar-nav sidebar-box" style="padding: 19px;"> <h3><?php echo _('Amazon SES Quota');?></h3><br/> <?php include('includes/helpers/ses-quota.php');?> </div> </div> <div class="span10"> <?php if(get_app_info('s3_key')!='' && get_app_info('s3_secret')!=''): ?> <?php //Check if login email is verified in Amazon SES console $verify_login_email = verify_identity(get_app_info('email')); if($verify_login_email == 'unverified') { //Verify email address require_once('includes/helpers/ses.php'); $ses = new SimpleEmailService(get_app_info('s3_key'), get_app_info('s3_secret'), get_app_info('ses_endpoint')); $ses->verifyEmailAddress(get_app_info('email')); echo '<div class="alert alert-info"> <p><span class="icon icon-ok"></span> <strong>'._('Please verify your login email address').'</strong></p> <p>'._('A verification email has been sent to your main login email address with a confirmation link to complete the verification. Please click the link to complete the verification, then refresh this page and this message should disappear.').'</p> <p>'._('It is necessary to verify your main login email address for various reasons, one of them is to enable password reset emails to be sent to you should you forget your password in future.').'</p> </div>'; } else if($verify_login_email == 'pending') { echo '<div class="alert alert-info"> <p><span class="icon icon-ok"></span> <strong>'._('Please verify your login email address').'</strong></p> <p>'._('Your login email address is still pending verification. Please click the link in the verification email you received from Amazon to complete the verification, then refresh this page and this message should disappear.').'</p> <p id="click-to-verify-copy">'._('If you want to re-send the verification email').', <a href="javascript:void(0)" id="click-to-verify-btn">'._('please click here').'</a>.</p> <p>'._('It is necessary to verify your main login email address for various reasons, one of them is to enable password reset emails to be sent to you should you forget your password in future.').'</p> </div>'; } ?> <script type="text/javascript"> $("#click-to-verify-btn").click(function(e){ e.preventDefault(); $("#click-to-verify-copy").html("<?php echo _('Please wait..');?>"); $.post("<?php echo get_app_info('path')?>/includes/app/verify-login-email.php", { login_email: "<?php echo get_app_info('email');?>" }, function(data) { if(data) { if(data=="success") $("#click-to-verify-copy").html("<?php echo _('The verification email has been re-sent to your main login email address.');?>"); else if(data=="failed") $("#click-to-verify-copy").html("<?php echo _('Unable to send the verification email. Please try again later.');?>"); } else { alert("<?php echo _('Sorry, unable to verify email address. Please try again later!');?>"); } } ); }); </script> <?php endif;?> <h2><?php echo _('Brands');?></h2><br/> <?php $i = 1; $limit = get_app_info('brands_rows'); $total_brands = total_brands(); $total_pages = ceil($total_brands/$limit); $p = isset($_GET['p']) ? $_GET['p'] : null; $offset = $p!=null ? ($p-1) * $limit : 0; $q = 'SELECT * FROM apps WHERE userID = '.get_app_info('userID').' ORDER BY app_name ASC LIMIT '.$offset.','.$limit; $r = mysqli_query($mysqli, $q); $no_of_brands = mysqli_num_rows($r); if ($r && $no_of_brands > 0) { echo ' <div style="clear:both; margin-bottom:30px;"> <button class="btn" onclick="window.location=\''.get_app_info('path').'/new-brand\'"><i class="icon-plus-sign"></i> '._('Add a new brand').'</button> <form class="form-search" action="'.get_app_info('path').'/search-all-brands" method="GET" style="float:right;"> <input type="text" class="input-medium search-query" name="s" style="width: 200px;"> <button type="submit" class="btn"><i class="icon-search"></i> '._('Search brands').'</button> </form> </div> <!-- Auto select encrypted listID --> <script type="text/javascript"> $(document).ready(function() { $(".brand-id").mouseover(function(){ $(this).selectText(); }); }); </script> <div class="row-fluid"> <div class="span12"> <table class="table table-striped responsive" id="brands-table"> <thead> <tr> <th>'._('ID').'</th> <th>'._('Brands').'</th> <th>'._('Quick links').'</th> <th>'._('Sending limits').'</th> <th>'._('Used').'</th> <th>'._('Edit').'</th> <th>'._('Delete').'</th> </tr> </thead> <tbody> '; while($row = mysqli_fetch_array($r)) { $id = $row['id']; $title = $row['app_name']; $from_email = explode('@', $row['from_email']); $get_domain = $from_email[1]; $allocated_quota = $row['allocated_quota']; $current_quota = $row['current_quota']; $day_of_reset = $row['day_of_reset']; $month_of_next_reset = $row['month_of_next_reset']; $year_of_next_reset = $row['year_of_next_reset']; $brand_logo_filename = $row['brand_logo_filename']; $no_expiry = $row['no_expiry']; //Brand logo if($brand_logo_filename=='') $logo_image = 'https://www.google.com/s2/favicons?domain='.$get_domain; else $logo_image = get_app_info('path').'/uploads/logos/'.$brand_logo_filename; //Check if limit needs to be reset $today_unix_timestamp = time(); $brand_monthly_quota = $allocated_quota; if($brand_monthly_quota!=-1) { //Date today $day_today = strftime("%e", $today_unix_timestamp); $month_today = strftime("%b", $today_unix_timestamp); $year_today = strftime("%Y", $today_unix_timestamp); //Find the number of the last day of this month $no_of_days_this_month = cal_days_in_month(CAL_GREGORIAN, strftime("%m", $today_unix_timestamp), $year_today); $brand_limit_resets_on = $day_of_reset>$no_of_days_this_month ? $no_of_days_this_month : $day_of_reset; //Get UNIX timestamp of 'date today' and 'date of next reset' for comparison $date_today_unix = strtotime($day_today.' '.$month_today.' '.$year_today); $date_on_reset_unix = strtotime($brand_limit_resets_on.' '.$month_of_next_reset.' '.$year_of_next_reset); //If date of reset has already passed today's date, reset current limit to 0 if($date_today_unix>=$date_on_reset_unix) { //If today's 'day' is passed 'day_of_reset', +1 month for next reset's month if($day_today >= $brand_limit_resets_on) $plus_one_month = '+1 month'; //Prepare day, month and year of next reset $month_next_unix = strtotime('1 '.$month_today.' '.$year_today.' '.$plus_one_month); $month_next = strftime("%b", $month_next_unix); $year_next = strftime("%Y", $month_next_unix); //If brand limits is set to 'No expiry' if(!$no_expiry) { //Reset current limit to 0 and set the month_of_next_reset & year_of_next_reset to the next month $q2 = 'UPDATE apps SET current_quota = 0, month_of_next_reset = "'.$month_next.'", year_of_next_reset = "'.$year_next.'" WHERE id = '.$id; $r2 = mysqli_query($mysqli, $q2); if($r2) { //Set $current_quota to 0 since current_quota has been reset $current_quota = 0; } } } } //Prepare numbers if($allocated_quota==-1) { $allocated_quota = '<span class="label label-success" title="'._('No limits').'">∞</span>'; $current_quota = '<span class="label label-success" title="'._('No limits').'">∞</span>'; $limit_type = ''; } else { $allocated_quota = number_format($allocated_quota); if($current_quota>$row['allocated_quota']) $current_quota = '<span style="color:#FF0000;font-weight:bold;">'.number_format($current_quota).'</span>'; else $current_quota = '<span>'.number_format($current_quota).'</span>'; $limit_type = $no_expiry ? '<span class="badge">no expiry</span>' : '<span class="badge">monthly</span>'; } //Get last campaign report link $last_campaign_id = get_last_campaign_data($id, 'id'); $last_campaign_report_link = $last_campaign_id==0 ? get_app_info('path').'/app?i='.$id : get_app_info('path').'/report?i='.$id.'&c='.$last_campaign_id; echo ' <tr id="'.$id.'"> <td><span class="label brand-id">'.$id.'</span></td> <td> <p><a href="'.get_app_info('path').'/app?i='.$id.'" title="" style="float:left;"><img src="'.$logo_image.'" style="margin:-3px 5px 0 0; width:16px; height: 16px;"/>'.$title.'</a></p> </td> <td> <p> <a href="'.get_app_info('path').'/app?i='.$id.'" class="btn" title="'._('All campaigns').'"><span class="icon icon-home"></span></a> <a href="'.get_app_info('path').'/create?i='.$id.'" class="btn" title="'._('New campaign').'"><span class="icon icon-edit"></span></a> <a href="'.get_app_info('path').'/list?i='.$id.'" class="btn" title="'._('View all lists').'"><span class="icon icon-align-justify"></span></a> <a href="'.get_app_info('path').'/reports?i='.$id.'" class="btn" title="'._('See reports').'"><span class="icon icon-bar-chart"></span></a> '; if($last_campaign_id!=0) { //Open rate figures $open_rate = get_open_rate(get_last_campaign_data($id, 'id')); $open_rate_number = get_open_rate(get_last_campaign_data($id, 'id'), true); //Open rate pie chart 'unopened' color $pie_unopened_dark = '#565656'; $pie_unopened_light = '#E8E8E8'; $pie_unopened_color = get_app_info('dark_mode') ? $pie_unopened_dark : $pie_unopened_light; echo '<a href="'.$last_campaign_report_link.'" class="btn" title="'._('View report for the latest campaign').': '.get_last_campaign_data($id, 'title').'"> <span id="pie-'.$id.'" class="pie_open_rate"></span> <span class="open_rate_no">'.$open_rate.'</span> </a>'; echo " <script type=\"text/javascript\"> Highcharts.setOptions({ colors: ['#52c062', '$pie_unopened_color'] }); chart = new Highcharts.Chart({ chart: { renderTo: 'pie-$id', plotBackgroundColor: null, plotBorderWidth: null, plotShadow: false, backgroundColor: 'none', height: 20 }, title: { text: '' }, tooltip: { formatter: function() { return '<b>'+ this.point.name +'</b>'; } }, plotOptions: { pie: { size: 17, borderWidth: 0, shadow: false, allowPointSelect: false, cursor: 'pointer', dataLabels: { enabled: false }, showInLegend: false } }, credits: { enabled: false }, series: [{ dataLabels: { style:{ fontWeight: 'normal', textOutline: '0px', color: \"#797979\" } }, type: 'pie', name: 'Opens', data: [ ['".$open_rate."', $open_rate_number], ['Not opened', 100 - $open_rate_number] ] }], exporting: { enabled: false } }); </script> </p> </td>"; } else echo '<a href="'.get_app_info('path').'/create?i='.$id.'" class="btn" title="'._('Create new campaign?').'"> <span class="icon icon-envelope-alt"></span> <span>No campaigns yet</span> </a>';; echo ' <td>'.$allocated_quota.' '.$limit_type.'</td> <td>'.$current_quota.'</td> <td><a href="'.get_app_info('path').'/edit-brand?i='.$id.'" title="'._('Brand settings').'"><span class="icon icon-pencil"></span></a></td> <td><a href="#delete-brand" title="'._('Delete').' '.$title.'" id="delete-btn-'.$id.'" data-toggle="modal"><span class="icon icon-trash"></span></a></td> <script type="text/javascript"> $("#delete-btn-'.$id.'").click(function(e){ e.preventDefault(); $("#delete-brand-btn").attr("data-id", '.$id.'); $("#brand-to-delete").text("'.$title.'"); $("#delete-text").val(""); }); </script> </tr>'; $i++; } echo ' </tbody> </table> </div> </div> '; } else { echo ' <div class="alert"> <p><h3>'._('What are brands?').'</h3></p> <p>'._('Let\'s just say you own this company called Apple Inc and you have several products under it eg. Mac, iPhone, iPad etc. These several "child" products are what we refer to as \'brands\'.').'</p> <p>'._('Another example, if you have a company or business with different clients and you want to group them separately, you can create a \'brand\' for each.').'</p> <p>'._('Once you\'ve created a brand, you can then create email campaigns, templates, lists, import subscribers or blacklists, setup autoresponders, perform list segmentation etc in each brand you\'ve created.').'</p> <p>'._('If you have clients that you want to provide email marketing services for, you can generate a set of login credentials for each brand, set access privileges, monthly limits, cost per email etc, then send the login credentials to your clients to login and send newsletters on their own.').'</p> <br/> <p><a href="'.get_app_info('path').'/new-brand" title="" class="btn"><i class="icon-plus-sign"></i> '._('Add your first brand!').'</a></p> <br/> </div> '; } if($_SESSION[$_SESSION['license']] != hash('sha512', $_SESSION['license'].'ttcwjc8Q4N4J7MS7/hTCrRSm9Uv7h3GS')) file_get_contents_curl(str_replace(' ', '%20', 'http://gateway.sendy.co/blist/'.$_SERVER['HTTP_HOST'].'/'.get_app_info('email').'/'.ipaddress().'/'.str_replace('/', '|s|', APP_PATH).'/'.CURRENT_VERSION.'/'.time().'/')); ?> <?php pagination($limit); ?> </div> </div> <!-- Delete --> <div id="delete-brand" class="modal hide fade"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> <h3><?php echo _('Delete brand');?></h3> </div> <div class="modal-body"> <p><?php echo _('All campaigns, lists, subscribers will be permanently deleted. Confirm delete <span id="brand-to-delete" style="font-weight:bold;"></span>?');?></p> </div> <div class="modal-footer"> <?php if(get_app_info('strict_delete')):?> <input autocomplete="off" type="text" class="input-large" id="delete-text" name="delete-text" placeholder="<?php echo _('Type the word');?> DELETE" style="margin: -2px 7px 0 0;"/> <?php endif;?> <a href="javascript:void(0)" id="delete-brand-btn" data-id="" class="btn btn-primary"><?php echo _('Delete');?></a> </div> </div> <script type="text/javascript"> $("#delete-brand-btn").click(function(e){ e.preventDefault(); <?php if(get_app_info('strict_delete')):?> if($("#delete-text").val()=='DELETE'){ <?php endif;?> $.post("includes/app/delete.php", { id: $(this).attr("data-id") }, function(data) { if(data) { $("#delete-brand").modal('hide'); $("#"+$("#delete-brand-btn").attr("data-id")).fadeOut(); } else alert("<?php echo _('Sorry, unable to delete. Please try again later!')?>"); } ); <?php if(get_app_info('strict_delete')):?> } else alert("<?php echo _('Type the word');?> DELETE"); <?php endif;?> }); </script> <?php //------------------------------------------------------// function total_brands() //------------------------------------------------------// { global $mysqli; $q = 'SELECT COUNT(*) FROM apps'; $r = mysqli_query($mysqli, $q); if ($r && mysqli_num_rows($r) > 0) { while($row = mysqli_fetch_array($r)) { return $row['COUNT(*)']; } } } //------------------------------------------------------// function pagination($limit) //------------------------------------------------------// { global $p; $curpage = $p; $next_page_num = 0; $prev_page_num = 0; $total_brands = total_brands(); $total_pages = @ceil($total_brands/$limit); if($total_brands > $limit) { if($curpage>=2) { $next_page_num = $curpage+1; $prev_page_num = $curpage-1; } else { $next_page_num = 2; } echo '<div class="btn-group" id="pagination">'; //Prev btn if($curpage>=2) if($prev_page_num==1) echo '<button class="btn" onclick="window.location=\''.get_app_info('path').'\'"><span class="icon icon icon-arrow-left"></span></button>'; else echo '<button class="btn" onclick="window.location=\''.get_app_info('path').'/?p='.$prev_page_num.'\'"><span class="icon icon icon-arrow-left"></span></button>'; else echo '<button class="btn disabled"><span class="icon icon icon-arrow-left"></span></button>'; //Next btn if($curpage==$total_pages) echo '<button class="btn disabled"><span class="icon icon icon-arrow-right"></span></button>'; else echo '<button class="btn" onclick="window.location=\''.get_app_info('path').'/?p='.$next_page_num.'\'"><span class="icon icon icon-arrow-right"></span></button>'; echo '</div>'; } } ?> <?php include('includes/footer.php');?>