<?php
/************************************************************************
- * MXChange v0.2.1 Start: 05/29/2004 *
- * =============== Last change: 11/26/2004 *
+ * Mailer v0.2.1-FINAL Start: 05/29/2004 *
+ * =================== Last change: 11/26/2004 *
* *
* -------------------------------------------------------------------- *
* File : autopurge.php *
* -------------------------------------------------------------------- *
* Kurzbeschreibung : Auto-Loeschung von veralteten Mail-Links *
* -------------------------------------------------------------------- *
- * *
+ * $Revision:: $ *
+ * $Date:: $ *
+ * $Tag:: 0.2.1-FINAL $ *
+ * $Author:: $ *
* -------------------------------------------------------------------- *
- * Copyright (c) 2003 - 2008 by Roland Haeder *
+ * Copyright (c) 2003 - 2009 by Roland Haeder *
+ * Copyright (c) 2009, 2010 by Mailer Developer Team *
* For more information visit: http://www.mxchange.org *
* *
* This program is free software; you can redistribute it and/or modify *
// Some security stuff...
if (!defined('__SECURITY')) {
- $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
- require($INC);
+ die();
} // END - if
// Abort if autopurge is not active or disabled by admin
-if ((!EXT_IS_ACTIVE("autopurge")) || (getConfig('auto_purge_active') == "N")) {
+if ((!isExtensionActive('autopurge')) || (!isAutoPurgingActive()) || (getConfig('ap_del_mails') != 'Y')) {
// Abort here
return false;
} // END - if
-// Search for mails from deleted members?
-if (getConfig('ap_del_mails') == "Y") {
- // Okay, let's check for them...
- $since = bigintval(getConfig('ap_dm_timeout'));
- $result_mails = SQL_QUERY_ESC("SELECT sender\
-FROM `{!MYSQL_PREFIX!}_pool`
-WHERE data_type='DELETED' AND timestamp <= (UNIX_TIMESTAMP() - %s)
-ORDER BY sender ASC",
- array($since), __FILE__, __LINE__);
+// Okay, let's check for deleted mails
+$result_mails = SQL_QUERY("SELECT
+ `sender`
+FROM
+ `{?_MYSQL_PREFIX?}_pool`
+WHERE
+ `data_type`='DELETED' AND
+ `timestamp` <= (UNIX_TIMESTAMP() - {?ap_dm_timeout?})
+ORDER BY
+ `sender` ASC", __FILE__, __LINE__);
+
+// Reset counter...
+$deletedStats = '0';
+
+// Do we have "purged" mails?
+if (!SQL_HASZERONUMS($result_mails)) {
+ // Okay, check for their sender's
+ while ($content = SQL_FETCHARRAY($result_mails)) {
+ // Check now...
+ if (!fetchUserData($content['sender'])) {
+ // Okay we found some mails!
+ SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_pool` WHERE `sender`=%s",
+ array(bigintval($content['sender'])), __FILE__, __LINE__);
- // Reset counter...
- $DELETED = 0;
+ // Get all affected (deleted) rows
+ $deletedStats += SQL_AFFECTEDROWS();
- // Do we have "purged" mails?
- if (SQL_NUMROWS($result_mails) > 0) {
- // Okay, check for their sender's
- while(list($sender) = SQL_FETCHROW($result_mails)) {
- // Check now...
- $fount = SQL_NUMROWS(SQL_QUERY_ESC("SELECT userid FROM `{!MYSQL_PREFIX!}_user_data` WHERE userid=%s LIMIT 1",
- array(bigintval($sender)), __FILE__, __LINE__));
- if ($found == 0) {
- // Okay we found some mails!
- SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{!MYSQL_PREFIX!}_pool` WHERE sender=%s",
- array(bigintval($sender)), __FILE__, __LINE__);
- $DELETED += SQL_AFFECTEDROWS();
+ // Reset query (to prevent possible errors) ...;
+ $result_mails = SQL_QUERY("SELECT
+ `sender`
+FROM
+ `{?_MYSQL_PREFIX?}_pool`
+WHERE
+ `data_type`='DELETED' AND
+ `timestamp` <= (UNIX_TIMESTAMP() - {?ap_dm_timeout?})
+ORDER BY
+ `sender` ASC", __FILE__, __LINE__);
+ } // END - if
+ } // END - while
+} // END - if
- // Reset query (to prevent possible errors) ...
- $since = bigintval(getConfig('ap_dm_timeout'));
- $result_mails = SQL_QUERY_ESC("SELECT sender
-FROM `{!MYSQL_PREFIX!}_pool`
-WHERE data_type='DELETED' AND timestamp <= (UNIX_TIMESTAMP() - %s)
-ORDER BY sender ASC",
- array($since), __FILE__, __LINE__);
- }
- }
- }
+// Free memory
+SQL_FREERESULT($result_mails);
- // Free memory
- SQL_FREERESULT($result_mails);
+// Now let's check for stats entries as well;
+$result_mails = SQL_QUERY("SELECT
+ `userid` AS `sender`
+FROM
+ `{?_MYSQL_PREFIX?}_user_stats`
+WHERE
+ `timestamp_send` <= (UNIX_TIMESTAMP() - {?ap_dm_timeout?})
+ORDER BY
+ `userid` ASC", __FILE__, __LINE__);
- // Now let's check for stats entries as well
- $since = bigintval(getConfig('ap_dm_timeout'));
- $result_mails = SQL_QUERY_ESC("SELECT sender
-FROM `{!MYSQL_PREFIX!}_user_stats`
-WHERE data_type='DELETED' AND timestamp_send <= (UNIX_TIMESTAMP() - %s)
-ORDER BY sender ASC",
- array($since), __FILE__, __LINE__);
+// Do we have "purged" mails?
+if (!SQL_HASZERONUMS($result_mails)) {
+ // Okay, check for their sender's
+ while ($content = SQL_FETCHARRAY($result_mails)) {
+ // Check now...
+ if (!fetchUserData($content['sender'])) {
+ // Okay we found some mails!
+ SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_user_stats` WHERE `userid`=%s",
+ array(bigintval($content['sender'])), __FILE__, __LINE__);
- // Do we have "purged" mails?
- if (SQL_NUMROWS($result_mails) > 0) {
- // Okay, check for their sender's
- while(list($sender) = SQL_FETCHROW($result_mails)) {
- // Check now...
- $found = SQL_NUMROWS(SQL_QUERY_ESC("SELECT userid FROM `{!MYSQL_PREFIX!}_user_data` WHERE userid=%s LIMIT 1", array(bigintval($sender)), __FILE__, __LINE__));
- if ($found == 0) {
- // Okay we found some mails!
- SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{!MYSQL_PREFIX!}_user_stats` WHERE sender=%s", array(bigintval($sender)), __FILE__, __LINE__);
- $DELETED += SQL_AFFECTEDROWS();
+ // Get all affected (deleted) rows
+ $deletedStats += SQL_AFFECTEDROWS();
- // Reset query (to prevent possible errors) ...
- $since = bigintval(getConfig('ap_dm_timeout'));
- $result_mails = SQL_QUERY_ESC("SELECT sender
-FROM `{!MYSQL_PREFIX!}_user_stats`
-WHERE data_type='DELETED' AND timestamp_send <= (UNIX_TIMESTAMP() - %s)
-ORDER BY sender ASC",
- array($since), __FILE__, __LINE__);
- }
- }
- }
+ // Reset query (to prevent possible errors) ...
+ $result_mails = SQL_QUERY("SELECT
+ `userid`
+FROM
+ `{?_MYSQL_PREFIX?}_user_stats`
+WHERE
+ `timestamp_send` <= (UNIX_TIMESTAMP() - {?ap_dm_timeout?})
+ORDER BY
+ `userid` ASC", __FILE__, __LINE__);
+ } // END - if
+ } // END - while
+} // END - if
- // Free memory
- SQL_FREERESULT($result_mails);
+// Free memory
+SQL_FREERESULT($result_mails);
- // Do we have deleted mails and the admin want's to receive a notification
- if (($DELETED > 0) && (getConfig('ap_dm_notify') == "Y")) {
- // Send out email to admin
- SEND_ADMIN_NOTIFICATION(AUTOPURGE_ADMIN_DEL_MAILS_SUBJECT, "admin_autopurge_del_mails", $DELETED, "");
- }
-}
+// Do we have deleted mails and the admin want's to receive a notification
+if (($deletedStats > 0) && (getConfig('ap_dm_notify') == 'Y')) {
+ // Send out email to admin
+ sendAdminNotification('{--ADMIN_AUTOPURGE_DELETE_MAILS_SUBJECT--}', 'admin_autopurge_del_mails', $deletedStats);
+} // END - if
-//
+// [EOF]
?>