1
0
mirror of https://github.com/e107inc/e107.git synced 2025-08-02 12:48:26 +02:00

More mailout - proper API for setting user bans, use sent email as basis for new email, and other fixes

This commit is contained in:
e107steved
2009-11-30 20:40:03 +00:00
parent bed15a72f2
commit ddc0383efa
10 changed files with 224 additions and 114 deletions

View File

@@ -9,9 +9,9 @@
* Administration Area - Admin Log
*
* $Source: /cvs_backup/e107_0.8/e107_admin/admin_log.php,v $
* $Revision: 1.32 $
* $Date: 2009-11-18 01:04:24 $
* $Author: e107coders $
* $Revision: 1.33 $
* $Date: 2009-11-30 20:40:02 $
* $Author: e107steved $
*
*/
@@ -50,9 +50,9 @@ if(is_array($pref['logLanguageFile'])) //... and for any plugins which support i
unset($qs);
require_once (e_ADMIN."auth.php");
require_once (e_HANDLER."message_handler.php");
require_once (e_HANDLER."form_handler.php");
require_once (e_ADMIN.'auth.php');
require_once (e_HANDLER.'message_handler.php');
require_once (e_HANDLER.'form_handler.php');
$emessage = &eMessage::getInstance();
$frm = new e_form(false);
@@ -122,6 +122,7 @@ if(isset($_POST['deleteitems']) && ($action == 'comments'))
unset($c_list);
}
// ****************** MAINTENANCE ******************
unset($back_count);
if(isset($_POST['deleteoldadmin']) && isset($_POST['rolllog_clearadmin']))
@@ -357,18 +358,25 @@ if($action == "config")
{
// User Audit log options (for info)
//=======================
// define('USER_AUDIT_SIGNUP',11); // User signed up
// define('USER_AUDIT_EMAILACK',12); // User responded to registration email
// define('USER_AUDIT_LOGIN',13); // User logged in
// define('USER_AUDIT_LOGOUT',14); // User logged out
// define('USER_AUDIT_NEW_DN',15); // User changed display name
// define('USER_AUDIT_NEW_PW',16); // User changed password
// define('USER_AUDIT_NEW_EML',17); // User changed email
// define('USER_AUDIT_NEW_SET',19); // User changed other settings (intentional gap in numbering)
// define('USER_AUDIT_SIGNUP',11); // User signed up
// define('USER_AUDIT_EMAILACK',12); // User responded to registration email
// define('USER_AUDIT_LOGIN',13); // User logged in
// define('USER_AUDIT_LOGOUT',14); // User logged out
// define('USER_AUDIT_NEW_DN',15); // User changed display name
// define('USER_AUDIT_NEW_PW',16); // User changed password
// define('USER_AUDIT_NEW_EML',17); // User changed email
// define('USER_AUDIT_NEW_SET',19); // User changed other settings (intentional gap in numbering)
// define('USER_AUDIT_ADD_ADMIN', 20); // User added by admin
// define('USER_AUDIT_MAIL_BOUNCE', 21); // User mail bounce
// define('USER_AUDIT_BANNED', 22); // User banned
// define('USER_AUDIT_BOUNCE_RESET', 23); // User bounce reset
// define('USER_AUDIT_TEMP_ACCOUNT', 24); // User temporary account
$audit_checkboxes = array(USER_AUDIT_SIGNUP => RL_LAN_071, USER_AUDIT_EMAILACK => RL_LAN_072, USER_AUDIT_LOGIN => RL_LAN_073, // USER_AUDIT_LOGOUT => RL_LAN_074, // Logout is lumped in with login
USER_AUDIT_NEW_DN => RL_LAN_075, USER_AUDIT_NEW_PW => RL_LAN_076, USER_AUDIT_PW_RES => RL_LAN_078, USER_AUDIT_NEW_EML => RL_LAN_077, USER_AUDIT_NEW_SET => RL_LAN_079, USER_AUDIT_ADD_ADMIN => RL_LAN_080);
USER_AUDIT_NEW_DN => RL_LAN_075, USER_AUDIT_NEW_PW => RL_LAN_076, USER_AUDIT_PW_RES => RL_LAN_078, USER_AUDIT_NEW_EML => RL_LAN_077, USER_AUDIT_NEW_SET => RL_LAN_079,
USER_AUDIT_ADD_ADMIN => RL_LAN_080, USER_AUDIT_MAIL_BOUNCE => RL_LAN_081, USER_AUDIT_BANNED => RL_LAN_082, USER_AUDIT_BOUNCE_RESET => RL_LAN_083,
USER_AUDIT_TEMP_ACCOUNT => RL_LAN_084);
if(! isset($e_userclass) && ! is_object($e_userclass))
{

View File

@@ -9,8 +9,8 @@
* Administration - Site Maintenance
*
* $Source: /cvs_backup/e107_0.8/e107_admin/mailout.php,v $
* $Revision: 1.30 $
* $Date: 2009-11-27 21:42:46 $
* $Revision: 1.31 $
* $Date: 2009-11-30 20:40:02 $
* $Author: e107steved $
*
*/
@@ -18,7 +18,6 @@
/*
TODO:
1. Improve maintenance page
2. Option to copy completed email to saved email page
*/
/*
@@ -122,6 +121,7 @@ $errors = array();
$subAction = '';
$midAction = '';
$fromHold = FALSE;
if (isset($_POST['mailaction']))
@@ -195,6 +195,20 @@ switch ($action)
}
break;
case 'mailcopy' : // Copy existing email and go to edit screen
if (isset($_POST['mailaction']))
{
$action = 'makemail';
$mailData = $mailAdmin->retrieveEmail($mailId);
if ($mailData === FALSE)
{
$emessage->add(LAN_MAILOUT_164.':'.$mailId, E_MESSAGE_ERROR);
break;
}
unset($mailData['mail_source_id']);
}
break;
case 'mailedit' : // Edit existing mail
if (isset($_POST['mailaction']))
{
@@ -325,9 +339,12 @@ switch ($action)
}
break;
case 'mailsendnow' : // Send mail previously on 'held' list.
$midAction = 'midMoveToSend';
$action = 'pending';
case 'mailsendnow' : // Send mail previously on 'held' list. Need to give opportunity to change time/date etc
// $midAction = 'midMoveToSend';
// $action = 'pending';
$action = 'marksend'; // This shows the email details for confirmation
$fromHold = TRUE;
$mailData['mail_source_id'] = $mailId;
break;
case 'maildeleteconfirm' :
@@ -501,7 +518,7 @@ switch ($action)
break;
case 'marksend' : // Show the send confirmation page
$mailAdmin->sendEmailCircular($mailData);
$mailAdmin->sendEmailCircular($mailData, $fromHold);
break;
case 'recipients' :

View File

@@ -11,9 +11,9 @@
| GNU General Public License (http://gnu.org).
|
| $Source: /cvs_backup/e107_0.8/e107_handlers/admin_log_class.php,v $
| $Revision: 1.19 $
| $Date: 2009-11-18 01:04:43 $
| $Author: e107coders $
| $Revision: 1.20 $
| $Date: 2009-11-30 20:40:03 $
| $Author: e107steved $
To do:
1. Do we need to check for presence of elements of debug_backtrace() to avoid notices?
2. Reflect possible DB structure changes once finalised
@@ -66,6 +66,7 @@ class e_admin_log
define("LOG_TO_ROLLING", 4);
// User audit logging (intentionally start at 10 - stick to 2 digits)
// The last two digits must match that for the corresponding log message
define('USER_AUDIT_ADMIN', 10); // User data changed by admin
define('USER_AUDIT_SIGNUP', 11); // User signed up
define('USER_AUDIT_EMAILACK', 12); // User responded to registration email
@@ -77,6 +78,10 @@ class e_admin_log
define('USER_AUDIT_PW_RES', 18); // Password reset/resent activation email
define('USER_AUDIT_NEW_SET', 19); // User changed other settings
define('USER_AUDIT_ADD_ADMIN', 20); // User added by admin
define('USER_AUDIT_MAIL_BOUNCE', 21); // User mail bounce
define('USER_AUDIT_BANNED', 22); // User banned
define('USER_AUDIT_BOUNCE_RESET', 23); // User bounce reset
define('USER_AUDIT_TEMP_ACCOUNT', 24); // User temporary account
}
/**

View File

@@ -9,8 +9,8 @@
* e107 Main
*
* $Source: /cvs_backup/e107_0.8/e107_handlers/mail_manager_class.php,v $
* $Revision: 1.8 $
* $Date: 2009-11-27 21:42:46 $
* $Revision: 1.9 $
* $Date: 2009-11-30 20:40:03 $
* $Author: e107steved $
*/
@@ -32,7 +32,6 @@ will be included in preference to the current theme style.
TODO:
- Consider whether to extract links in text-only emails
- makeEmailBody - could use regex to modify links
- call user API to set ban
Event Triggers generated
@@ -1122,30 +1121,12 @@ class e107MailManager
$errors[] = 'Bad element count: '.count($vals);
}
elseif ($uid || $emailAddress)
{ // Now log the bounce against the user
$this->checkDB(1);
$qry = '';
if ($uid) { $qry = '`user_id`='.$uid; }
if ($emailAddress) { if ($qry) $qry .= ' OR '; $qry .= "`user_email` = '{$emailAddress}'"; }
if (FALSE === $this->db->db_Select('user', 'user_id, user_email', $qry))
{ // Now log the bounce against the user (user handler will do any required logging)
require_once(e_HANDLER.'user_handler.php');
$result = userHandler::userStatusUpdate('bounce', $uid, $emailAddress);
if ($result) // Returns FALSE if update successful
{
$errors[] = 'User not found: '.$uid.'/'.$emailAddress;
}
else
{
$row = $this->db->db_Fetch(MYSQL_ASSOC);
if ($uid && ($uid != $row['user_id']))
{
$errors[] = 'UID mismatch: '.$uid.'/'.$row['user_id'];
}
elseif ($emailAddress && ($emailAddress != $row['user_email']))
{
$errors[] = 'User email mismatch: '.$emailAddress.'/'.$row['user_email'];
}
else
{ // Valid user!
$this->db->db_Update('user', '`user_ban` = 3 WHERE `user_id` = '.$row['user_id'].' LIMIT 1'); // TODO: Call via user API
}
$errors[] = $result;
}
}
if (count($errors))

View File

@@ -9,8 +9,8 @@
* Administration - Site Maintenance
*
* $Source: /cvs_backup/e107_0.8/e107_handlers/mailout_admin_class.php,v $
* $Revision: 1.7 $
* $Date: 2009-11-27 21:42:46 $
* $Revision: 1.8 $
* $Date: 2009-11-30 20:40:03 $
* $Author: e107steved $
*
*/
@@ -25,7 +25,6 @@ TODO:
1. Use API to downloads plugin to get available files (when available)
2. Fuller checking prior to send
3. May want more control over date display format
4. Look at orphan removal query
*/
if (!defined('e107_INIT')) { exit; }
@@ -129,7 +128,6 @@ class mailoutAdminClass extends e107MailManager
'maildelete' => LAN_DELETE
),
'pending' => array(
// 'mailsendnow' => LAN_MAILOUT_158,
'mailhold' => LAN_MAILOUT_159,
'mailcancel' => LAN_MAILOUT_160,
'mailtargets' => LAN_MAILOUT_181
@@ -140,7 +138,7 @@ class mailoutAdminClass extends e107MailManager
'mailtargets' => LAN_MAILOUT_181
),
'sent' => array(
'mailsendnow' => LAN_EDIT,
'mailcopy' => LAN_MAILOUT_251,
'maildelete' => LAN_DELETE,
'mailtargets' => LAN_MAILOUT_181
),
@@ -1105,57 +1103,71 @@ class mailoutAdminClass extends e107MailManager
* Generate a list of emails to send
* Returns various information to display in a confirmation screen
*
* The email and its recipients are stored in the DB with a tag of 'MAIL_STATUS-TEMP'
* The email and its recipients are stored in the DB with a tag of 'MAIL_STATUS_TEMP' of its a new email (no change if already on hold)
*
* @param $mailData array Details of the email, selection criteria etc
* @param array $mailData - Details of the email, selection criteria etc
* @param boolean $fromHold - FALSE if this is a 'new' email to send, TRUE if its already been put on hold (selects processing path)
* @return text for display
*/
public function sendEmailCircular($mailData)
public function sendEmailCircular($mailData, $fromHold = FALSE)
{
// Start by saving the email
$mailData['mail_content_status'] = MAIL_STATUS_TEMP;
$mailData['mail_create_app'] = 'core';
$result = $this->saveEmail($mailData, TRUE);
if (is_numeric($result))
{
$mailMainID = $mailData['mail_source_id'] = $result;
if ($fromHold)
{ // Email data already generated
$mailMainID = $mailData['mail_source_id'];
if ($mailMainID == 0) return FALSE;
if (FALSE === ($mailData = $this->retrieveEmail($mailMainID))) // Get the new data
{
return FALSE;
}
$counters['add'] = $mailData['mail_togo_count']; // Set up the counters
$counters['dups'] = 0;
}
else
{
// TODO: Handle error
}
$this->mailInitCounters($mailMainID); // Initialise counters for emails added
foreach ($this->mailHandlers as $m)
{ // Get email addresses from each handler in turn. Do them one at a time, so that all can use the $sql data object
if ($m->mailerEnabled && isset($mailData['mail_selectors'][$m->mailerSource]))
// Start by saving the email
$mailData['mail_content_status'] = MAIL_STATUS_TEMP;
$mailData['mail_create_app'] = 'core';
$result = $this->saveEmail($mailData, TRUE);
if (is_numeric($result))
{
// Initialise
$mailerCount = $m->selectInit($mailData['mail_selectors'][$m->mailerSource]);
if ($mailerCount > 0)
$mailMainID = $mailData['mail_source_id'] = $result;
}
else
{
// TODO: Handle error
}
$this->mailInitCounters($mailMainID); // Initialise counters for emails added
foreach ($this->mailHandlers as $m)
{ // Get email addresses from each handler in turn. Do them one at a time, so that all can use the $sql data object
if ($m->mailerEnabled && isset($mailData['mail_selectors'][$m->mailerSource]))
{
// Get email addresses - add to list, strip duplicates
while ($row = $m->selectAdd())
{ // Add email addresses to the database ready for sending (the body is never saved in the DB - it gets passed as a $_POST value)
$result = $this->mailAddNoDup($mailMainID, $row, MAIL_STATUS_TEMP);
if ($result === FALSE)
{
// Error
// Initialise
$mailerCount = $m->selectInit($mailData['mail_selectors'][$m->mailerSource]);
if ($mailerCount > 0)
{
// Get email addresses - add to list, strip duplicates
while ($row = $m->selectAdd())
{ // Add email addresses to the database ready for sending (the body is never saved in the DB - it gets passed as a $_POST value)
$result = $this->mailAddNoDup($mailMainID, $row, MAIL_STATUS_TEMP);
if ($result === FALSE)
{
// Error
}
}
}
$m->select_close(); // Close
// Update the stats after each handler
$this->mailUpdateCounters($mailMainID);
}
$m->select_close(); // Close
// Update the stats after each handler
$this->mailUpdateCounters($mailMainID);
}
$counters = $this->mailRetrieveCounters($mailMainID);
// $this->e107->admin_log->log_event('MAIL_02','ID: '.$mailMainID.' '.$counters['add'].'[!br!]'.$_POST['email_from_name']." <".$_POST['email_from_email'],E_LOG_INFORMATIVE,'');
}
$counters = $this->mailRetrieveCounters($mailMainID);
// $this->e107->admin_log->log_event('MAIL_02','ID: '.$mailMainID.' '.$counters['add'].'[!br!]'.$_POST['email_from_name']." <".$_POST['email_from_email'],E_LOG_INFORMATIVE,'');
// We've got all the email addresses here - display a confirmation form
// Include start/end dates for send
@@ -1191,10 +1203,13 @@ class mailoutAdminClass extends e107MailManager
$text .= $this->makeAdvancedOptions(TRUE); // Show the table of advanced options
$text .= "<div class='buttons-bar center'>
<input class='button' type='submit' name='email_send' value=\"".LAN_SEND."\" />
&nbsp;<input class='button' type='submit' name='email_hold' value=\"".LAN_HOLD."\" />
&nbsp;<input class='button' type='submit' name='email_cancel' value=\"".LAN_CANCEL."\" />
</div>
<input class='button' type='submit' name='email_send' value=\"".LAN_SEND."\" />";
if (!$fromHold)
{
$text .= "&nbsp;<input class='button' type='submit' name='email_hold' value=\"".LAN_HOLD."\" />
&nbsp;<input class='button' type='submit' name='email_cancel' value=\"".LAN_CANCEL."\" />";
}
$text .= "</div>
</form>
</div>";
@@ -1422,7 +1437,7 @@ class mailoutAdminClass extends e107MailManager
$results[] = 'Error '.$this->db2->mySQLlastErrNum.':'.$this->db2->mySQLlastErrText.' deleting orphaned records from mail_recipients';
$noError = FALSE;
}
else
elseif ($res)
{
if ($res) $results[] = str_replace('--COUNT--', $res, LAN_MAILOUT_226);
}

View File

@@ -9,8 +9,8 @@
* Handler - user-related functions
*
* $Source: /cvs_backup/e107_0.8/e107_handlers/user_handler.php,v $
* $Revision: 1.19 $
* $Date: 2009-11-19 20:36:55 $
* $Revision: 1.20 $
* $Date: 2009-11-30 20:40:03 $
* $Author: e107steved $
*
*/
@@ -20,8 +20,6 @@
USER HANDLER CLASS - manages login and various user functions
Vetting routines TODO:
user_sess processing
user_image processing
user_xup processing - nothing special?
*/
@@ -70,6 +68,7 @@ class UserHandler
0 - Null method
1 - Check for duplicates
2 - Check against $pref['signup_disallow_text']
3 - Check email address against remote server, only if option enabled
Index is the destination field name. If the source index name is different, specify 'srcName' in the array.
@@ -643,10 +642,78 @@ Following fields auto-filled in code as required:
$ret = TRUE;
}
}
}
/**
* Updates user status, primarily the user_ban field, to reflect outside events
* @var string $start - 'ban', 'bounce'
* @var integer $uid - internal user ID, zero if not known
* @var string $emailAddress - email address (optional)
* @return boolean | string - FALSE if user found, error message if not
*/
public function userStatusUpdate($action, $uid, $emailAddress = '')
{
$db = e107::getDb();
$qry = '';
$error = FALSE; // Assume no error to start with
$uid = intval($uid); // Precautionary - should have already been done
switch ($action)
{
case 'ban' :
$newVal = USER_BANNED;
$logEvent = USER_AUDIT_BANNED;
break;
case 'bounce' :
$newVal = USER_EMAIL_BOUNCED;
$logEvent = USER_AUDIT_MAIL_BOUNCE;
break;
case 'reset' :
$newVal = USER_BOUNCED_RESET;
$logEvent = USER_AUDIT_BOUNCE_RESET;
break;
case 'temp' :
$newVal = USER_TEMPORARY_ACCOUNT;
$logEvent = USER_AUDIT_TEMP_ACCOUNT;
break;
default :
return 'Invalid action: '.$action;
}
if ($uid) { $qry = '`user_id`='.$uid; }
if ($emailAddress) { if ($qry) $qry .= ' OR '; $qry .= "`user_email` = '{$emailAddress}'"; }
if (FALSE === $db->db_Select('user', 'user_id, user_email, user_ban, user_loginname', $qry.' LIMIT 1'))
{
$error = 'User not found: '.$uid.'/'.$emailAddress;
}
else
{
$row = $db->db_Fetch(MYSQL_ASSOC);
if ($uid && ($uid != $row['user_id']))
{
$error = 'UID mismatch: '.$uid.'/'.$row['user_id'];
}
elseif ($emailAddress && ($emailAddress != $row['user_email']))
{
$error = 'User email mismatch: '.$emailAddress.'/'.$row['user_email'];
}
else
{ // Valid user!
if ($row['user_ban'] != $newVal) // We could implement a hierarchy here, so that an important status isn't overridden by a lesser one
{ // Only update if needed
$db->db_Update('user', '`user_ban` = '.$newVal.', `user_email` = \'\' WHERE `user_id` = '.$row['user_id'].' LIMIT 1');
// Add to user audit log TODO: Should we log to admin log as well?
$adminLog = e107::getAdminLog();
$adminLog->user_audit($logEvent, array('user_ban' => $newVal, 'user_email' => $row['user_email']), $row['user_id'], $row['user_loginname']);
}
}
}
return $error;
}
}
e107::includeLan(e_LANGUAGEDIR.e_LANGUAGE."/admin/lan_administrator.php");
class e_userperms

View File

@@ -9,9 +9,9 @@
*
*
* $Source: /cvs_backup/e107_0.8/e107_languages/English/admin/help/mailout.php,v $
* $Revision: 1.6 $
* $Date: 2009-11-18 01:05:12 $
* $Author: e107coders $
* $Revision: 1.7 $
* $Date: 2009-11-30 20:40:03 $
* $Author: e107steved $
*/
if (!defined('e107_INIT')) { exit; }
@@ -32,7 +32,8 @@ $action = $e107->tp->toDB(varset($_GET['mode'],'makemail'));
$text = 'Select and use a saved email template to send a mailshot. Delete any template no longer required';
break;
case 'pending' :
$text = 'List of mailshots released for sending, together with current status.';
$text = 'List of mailshots released for sending, together with current status. The mail scheduler task will process these emails as it is able, taking account of
the earliest and latest sending dates you set';
break;
case 'held' :
$text = 'List of emails which have been prepared for sending, but not yet released';
@@ -56,8 +57,16 @@ $action = $e107->tp->toDB(varset($_GET['mode'],'makemail'));
A test email is sent using the current method and settings.<br /><br />';
$text .= '<b>Emailing Method</b><br />
Use SMTP to send mail if possible. The settings will depend on your host\'s mail server.<br /><br />';
$text .= '<b>Default email format</b><br />
Emails may be sent either in plain text only, or in HTML format. The latter generally gives a better appearance, but is more prone to being filtered by various
security measures. If you select HTML, a separate plain text part is added.<br /><br />';
$text .= '<b>Bulk mail controls</b><br />
The values you set here will depend on your host, and on the number of emails you send; it may be possible to set all values to zero so that the
mail queue is emptied virtually instantly.<br /><br />';
$text .= '<b>Bounced Emails</b><br />
You can specify a POP3 account to receive the return response when an email is undeliverable. Normally this will be a standard
You can specify an email address to receive the return response when an email is undeliverable. If you have control over your server, you can specify the
separate scheduler-driven auto-processing script; this receives bounce messages as they arrive, and updates status instantly. Otherwise you can specify a separate email account,
which can be checked either periodically (using the scheduler), or manually via the user options menu. Normally this will be a standard
POP3 account; use the TLS-related options only if specifically required by your host<br /><br />';
$text .= '<b>Email Address Sources</b><br />
If you have additional mail-related plugins, you can select which of them may contribute email addresses to the list.<br /><br />';

View File

@@ -1,6 +1,6 @@
<?php
// e107 Language File.
// $Id: lan_admin_log.php,v 1.9 2009-11-08 09:14:39 e107coders Exp $
// $Id: lan_admin_log.php,v 1.10 2009-11-30 20:40:03 e107steved Exp $
//define('RL_LAN_001', 'System Logs');
define('RL_LAN_002', "Rolling Log");
@@ -73,6 +73,10 @@ define('RL_LAN_077', 'Change email address');
define('RL_LAN_078', 'Password Reset');
define('RL_LAN_079', 'Change other user settings');
define('RL_LAN_080', 'Admin quick add user');
define('RL_LAN_081', 'Mail bounces');
define('RL_LAN_082', 'User bans');
define('RL_LAN_083', 'Mail bounce resets');
define('RL_LAN_084', 'Temporary accounts');
// Intentional gap
define('RL_LAN_090', 'Download ID');
define('RL_LAN_091', 'Detailed timings');

View File

@@ -1,6 +1,6 @@
<?php
// e107 Language File.
// $Id: lan_log_messages.php,v 1.40 2009-11-24 20:40:34 e107steved Exp $
// $Id: lan_log_messages.php,v 1.41 2009-11-30 20:40:03 e107steved Exp $
/*
The definitions in this file are for standard 'explanatory' messages which might be entered
@@ -11,7 +11,7 @@ into any of the system logs. They are in three groups with different prefixes:
*/
// User audit trail events. For messages 11-30, the last 2 digits must match the define for the event type in the admin log
// User audit trail events. For messages 11-30, the last 2 digits must match the define for the event type in the admin log class file
define('LAN_AUDIT_LOG_001', 'Access by banned user');
define('LAN_AUDIT_LOG_002', 'Flood protection activated');
define('LAN_AUDIT_LOG_003', 'Access from banned IP Address');
@@ -32,6 +32,10 @@ define('LAN_AUDIT_LOG_017', 'User changed email address');
define('LAN_AUDIT_LOG_018', 'User password reset');
define('LAN_AUDIT_LOG_019', 'User changed settings');
define('LAN_AUDIT_LOG_020', 'User added by admin');
define('LAN_AUDIT_LOG_021', 'User email bounce');
define('LAN_AUDIT_LOG_022', 'User banned');
define('LAN_AUDIT_LOG_023', 'User bounce reset');
define('LAN_AUDIT_LOG_024', 'User temporary status');
// Admin log events

View File

@@ -9,8 +9,8 @@
* Administration - Site Maintenance
*
* $Source: /cvs_backup/e107_0.8/e107_languages/English/admin/lan_mailout.php,v $
* $Revision: 1.13 $
* $Date: 2009-11-27 21:42:46 $
* $Revision: 1.14 $
* $Date: 2009-11-30 20:40:03 $
* $Author: e107steved $
*
*/
@@ -169,8 +169,8 @@ define('LAN_MAILOUT_152', 'Blind copy to');
define('LAN_MAILOUT_153', 'Attachments');
define('LAN_MAILOUT_154', 'Send Format');
define('LAN_MAILOUT_155', 'Selectors');
define('LAN_MAILOUT_156', 'Maximum number of emails to send per cron tick');
define('LAN_MAILOUT_157', 'Value will depend on a number of factors, including how often your mail queue cron job is triggered and the rate at which your ISP will accept outgoing mail. Zero to clear queue each time');
define('LAN_MAILOUT_156', 'Maximum number of emails to send per scheduler tick');
define('LAN_MAILOUT_157', 'Value will depend on a number of factors, including how often your mail queue scheduler job is triggered and the rate at which your ISP will accept outgoing mail. Zero to clear queue each time');
define('LAN_MAILOUT_158', 'Send now');
define('LAN_MAILOUT_159', 'Hold email');
define('LAN_MAILOUT_160', 'Cancel send');
@@ -269,7 +269,7 @@ define('LAN_MAILOUT_247', 'Email information:');
define('LAN_MAILOUT_248', 'Completion status: ');
define('LAN_MAILOUT_249', 'Send results:');
define('LAN_MAILOUT_250', '--- End of notification ---');
define('LAN_MAILOUT_251', '');
define('LAN_MAILOUT_251', 'Copy and edit');
define('LAN_MAILOUT_252', '');
define('LAN_MAILOUT_253', '');
define('LAN_MAILOUT_254', '');