mirror of
https://github.com/e107inc/e107.git
synced 2025-07-12 18:46:20 +02:00
Bulk mailer - phase 1 - support add-in email address sources plus other features
This commit is contained in:
File diff suppressed because it is too large
Load Diff
248
e107_handlers/mailout_class.php
Normal file
248
e107_handlers/mailout_class.php
Normal file
@ -0,0 +1,248 @@
|
|||||||
|
<?php
|
||||||
|
/*
|
||||||
|
+ ----------------------------------------------------------------------------+
|
||||||
|
| e107 website system
|
||||||
|
|
|
||||||
|
| <20>Steve Dunstan 2001-2002
|
||||||
|
| http://e107.org
|
||||||
|
| jalist@e107.org
|
||||||
|
|
|
||||||
|
| Released under the terms and conditions of the
|
||||||
|
| GNU General Public License (http://gnu.org).
|
||||||
|
|
|
||||||
|
| $Source: /cvs_backup/e107_0.8/e107_handlers/mailout_class.php,v $
|
||||||
|
| $Revision: 1.1 $
|
||||||
|
| $Date: 2007-12-22 14:49:21 $
|
||||||
|
| $Author: e107steved $
|
||||||
|
+----------------------------------------------------------------------------+
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
if (!defined('e107_INIT')) { exit; }
|
||||||
|
|
||||||
|
/*
|
||||||
|
Class for 'core' mailout function. Additional mailout sources may replicate the functions of this class under a different name, or may use inheritance.
|
||||||
|
|
||||||
|
In general each class object must be self-contained, and use internal variables for storage
|
||||||
|
|
||||||
|
The class may use the global $sql object for database access - it will effectively have exclusive use of this during the email address search phase
|
||||||
|
|
||||||
|
It is the responsibility of each class to manager permission restrictions where required.
|
||||||
|
|
||||||
|
*/
|
||||||
|
// These variables determine the circumstances under which this class is loaded (only used during loading, and may be overwritten later)
|
||||||
|
$mailer_include_with_default = TRUE; // Mandatory - if false, show only when mailout for this specific plugin is enabled
|
||||||
|
$mailer_exclude_default = TRUE; // Mandatory - if TRUE, when this plugin's mailout is active, the default isn't loaded
|
||||||
|
|
||||||
|
class core_mailout
|
||||||
|
{
|
||||||
|
var $mail_count = 0;
|
||||||
|
var $mail_read = 0;
|
||||||
|
var $mailer_name = LAN_MAILOUT_68; // Text to identify the source of selector (displayed on left of admin page)
|
||||||
|
var $mailer_enabled = TRUE; // Mandatory - set to FALSE to disable this plugin (e.g. due to permissions restrictions)
|
||||||
|
|
||||||
|
// Constructor
|
||||||
|
function core_mailout()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
// Data selection routines
|
||||||
|
|
||||||
|
// Initialise data selection - save any queries or other information into internal variables, do initial DB queries as appropriate.
|
||||||
|
// Return number of records available (or 1 if unknown) on success, FALSE on failure
|
||||||
|
// Could in principle read all addresses and buffer them for later routines, if this is more convenient
|
||||||
|
function select_init()
|
||||||
|
{
|
||||||
|
global $sql; // We can use this OK
|
||||||
|
|
||||||
|
switch ($_POST['email_to'])
|
||||||
|
{
|
||||||
|
// Build the query for the user database
|
||||||
|
case "all" :
|
||||||
|
case "admin" :
|
||||||
|
switch ($_POST['email_to'])
|
||||||
|
{
|
||||||
|
case "admin":
|
||||||
|
$insert = "u.user_admin='1' ";
|
||||||
|
break;
|
||||||
|
case "all":
|
||||||
|
$insert = "u.user_ban='0' ";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
$qry = ", ue.* FROM #user AS u LEFT JOIN #user_extended AS ue ON ue.user_extended_id = u.user_id WHERE {$insert} ";
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "unverified" :
|
||||||
|
$qry = " FROM #user AS u WHERE u.user_ban='2'";
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "self" :
|
||||||
|
$qry = " FROM #user AS u WHERE u.user_id='".USERID."'";
|
||||||
|
break;
|
||||||
|
|
||||||
|
default :
|
||||||
|
$insert = "u.user_class REGEXP concat('(^|,)',{$_POST['email_to']},'(,|$)') AND u.user_ban='0' ";
|
||||||
|
$qry = ", ue.* FROM #user AS u LEFT JOIN #user_extended AS ue ON ue.user_extended_id = u.user_id WHERE {$insert} ";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Determine which fields we actually need (u.user_sess is the signup link)
|
||||||
|
$qry = "SELECT u.user_id, u.user_name, u.user_email, u.user_sess".$qry;
|
||||||
|
|
||||||
|
if($_POST['extended_1_name'] && $_POST['extended_1_value'])
|
||||||
|
{
|
||||||
|
$qry .= " AND ".$_POST['extended_1_name']." = '".$_POST['extended_1_value']."' ";
|
||||||
|
}
|
||||||
|
|
||||||
|
if($_POST['extended_2_name'] && $_POST['extended_2_value'])
|
||||||
|
{
|
||||||
|
$qry .= " AND ".$_POST['extended_2_name']." = '".$_POST['extended_2_value']."' ";
|
||||||
|
}
|
||||||
|
|
||||||
|
if($_POST['user_search_name'] && $_POST['user_search_value'])
|
||||||
|
{
|
||||||
|
$qry .= " AND u.".$_POST['user_search_name']." LIKE '%".$_POST['user_search_value']."%' ";
|
||||||
|
}
|
||||||
|
|
||||||
|
$qry .= " ORDER BY u.user_name";
|
||||||
|
if (!( $this->mail_count = $sql->db_Select_gen($qry))) return FALSE;
|
||||||
|
$this->mail_read = 0;
|
||||||
|
return $this->mail_count;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Return an email address to add. Return FALSE if no more addresses to add
|
||||||
|
// Returns an array with appropriate elements defined:
|
||||||
|
// 'user_id' - non-zero if a registered user, zero if a non-registered user. (Always non-zero from this class)
|
||||||
|
// 'user_name' - user name
|
||||||
|
// 'user_email' - email address to use
|
||||||
|
// 'user_signup' - signup link (zero if not applicable)
|
||||||
|
function select_add()
|
||||||
|
{
|
||||||
|
global $sql;
|
||||||
|
if (!($row = $sql->db_Fetch())) return FALSE;
|
||||||
|
$ret = array('user_id' => $row['user_id'],
|
||||||
|
'user_name' => $row['user_name'],
|
||||||
|
'user_email' => $row['user_email'],
|
||||||
|
'user_signup' => $row['user_sess']
|
||||||
|
);
|
||||||
|
$this->mail_read++;
|
||||||
|
// echo "Return value: ".$row['user_name']."<br />";
|
||||||
|
return $ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Called once all email addresses read, to do any housekeeping needed
|
||||||
|
function select_close()
|
||||||
|
{
|
||||||
|
// Nothing to do here
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Called to show current selection criteria, and optionally allow edit
|
||||||
|
// Returns HTML which is displayed in a table cell. Typically we return a complete table
|
||||||
|
// $allow_edit is TRUE to allow user to change the selection; FALSE to just display current settings
|
||||||
|
|
||||||
|
function show_select($allow_edit = FALSE)
|
||||||
|
{
|
||||||
|
global $sql;
|
||||||
|
$ret = "<table style='width:95%'>";
|
||||||
|
|
||||||
|
if ($allow_edit)
|
||||||
|
{
|
||||||
|
// User class select
|
||||||
|
$ret .= " <tr>
|
||||||
|
<td class='forumheader3'>".LAN_MAILOUT_03.": </td>
|
||||||
|
<td class='forumheader3'>
|
||||||
|
".userclasses("email_to", $_POST['email_to'])."</td>
|
||||||
|
</tr>";
|
||||||
|
|
||||||
|
// User Search Field.
|
||||||
|
$u_array = array("user_name"=>LAN_MAILOUT_43,"user_login"=>LAN_MAILOUT_44,"user_email"=>LAN_MAILOUT_45);
|
||||||
|
$ret .= "
|
||||||
|
<tr>
|
||||||
|
<td style='width:35%' class='forumheader3'>".LAN_MAILOUT_46."
|
||||||
|
<select name='user_search_name' class='tbox'>
|
||||||
|
<option value=''> </option>";
|
||||||
|
|
||||||
|
foreach ($u_array as $key=>$val)
|
||||||
|
{
|
||||||
|
$ret .= "<option value='{$key}' >".$val."</option>\n";
|
||||||
|
}
|
||||||
|
$ret .= "
|
||||||
|
</select> ".LAN_MAILOUT_47." </td>
|
||||||
|
<td style='width:65%' class='forumheader3'>
|
||||||
|
<input type='text' name='user_search_value' class='tbox' style='width:80%' value='' />
|
||||||
|
</td></tr>
|
||||||
|
";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Extended user fields
|
||||||
|
$ret .= "
|
||||||
|
<tr><td class='forumheader3'>".LAN_MAILOUT_46.ret_extended_field_list('extended_1_name', TRUE).LAN_MAILOUT_48." </td>
|
||||||
|
<td class='forumheader3'>
|
||||||
|
<input type='text' name='extended_1_value' class='tbox' style='width:80%' value='' />
|
||||||
|
</td></tr>
|
||||||
|
<tr><td class='forumheader3'>".LAN_MAILOUT_46.ret_extended_field_list('extended_2_name', TRUE).LAN_MAILOUT_48." </td>
|
||||||
|
<td class='forumheader3'>
|
||||||
|
<input type='text' name='extended_2_value' class='tbox' style='width:80%' value='' />
|
||||||
|
</td></tr>
|
||||||
|
";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(is_numeric($_POST['email_to']))
|
||||||
|
{
|
||||||
|
$sql->db_Select("userclass_classes", "userclass_name", "userclass_id = '{$_POST['email_to']}'");
|
||||||
|
$row = $sql->db_Fetch();
|
||||||
|
$_to = LAN_MAILOUT_23.$row['userclass_name'];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$_to = $_POST['email_to'];
|
||||||
|
}
|
||||||
|
$ret .= "<tr>
|
||||||
|
<td class='forumheader3' style='width:30%'>".LAN_MAILOUT_03."</td>
|
||||||
|
<td class='forumheader3'>".$_to." ";
|
||||||
|
if($_POST['email_to'] == "self"){
|
||||||
|
$text .= "<".USEREMAIL.">";
|
||||||
|
}
|
||||||
|
$ret .= "</td></tr>";
|
||||||
|
|
||||||
|
|
||||||
|
if ($_POST['user_search_name'] && $_POST['user_search_value'])
|
||||||
|
{
|
||||||
|
$ret .= "
|
||||||
|
<tr>
|
||||||
|
<td class='forumheader3' style='width:30%'>".$_POST['user_search_name']."</td>
|
||||||
|
<td class='forumheader3'>".$_POST['user_search_value']." </td>
|
||||||
|
</tr>";
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($_POST['extended_1_name'] && $_POST['extended_1_value'])
|
||||||
|
{
|
||||||
|
$ret .= "
|
||||||
|
<tr>
|
||||||
|
<td class='forumheader3' style='width:30%'>".$_POST['extended_1_name']."</td>
|
||||||
|
<td class='forumheader3'>".$_POST['extended_1_value']." </td>
|
||||||
|
</tr>";
|
||||||
|
}
|
||||||
|
if ($_POST['extended_2_name'] && $_POST['extended_2_value'])
|
||||||
|
{
|
||||||
|
$ret .= "
|
||||||
|
<tr>
|
||||||
|
<td class='forumheader3' style='width:30%'>".$_POST['extended_2_name']."</td>
|
||||||
|
<td class='forumheader3'>".$_POST['extended_2_value']." </td>
|
||||||
|
</tr>";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return $ret.'</table>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
?>
|
@ -11,57 +11,116 @@
|
|||||||
| GNU General Public License (http://gnu.org).
|
| GNU General Public License (http://gnu.org).
|
||||||
|
|
|
|
||||||
| $Source: /cvs_backup/e107_0.8/e107_handlers/phpmailer/mailout_process.php,v $
|
| $Source: /cvs_backup/e107_0.8/e107_handlers/phpmailer/mailout_process.php,v $
|
||||||
| $Revision: 1.5 $
|
| $Revision: 1.6 $
|
||||||
| $Date: 2007-08-02 20:37:10 $
|
| $Date: 2007-12-22 14:49:28 $
|
||||||
| $Author: e107steved $
|
| $Author: e107steved $
|
||||||
|
|
|
||||||
|
| Modifications in hand to work with most recent mailout.php
|
||||||
|
|
||||||
|
To do:
|
||||||
|
1. Decide final resting place for log - possibly accumulate, and write to an admin log entry?
|
||||||
|
2. Admin log entries?
|
||||||
|
3. Better vetting on 'cancel' button?
|
||||||
|
4. Option to add user name in subject line - support |...| and {...} - done; test
|
||||||
|
5. Strip bbcode from plain text emails (ideally needs updated parser).
|
||||||
|
6. Support phpmailer 2.0 options
|
||||||
|
7. Log cancellation of email run
|
||||||
|
|
|
||||||
+----------------------------------------------------------------------------+
|
+----------------------------------------------------------------------------+
|
||||||
*/
|
*/
|
||||||
require_once("../../class2.php");
|
require_once("../../class2.php");
|
||||||
if(!getperms("W")){ header("location:".e_BASE."index.php"); }
|
if(!getperms("W")){ header("location:".e_BASE."index.php"); }
|
||||||
include_lan(e_LANGUAGEDIR.e_LANGUAGE."/admin/lan_mailout.php");
|
include_lan(e_LANGUAGEDIR.e_LANGUAGE."/admin/lan_mailout.php");
|
||||||
|
|
||||||
|
|
||||||
|
// Directory for log (if enabled)
|
||||||
|
define('MAIL_LOG_PATH',e_PLUGIN."log/logs/");
|
||||||
|
|
||||||
$HEADER = "";
|
$HEADER = "";
|
||||||
$FOOTER = "";
|
$FOOTER = "";
|
||||||
define("e_PAGETITLE",MAILAN_60);
|
define("e_PAGETITLE",LAN_MAILOUT_60);
|
||||||
require_once(HEADERF);
|
require_once(HEADERF);
|
||||||
set_time_limit(18000);
|
set_time_limit(18000);
|
||||||
session_write_close();
|
session_write_close();
|
||||||
|
|
||||||
|
// $logenable - 0 = log disabled, 1 = 'dry run' (debug and log, no send). 2 = 'log all' (send, and log result). 3 = 'dry run' with failures
|
||||||
|
// $add_email - 1 includes email detail in log
|
||||||
|
list($logenable,$add_email) = explode(',',varset($pref['mail_log_options'],'0,0'));
|
||||||
|
|
||||||
if($_POST['cancel_emails']){
|
|
||||||
|
if($_POST['cancel_emails'])
|
||||||
|
{
|
||||||
$sql -> db_Delete("generic", "gen_datestamp='".intval($_POST['mail_id'])."' ");
|
$sql -> db_Delete("generic", "gen_datestamp='".intval($_POST['mail_id'])."' ");
|
||||||
|
|
||||||
$text = "<div style='text-align:center;width:220px'><br />".MAILAN_66; // Cancelled Successfully;
|
$text = "<div style='text-align:center;width:220px'><br />".LAN_MAILOUT_66; // Cancelled Successfully;
|
||||||
$text .= "<div style='text-align:center;margin-left:auto;margin-right:auto;position:absolute;left:10px;top:110px'>
|
$text .= "<div style='text-align:center;margin-left:auto;margin-right:auto;position:absolute;left:10px;top:110px'>
|
||||||
<br /><input type='button' class='button' name='close' value='Close' onclick=\"window.close()\" />
|
<br /><input type='button' class='button' name='close' value='Close' onclick=\"window.close()\" />
|
||||||
</div></div>";
|
</div></div>";
|
||||||
|
|
||||||
$ns -> tablerender(MAILAN_59, $text);
|
$ns -> tablerender(LAN_MAILOUT_59, $text);
|
||||||
echo "</body></html>";
|
echo "</body></html>";
|
||||||
|
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
ob_implicit_flush();
|
|
||||||
/*
|
|
||||||
if (ob_get_level() == 0) {
|
|
||||||
ob_start();
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
// -------------------- Configure PHP Mailer ------------------------------>
|
ob_implicit_flush();
|
||||||
|
|
||||||
|
if (e_QUERY)
|
||||||
|
{
|
||||||
|
$tmp = explode('.',e_QUERY);
|
||||||
|
$mail_id = intval(varset($tmp[0],0)); // ID in 'generic' table corresponding to the recipient entries
|
||||||
|
$mail_text_id = intval(varset($tmp[1],0)); // Record number in 'generic' table corresponding to the email data
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$mail_id = intval(varset($_POST['mail_id'],0)); // ID in 'generic' table corresponding to the recipient entries
|
||||||
|
$mail_text_id = intval(varset($_POST['mail_text_id'],0)); // ID in 'generic' table corresponding to the recipient entries
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (($mail_id == 0) || ($mail_text_id == 0))
|
||||||
|
{
|
||||||
|
echo "Invalid parameters: {$mail_id}, {$mail_text_id}!<br />";
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Get the email itself from the 'generic' table
|
||||||
|
$qry = "SELECT * FROM #generic WHERE `gen_id` = {$mail_text_id} AND gen_type='savemail' and gen_datestamp = '".$mail_id."' ";
|
||||||
|
if (!$sql -> db_Select_gen($qry))
|
||||||
|
{
|
||||||
|
echo "Email not found<br />";
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (!$row = $sql->db_Fetch())
|
||||||
|
{
|
||||||
|
echo "Can't read email<br />";
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$email_info = unserialize($row['gen_chardata']); // Gives us sender_name, sender_email, email_body
|
||||||
|
|
||||||
|
|
||||||
|
//--------------------------------------------------
|
||||||
|
// Configure mailout handler (PHPMailer or other)
|
||||||
|
//--------------------------------------------------
|
||||||
|
|
||||||
require(e_HANDLER."phpmailer/class.phpmailer.php");
|
require(e_HANDLER."phpmailer/class.phpmailer.php");
|
||||||
|
|
||||||
$mail = new PHPMailer();
|
$mail = new PHPMailer();
|
||||||
|
|
||||||
$mail->From = ($_POST['email_from_email'])? $_POST['email_from_email']: $pref['siteadminemail'];
|
|
||||||
$mail->FromName = ($_POST['email_from_name'])? $_POST['email_from_name']: $pref['siteadmin'];
|
$mail->From = varsettrue($email_info['sender_email'],$pref['siteadminemail']);
|
||||||
|
$mail->FromName = varsettrue($email_info['sender_name'], $pref['siteadmin']);
|
||||||
// $mail->Host = "smtp1.site.com;smtp2.site.com";
|
// $mail->Host = "smtp1.site.com;smtp2.site.com";
|
||||||
if ($pref['mailer']== 'smtp')
|
if ($pref['mailer']== 'smtp')
|
||||||
{
|
{
|
||||||
$mail->Mailer = "smtp";
|
$mail->Mailer = "smtp";
|
||||||
$mail->SMTPKeepAlive = (isset($pref['smtp_keepalive']) && $pref['smtp_keepalive']==1) ? TRUE : FALSE;
|
$mail->SMTPKeepAlive = varsettrue($pref['smtp_keepalive']) ? TRUE : FALSE;
|
||||||
if($pref['smtp_server'])
|
if($pref['smtp_server'])
|
||||||
{
|
{
|
||||||
$mail->Host = $pref['smtp_server'];
|
$mail->Host = $pref['smtp_server'];
|
||||||
@ -84,37 +143,40 @@ if($_POST['cancel_emails']){
|
|||||||
$mail->Mailer = "mail";
|
$mail->Mailer = "mail";
|
||||||
}
|
}
|
||||||
|
|
||||||
$mail->AddCC = ($_POST['email_cc']);
|
$message_subject = stripslashes($tp -> toHTML($email_info['email_subject'],FALSE,RAWTEXT));
|
||||||
$mail->WordWrap = 50;
|
$mail->WordWrap = 50;
|
||||||
$mail->CharSet = CHARSET;
|
$mail->CharSet = CHARSET;
|
||||||
$mail->Subject = $_POST['email_subject'];
|
|
||||||
$mail->IsHTML(TRUE);
|
$mail->IsHTML(TRUE);
|
||||||
$mail->SMTPDebug = (e_MENU == "debug") ? TRUE : FALSE;
|
$mail->SMTPDebug = (e_MENU == "debug") ? TRUE : FALSE;
|
||||||
|
|
||||||
if($_POST['email_cc'])
|
|
||||||
|
if($email_info['copy_to'])
|
||||||
{
|
{
|
||||||
$tmp = explode(",",$_POST['email_cc']);
|
$tmp = explode(",",$email_info['copy_to']);
|
||||||
foreach($tmp as $addc)
|
foreach($tmp as $addc)
|
||||||
{
|
{
|
||||||
$mail->AddCC($addc);
|
$mail->AddCC(trim($addc));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if($_POST['email_bcc'])
|
if($email_info['bcopy_to'])
|
||||||
{
|
{
|
||||||
$tmp = explode(",",$_POST['email_bcc']);
|
$tmp = explode(",",$email_info['bcopy_to']);
|
||||||
foreach($tmp as $addbc)
|
foreach($tmp as $addc)
|
||||||
{
|
{
|
||||||
$mail->AddBCC($addbc);
|
$mail->AddBCC(trim($addc));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if($pref['mail_bounce_email'] !='')
|
if($pref['mail_bounce_email'] !='')
|
||||||
{
|
{
|
||||||
$mail->Sender = $pref['mail_bounce_email'];
|
$mail->Sender = $pref['mail_bounce_email'];
|
||||||
}
|
}
|
||||||
|
|
||||||
$attach = trim($_POST['email_attachment']);
|
|
||||||
|
|
||||||
|
$attach = trim($email_info['attach']);
|
||||||
|
|
||||||
if(is_readable(e_DOWNLOAD.$attach))
|
if(is_readable(e_DOWNLOAD.$attach))
|
||||||
{
|
{
|
||||||
@ -132,9 +194,8 @@ if($_POST['cancel_emails']){
|
|||||||
|
|
||||||
if ($attach != "" && !$mail->AddAttachment($attach_link, $attach))
|
if ($attach != "" && !$mail->AddAttachment($attach_link, $attach))
|
||||||
{
|
{
|
||||||
$mss = MAILAN_58."<br />$attach_link"; // problem with attachment.
|
$mss = LAN_MAILOUT_58."<br />{$attach_link}->{$attach}"; // problem with attachment.
|
||||||
$ns->tablerender("Error", $mss);
|
$ns->tablerender("Error", $mss);
|
||||||
// require_once(e_ADMIN."footer.php");
|
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -143,29 +204,26 @@ if($_POST['cancel_emails']){
|
|||||||
// ---------------------------- Setup the Email ----------------------------->
|
// ---------------------------- Setup the Email ----------------------------->
|
||||||
|
|
||||||
|
|
||||||
$message_subject = stripslashes($tp -> toHTML($_POST['email_subject']));
|
|
||||||
|
|
||||||
$mail_head = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\" \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">\n";
|
$mail_head = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\" \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">\n";
|
||||||
$mail_head .= "<html xmlns='http://www.w3.org/1999/xhtml' >\n";
|
$mail_head .= "<html xmlns='http://www.w3.org/1999/xhtml' >\n";
|
||||||
$mail_head .= "<head><meta http-equiv='content-type' content='text/html; charset=utf-8' />\n";
|
$mail_head .= "<head><meta http-equiv='content-type' content='text/html; charset=".CHARSET."' />\n";
|
||||||
|
|
||||||
if (isset($_POST['use_theme']))
|
if (varsettrue($email_info['use_theme']))
|
||||||
{
|
{
|
||||||
$theme = $THEMES_DIRECTORY.$pref['sitetheme']."/";
|
$theme = $THEMES_DIRECTORY.$pref['sitetheme']."/";
|
||||||
// $mail_head .= "<link rel=\"stylesheet\" href=\"".SITEURL.$theme."style.css\" type=\"text/css\" />\n";
|
|
||||||
$style_css = file_get_contents(e_THEME.$pref['sitetheme']."/style.css");
|
$style_css = file_get_contents(e_THEME.$pref['sitetheme']."/style.css");
|
||||||
$mail_head .= "<style>\n".$style_css."\n</style>";
|
$mail_head .= "<style>\n".$style_css."\n</style>";
|
||||||
|
|
||||||
$message_body = $mail_head;
|
$message_body = $mail_head;
|
||||||
$message_body .= "</head>\n<body>\n";
|
$message_body .= "</head>\n<body>\n";
|
||||||
$message_body .= "<div style='padding:10px;width:97%'><div class='forumheader3'>\n";
|
$message_body .= "<div style='padding:10px;width:97%'><div class='forumheader3'>\n";
|
||||||
$message_body .= $tp -> toEmail($_POST['email_body'])."</div></div></body></html>";
|
$message_body .= $tp -> toEmail($email_info['email_body'])."</div></div></body></html>";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$message_body = $mail_head;
|
$message_body = $mail_head;
|
||||||
$message_body .= "</head>\n<body>\n";
|
$message_body .= "</head>\n<body>\n";
|
||||||
$message_body .= $tp -> toEmail($_POST['email_body'])."</body></html>";
|
$message_body .= $tp -> toEmail($email_info['email_body'])."</body></html>";
|
||||||
$message_body = str_replace(""", '"', $message_body);
|
$message_body = str_replace(""", '"', $message_body);
|
||||||
$message_body = str_replace('src="', 'src="'.SITEURL, $message_body);
|
$message_body = str_replace('src="', 'src="'.SITEURL, $message_body);
|
||||||
}
|
}
|
||||||
@ -177,13 +235,16 @@ if($_POST['cancel_emails']){
|
|||||||
// ---------------- Display Progress and Send Emails. ----------------------->
|
// ---------------- Display Progress and Send Emails. ----------------------->
|
||||||
|
|
||||||
|
|
||||||
echo "<div class='fcaption'> ".MAILAN_59."</div>";
|
echo "<div class='fcaption'> ".LAN_MAILOUT_59."</div>";
|
||||||
$qry = "SELECT g.*,u.* FROM #generic AS g LEFT JOIN #user AS u ON g.gen_user_id = u.user_id WHERE g.gen_type='sendmail' and g.gen_datestamp = '".intval($_POST['mail_id'])."' ";
|
// $qry = "SELECT g.*,u.* FROM #generic AS g LEFT JOIN #user AS u ON g.gen_user_id = u.user_id WHERE g.gen_type='sendmail' and g.gen_datestamp = '".intval($_POST['mail_id'])."' ";
|
||||||
|
// All the user info is in the generic table now - simplifies the query a bit
|
||||||
|
$qry = "SELECT g.* FROM #generic AS g WHERE g.gen_type='sendmail' and g.gen_datestamp = '".$mail_id."' ";
|
||||||
$count = $sql -> db_Select_gen($qry);
|
$count = $sql -> db_Select_gen($qry);
|
||||||
|
// echo date("H:i:s d.m.y")." Start of mail run by ".USERNAME." - {$count} emails to go. ID: {$mail_id}. Subject: ".$mail_subject."<br />";
|
||||||
|
|
||||||
if(!$count)
|
if(!$count)
|
||||||
{
|
{
|
||||||
echo "<div style='text-align:center;width:200px'><br />".MAILAN_61."</div>";
|
echo "<div style='text-align:center;width:200px'><br />".LAN_MAILOUT_61."</div>";
|
||||||
echo "</body></html>";
|
echo "</body></html>";
|
||||||
echo "<div style='text-align:center;margin-left:auto;margin-right:auto;position:absolute;left:10px;top:110px'>
|
echo "<div style='text-align:center;margin-left:auto;margin-right:auto;position:absolute;left:10px;top:110px'>
|
||||||
<input type='button' class='button' name='close' value='Close' onclick=\"window.close()\" />
|
<input type='button' class='button' name='close' value='Close' onclick=\"window.close()\" />
|
||||||
@ -193,65 +254,130 @@ if($_POST['cancel_emails']){
|
|||||||
|
|
||||||
|
|
||||||
$c = 0; $d=0;
|
$c = 0; $d=0;
|
||||||
|
$cur = 0;
|
||||||
|
$send_ok = 0; $send_fail = 0;
|
||||||
$pause_count = 1;
|
$pause_count = 1;
|
||||||
$pause_amount = ($pref['mail_pause']) ? $pref['mail_pause'] : 10;
|
$pause_amount = ($pref['mail_pause']) ? $pref['mail_pause'] : 10;
|
||||||
$pause_time = ($pref['mail_pausetime']) ? $pref['mail_pausetime'] : 1;
|
$pause_time = ($pref['mail_pausetime']) ? $pref['mail_pausetime'] : 1;
|
||||||
$sent = array();
|
$unit = (1/$count)* 100; // Percentage 'weight' of each email
|
||||||
$failed = array();
|
echo "<div class='blocks' style='text-align:left;width:199px'><div id='bar' class='bar' style='border:0px;width:".$cur."%' > </div></div>";
|
||||||
$unit = (1/$count)* 100;
|
echo "<div class='percents'><span id='numbers'>".($c+1)." / ".$count." (" . $cur . "</span>%) ".LAN_MAILOUT_117."</div>";
|
||||||
echo "<div class='blocks' style='text-align:left;width:199px'><div id='bar' class='bar' style='border:0px;;width:".$cur."%' > </div></div>";
|
|
||||||
|
|
||||||
stopwatch();
|
stopwatch();
|
||||||
|
|
||||||
|
// Debug/mailout log
|
||||||
|
if ($logenable)
|
||||||
|
{
|
||||||
|
$logfilename = MAIL_LOG_PATH.'mailoutlog.txt';
|
||||||
|
$loghandle = fopen($logfilename, 'a'); // Always append to file
|
||||||
|
fwrite($loghandle,"=====----------------------------------------------------------------------------------=====\r\n");
|
||||||
|
fwrite($loghandle,date("H:i:s d.m.y")." Start of mail run by ".USERNAME." - {$count} emails to go. ID: {$mail_id}. Subject: ".$mail_subject."\r\n");
|
||||||
|
if ($add_email)
|
||||||
|
{
|
||||||
|
fwrite($loghandle, "From: ".$mail->From.' ('.$mail->FromName.")\r\n");
|
||||||
|
fwrite($loghandle, "Subject: ".$mail->Subject."\r\n");
|
||||||
|
fwrite($loghandle, "CC: ".$email_info['copy_to']."\r\n");
|
||||||
|
fwrite($loghandle, "BCC: ".$email_info['bcopy_to']."\r\n");
|
||||||
|
fwrite($loghandle, "Attach: ".$attach."\r\n");
|
||||||
|
fwrite($loghandle, "Body: ".$email_info['email_body']."\r\n");
|
||||||
|
fwrite($loghandle,"-----------------------------------------------------------\r\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
while($row = $sql-> db_Fetch())
|
while($row = $sql-> db_Fetch())
|
||||||
{
|
{
|
||||||
|
//-------------------------------
|
||||||
|
// Send one email
|
||||||
|
//-------------------------------
|
||||||
|
$mail_info = unserialize($row['gen_chardata']); // Has most of the info needed
|
||||||
|
|
||||||
|
$activator = (substr(SITEURL, -1) == "/" ? SITEURL."signup.php?activate.".$row['gen_user_id'].".".$mail_info['user_signup'] : SITEURL."/signup.php?activate.".$row['gen_user_id'].".".$mail_info['user_signup']);
|
||||||
|
$signup_link = ($mail_info['user_signup']) ? "<a href='{$activator}'>{$activator}</a>" : "";
|
||||||
|
|
||||||
|
// Allow username in subject
|
||||||
|
$mail_subject = str_replace(array('|USERNAME|','{USERNAME}'),$mail_info['user_name'],$message_subject);
|
||||||
|
$mail->Subject = $mail_subject;
|
||||||
|
|
||||||
|
|
||||||
// ---------------------- Mailing Part. -------------------------------------->
|
// Allow username, userID, signup link in body
|
||||||
|
$search = array('|USERNAME|','|USERID|','|SIGNUP_LINK|');
|
||||||
$activator = (substr(SITEURL, -1) == "/" ? SITEURL."signup.php?activate.".$row['user_id'].".".$row['user_sess'] : SITEURL."/signup.php?activate.".$row['user_id'].".".$row['user_sess']);
|
$replace = array($mail_info['user_name'],$row['gen_user_id'],$signup_link);
|
||||||
$signup_link = ($row['user_sess']) ? "<a href='$activator'>$activator</a>" : "";
|
|
||||||
|
|
||||||
$search = array("|USERNAME|","|USERID|","|SIGNUP_LINK|");
|
|
||||||
$replace = array($row['user_name'],$row['user_id'],$signup_link);
|
|
||||||
|
|
||||||
$mes_body = str_replace($search,$replace,$message_body);
|
$mes_body = str_replace($search,$replace,$message_body);
|
||||||
$alt_body = str_replace($search,$replace,stripslashes($tp->toText($_POST['email_body'])));
|
$alt_body = str_replace($search,$replace,stripslashes($tp->toText($email_info['email_body'])));
|
||||||
|
|
||||||
$mail->Body = $mes_body;
|
$mail->Body = $mes_body;
|
||||||
$mail->AltBody = $alt_body;
|
$mail->AltBody = $alt_body;
|
||||||
|
|
||||||
$mail->AddAddress($row['user_email'], $row['user_name']);
|
$mail->AddAddress($mail_info['user_email'], $mail_info['user_name']);
|
||||||
$mail->AddCustomHeader("X-e107-id: ".$row['user_id']);
|
if ($row['gen_user_id'])
|
||||||
|
{
|
||||||
|
$mail_custom = $row['gen_user_id'];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$mail_custom = md5($mail_info['user_name'].$mail_info['user_email']);
|
||||||
|
}
|
||||||
|
$mail_custom = "X-e107-id: ".$mail_id.'/'.$mail_custom;
|
||||||
|
$mail->AddCustomHeader($mail_custom);
|
||||||
|
|
||||||
|
|
||||||
if ($mail->Send()) {
|
$debug_message = '';
|
||||||
$sent[] = $row['user_id'];
|
if (($logenable == 0) || ($logenable == 2))
|
||||||
} else {
|
{ // Actually send email
|
||||||
$failed[] = $row['user_id'];
|
$mail_result = $mail->Send();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{ // Debug mode - decide result of email here
|
||||||
|
$mail_result = TRUE;
|
||||||
|
if (($logenable == 3) && (($c % 7) == 4)) $mail_result = FALSE; // Fail one email in 7 for testing
|
||||||
|
$debug_message = 'Debug';
|
||||||
|
}
|
||||||
|
if ($mail_result)
|
||||||
|
{
|
||||||
|
$send_ok++;
|
||||||
|
$sql2->db_Delete('generic',"gen_id={$row['gen_id']}"); // Mail sent - delete from database
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$send_fail++;
|
||||||
|
$mail_info['send_result'] = 'Fail: '.$mail->ErrorInfo.$debug_message;
|
||||||
|
$temp = serialize($mail_info);
|
||||||
|
// Log any error info we can
|
||||||
|
$sql2->db_Update('generic',"`gen_chardata`='{$temp}' WHERE gen_id={$row['gen_id']}");
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($logenable)
|
||||||
|
{
|
||||||
|
fwrite($loghandle,date("H:i:s d.m.y")." Send to {$mail_info['user_name']} at {$mail_info['user_email']} Mail-ID={$mail_custom} - {$mail_result}\r\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
$mail->ClearAddresses();
|
$mail->ClearAddresses();
|
||||||
$mail->ClearCustomHeaders();
|
$mail->ClearCustomHeaders();
|
||||||
|
|
||||||
|
|
||||||
// --------- End of the mailing. --------------------------------------------->
|
// --------- One email sent
|
||||||
|
|
||||||
$cur = round((($c / $count) * 100) + $unit);
|
$cur = round((($c / $count) * 100) + $unit);
|
||||||
echo str_pad(' ',4096)."<br />\n";
|
|
||||||
|
|
||||||
$d = ($c==0) ? 10 : round($width + $d);
|
// Do we need next line?
|
||||||
|
// echo str_pad(' ',4096)."<br />\n"; // Put out lots of spaces and a newline - works wonders for XHTML compliance!
|
||||||
|
|
||||||
echo "<div class='percents'>".($c+1)." / ".$count." (" . $cur . "%) complete</div>";
|
// $d = ($c==0) ? 10 : round($width + $d); // Line doesn't do anything
|
||||||
|
|
||||||
if($cur != $prev){
|
// echo "<div class='percents'>".($c+1)." / ".$count." (" . $cur . "%) ".LAN_MAILOUT_117."</div>";
|
||||||
|
echo "<script type='text/javascript'>setnum('".($c+1)."','{$count}','{$cur}');</script>\n";
|
||||||
|
|
||||||
|
/* if($cur != $prev)
|
||||||
|
{ // Update 'completed' segment of progress bar
|
||||||
echo "<script type='text/javascript'>inc('".$cur."%');</script>\n";
|
echo "<script type='text/javascript'>inc('".$cur."%');</script>\n";
|
||||||
}
|
}
|
||||||
$prev = $cur;
|
$prev = $cur;
|
||||||
ob_flush();
|
*/ ob_flush();
|
||||||
flush();
|
flush();
|
||||||
|
|
||||||
if($pause_count > $pause_amount){
|
if($pause_count > $pause_amount)
|
||||||
|
{
|
||||||
sleep($pause_time);
|
sleep($pause_time);
|
||||||
$pause_count = 1;
|
$pause_count = 1;
|
||||||
}
|
}
|
||||||
@ -265,15 +391,21 @@ if($_POST['cancel_emails']){
|
|||||||
ob_end_flush();
|
ob_end_flush();
|
||||||
|
|
||||||
echo "<div style='position:absolute;left:10px;top:50px'><br />";
|
echo "<div style='position:absolute;left:10px;top:50px'><br />";
|
||||||
echo MAILAN_62." ".count($sent)."<br />";
|
echo LAN_MAILOUT_62." ".$send_ok."<br />";
|
||||||
echo MAILAN_63." ".count($failed)."<br />";
|
echo LAN_MAILOUT_63." ".$send_fail."<br />";
|
||||||
echo MAILAN_64." ".stopwatch()." ".MAILAN_65."<br />";
|
echo LAN_MAILOUT_64." ".stopwatch()." ".LAN_MAILOUT_65."<br />";
|
||||||
echo "</div>";
|
echo "</div>";
|
||||||
|
|
||||||
$message = $sql -> db_Delete("generic", "gen_datestamp='".intval($_POST['mail_id'])."' ") ? "deleted" : "deleted_failed";
|
// Complete - need to log something against the mailshot entry, and maybe write an admin log entry.
|
||||||
|
$log_string = date("H:i:s d.m.y")." End of ".($logenable == 1 ? 'debug ' : '')."mail run by ".USERNAME." - {$send_ok} succeeded, {$send_fail} failed. Subject: ".$mail_subject;
|
||||||
|
if (!is_array($email_info['send_results'])) $email_info['send_results'] = array();
|
||||||
|
$email_info['send_results'][] = $log_string;
|
||||||
|
$sql->db_Update('generic',"`gen_chardata`='".serialize($email_info)."' WHERE `gen_id` = {$mail_text_id} AND `gen_type`='savemail' and `gen_datestamp` = '".$mail_id."' ");
|
||||||
|
|
||||||
$mail->ClearAttachments();
|
$mail->ClearAttachments();
|
||||||
if ($pref['mailer']== 'smtp') {
|
|
||||||
|
if ($pref['mailer']== 'smtp')
|
||||||
|
{
|
||||||
$mail->SmtpClose();
|
$mail->SmtpClose();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -282,6 +414,11 @@ echo "<div style='text-align:center;margin-left:auto;margin-right:auto;position:
|
|||||||
</div>";
|
</div>";
|
||||||
echo "</body></html>";
|
echo "</body></html>";
|
||||||
|
|
||||||
|
if ($logenable)
|
||||||
|
{
|
||||||
|
fwrite($loghandle,$log_string."\r\n");
|
||||||
|
fclose($loghandle);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -342,9 +479,17 @@ function headerjs(){
|
|||||||
|
|
||||||
$text .= "
|
$text .= "
|
||||||
<script type='text/javascript'>
|
<script type='text/javascript'>
|
||||||
function inc(amount){
|
function inc(amount)
|
||||||
|
{
|
||||||
document.getElementById('bar').style.width= amount;
|
document.getElementById('bar').style.width= amount;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function setnum(v1,v2,v3)
|
||||||
|
{
|
||||||
|
this_el = document.getElementById('numbers');
|
||||||
|
if (this_el) this_el.innerHTML = v1+' / '+v2+' ('+v3;
|
||||||
|
document.getElementById('bar').style.width= v3+'%';
|
||||||
|
}
|
||||||
</script>";
|
</script>";
|
||||||
|
|
||||||
return $text;
|
return $text;
|
||||||
|
@ -11,14 +11,49 @@
|
|||||||
| GNU General Public License (http://gnu.org).
|
| GNU General Public License (http://gnu.org).
|
||||||
|
|
|
|
||||||
| $Source: /cvs_backup/e107_0.8/e107_languages/English/admin/help/mailout.php,v $
|
| $Source: /cvs_backup/e107_0.8/e107_languages/English/admin/help/mailout.php,v $
|
||||||
| $Revision: 1.1.1.1 $
|
| $Revision: 1.2 $
|
||||||
| $Date: 2006-12-02 04:34:42 $
|
| $Date: 2007-12-22 14:49:34 $
|
||||||
| $Author: mcfly_e107 $
|
| $Author: e107steved $
|
||||||
+----------------------------------------------------------------------------+
|
+----------------------------------------------------------------------------+
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (!defined('e107_INIT')) { exit; }
|
if (!defined('e107_INIT')) { exit; }
|
||||||
|
|
||||||
$text = "Use this page to configure your mail settings for site-wide mailing functions. The mail out form also allows you to send out a mail-shot to all your users.";
|
if (e_QUERY) list($action,$junk) = explode('.',e_QUERY); else $action = 'makemail';
|
||||||
|
|
||||||
|
switch ($action)
|
||||||
|
{
|
||||||
|
case 'justone' :
|
||||||
|
$text = 'Send mail with constraints specified by an optional plugin';
|
||||||
|
break;
|
||||||
|
case 'debug' :
|
||||||
|
$text = 'For devs only. A second query parameter matches the gen_type field in the \'generic\' table. Ignore the column headings';
|
||||||
|
break;
|
||||||
|
case 'list' :
|
||||||
|
$text = 'Select and use a saved email template to send a mailshot. Delete any template no longer required';
|
||||||
|
break;
|
||||||
|
case 'mailouts' :
|
||||||
|
$text = 'List of stored mailshots. Allows you to see whether they have been sent, and re-send any emails which failed.<br />';
|
||||||
|
$text .= 'You can also view some detail of the email, including the error reason for some of those that failed.<br />';
|
||||||
|
$text .= 'To retry outstanding emails, click on the \'resend\' icon. Then click on \'Proceed\', which will open a progress window.';
|
||||||
|
$text .= ' To abort a mailshot, click on the \'Cancel\' button in the main screen.';
|
||||||
|
break;
|
||||||
|
case 'savedmail' :
|
||||||
|
case 'makemail' :
|
||||||
|
$text = 'Create an email, and select the list of recipients. You can save the email text as a template for later, or send immediately.<br />';
|
||||||
|
$text .= 'Any attachment is selected from the list of valid downloads.';
|
||||||
|
break;
|
||||||
|
case 'prefs' :
|
||||||
|
$text = 'Configure mailshot options.<br />';
|
||||||
|
$text .= 'A test email is sent using the current method and settings.<br />';
|
||||||
|
$text .= 'Use SMTP to send mail if possible. The settings will depend on your host\'s mail server.<br />';
|
||||||
|
$text .= 'You can specifiy a POP3 account to receive the return response when an email is undeliverable.<br />';
|
||||||
|
$text .= 'If you have additional mail-related plugins, you can select which of them may contribute email addresses to the list.<br />';
|
||||||
|
$text .= 'The logging option creates a text file in the stats plugin\'s log directory. This must be deleted periodically.';
|
||||||
|
break;
|
||||||
|
default :
|
||||||
|
$text = 'Undocumented option';
|
||||||
|
}
|
||||||
|
|
||||||
$ns -> tablerender("Mail Help", $text);
|
$ns -> tablerender("Mail Help", $text);
|
||||||
?>
|
?>
|
@ -4,96 +4,131 @@
|
|||||||
| e107 website system - Language File.
|
| e107 website system - Language File.
|
||||||
|
|
|
|
||||||
| $Source: /cvs_backup/e107_0.8/e107_languages/English/admin/lan_mailout.php,v $
|
| $Source: /cvs_backup/e107_0.8/e107_languages/English/admin/lan_mailout.php,v $
|
||||||
| $Revision: 1.1.1.1 $
|
| $Revision: 1.2 $
|
||||||
| $Date: 2006-12-02 04:34:40 $
|
| $Date: 2007-12-22 14:49:34 $
|
||||||
| $Author: mcfly_e107 $
|
| $Author: e107steved $
|
||||||
+----------------------------------------------------------------------------+
|
+----------------------------------------------------------------------------+
|
||||||
*/
|
*/
|
||||||
define("PRFLAN_52", "Save Changes");
|
define('LAN_MAILOUT_01','From Name');
|
||||||
define("PRFLAN_63", "Send test email");
|
define('LAN_MAILOUT_02','From Email');
|
||||||
define("PRFLAN_64", "Clicking button will send test email to main admin email address");
|
define('LAN_MAILOUT_03','To');
|
||||||
define("PRFLAN_65", "Click to send email to");
|
define('LAN_MAILOUT_04','Cc');
|
||||||
define("PRFLAN_66", "Test email from");
|
define('LAN_MAILOUT_05','Bcc');
|
||||||
define("PRFLAN_67", "This is a test email, it appears that your email settings are working ok!\n\nRegards\nfrom the e107 website system.");
|
define('LAN_MAILOUT_06','Subject');
|
||||||
define("PRFLAN_68", "The email could not be sent. It appears that your server is not correctly configured to send emails, please try again using SMTP, or contact your hosts and ask them to check their sendmail / email server settings.");
|
define('LAN_MAILOUT_07','Attachment');
|
||||||
define("PRFLAN_69", "The email has been successfully sent, please check your inbox.");
|
define('LAN_MAILOUT_08','Send Email');
|
||||||
define("PRFLAN_70", "Emailing method");
|
define('LAN_MAILOUT_09','Use Theme Style');
|
||||||
define("PRFLAN_71", "If unsure, leave as php");
|
define('LAN_MAILOUT_10','User Subscribed');
|
||||||
define("PRFLAN_72", "SMTP Server");
|
define('LAN_MAILOUT_11','Insert Variables');
|
||||||
define("PRFLAN_73", "SMTP Username");
|
define('LAN_MAILOUT_12','All Members');
|
||||||
define("PRFLAN_74", "SMTP Password");
|
define('LAN_MAILOUT_13','All Unverified Members ');
|
||||||
define("PRFLAN_75", "The email could not be sent. Please review your SMTP settings, or disable SMTP and try again.");
|
//define("MAILAN_14","It is recommended that you enable SMTP for sending large numbers of emails - set in preferences below.");
|
||||||
|
define('LAN_MAILOUT_15','Mail-Out');
|
||||||
define("MAILAN_01","From Name");
|
define('LAN_MAILOUT_16','username');
|
||||||
define("MAILAN_02","From Email");
|
define('LAN_MAILOUT_17','signup link');
|
||||||
define("MAILAN_03","To");
|
define('LAN_MAILOUT_18','user id');
|
||||||
define("MAILAN_04","Cc");
|
define('LAN_MAILOUT_19','There is no email address for site-admin. Please check your preferences and try again.');
|
||||||
define("MAILAN_05","Bcc");
|
define('LAN_MAILOUT_20','Sendmail-path');
|
||||||
define("MAILAN_06","Subject");
|
define('LAN_MAILOUT_21','Bulk mailing Entries');
|
||||||
define("MAILAN_07","Attachment");
|
define('LAN_MAILOUT_22','There are currently no saved entries');
|
||||||
define("MAILAN_08","Send Email");
|
define('LAN_MAILOUT_23','userclass: ');
|
||||||
define("MAILAN_09","Use Theme Style");
|
define('LAN_MAILOUT_24','email(s) are ready to be sent');
|
||||||
define("MAILAN_10","User Subscribed");
|
define('LAN_MAILOUT_25','Bulk mailing controls');
|
||||||
define("MAILAN_11","Insert Variables");
|
define('LAN_MAILOUT_26', 'Pause bulk mailing every');
|
||||||
define("MAILAN_12","All Members");
|
define('LAN_MAILOUT_27', 'emails for ');
|
||||||
define("MAILAN_13","All Unverified Members ");
|
define('LAN_MAILOUT_28', 'Save Changes');
|
||||||
define("MAILAN_14","It is recommended that you enable SMTP for sending large numbers of emails - set in preferences below.");
|
define('LAN_MAILOUT_29', 'seconds');
|
||||||
define("MAILAN_15","Mail-Out");
|
define('LAN_MAILOUT_30', 'More than 30 seconds may cause the browser to time-out');
|
||||||
|
define('LAN_MAILOUT_31', 'Bounced Email Processing');
|
||||||
define("MAILAN_16","username");
|
define('LAN_MAILOUT_32', 'Email address');
|
||||||
define("MAILAN_17","signup link");
|
define('LAN_MAILOUT_33', 'Incoming Mail server');
|
||||||
define("MAILAN_18","user id");
|
define('LAN_MAILOUT_34', 'Account (user) Name');
|
||||||
define("MAILAN_19","There is no email address for site-admin. Please check your preferences and try again.");
|
define('LAN_MAILOUT_35', 'Password');
|
||||||
define("MAILAN_20","Sendmail-path");
|
define('LAN_MAILOUT_36', 'Delete Bounced Mails after checking');
|
||||||
define("MAILAN_21","Mass-Mail Entries");
|
define('LAN_MAILOUT_37', 'Proceed');
|
||||||
define("MAILAN_22","There are currently no saved entries");
|
define('LAN_MAILOUT_38', 'Cancel');
|
||||||
define("MAILAN_23","userclass: ");
|
define('LAN_MAILOUT_39', 'Emailing');
|
||||||
define("MAILAN_24", "email(s) are ready to be sent");
|
define('LAN_MAILOUT_40', 'You need to rename <b>e107.htaccess</b> to <b>.htaccess</b> in');
|
||||||
|
define('LAN_MAILOUT_41', 'before sending mail from this page.');
|
||||||
define("MAILAN_25", "Pause");
|
define('LAN_MAILOUT_42', 'Warning');
|
||||||
define("MAILAN_26", "Pause mass-mailing every");
|
define('LAN_MAILOUT_43', 'Username');
|
||||||
define("MAILAN_27", "emails");
|
define('LAN_MAILOUT_44', 'User Login');
|
||||||
define("MAILAN_28", "Pause Length");
|
define('LAN_MAILOUT_45', 'User Email');
|
||||||
define("MAILAN_29", "seconds");
|
define('LAN_MAILOUT_46', 'User-Match');
|
||||||
define("MAILAN_30", "More than 30 seconds may cause the browser to time-out");
|
define('LAN_MAILOUT_47', 'contains');
|
||||||
define("MAILAN_31", "Bounced Email Processing");
|
define('LAN_MAILOUT_48', 'equals');
|
||||||
define("MAILAN_32", "Email address");
|
define('LAN_MAILOUT_49', 'Id');
|
||||||
define("MAILAN_33", "Incoming Mail");
|
define('LAN_MAILOUT_50', 'Author');
|
||||||
define("MAILAN_34", "Account Name");
|
define('LAN_MAILOUT_51', 'Subject');
|
||||||
define("MAILAN_35", "Password");
|
define('LAN_MAILOUT_52', 'Last mod');
|
||||||
define("MAILAN_36", "Delete Bounced Mails after checking");
|
define('LAN_MAILOUT_53', 'Admins');
|
||||||
|
define('LAN_MAILOUT_54', 'Self');
|
||||||
define("MAILAN_37", "Proceed");
|
define('LAN_MAILOUT_55', 'Userclass');
|
||||||
define("MAILAN_38", "Cancel");
|
define('LAN_MAILOUT_56','Send Mail');
|
||||||
define("MAILAN_39", "Emailing");
|
define('LAN_MAILOUT_57','Send bulk SMTP emails in blocks'); // SMTP KeepAlive option
|
||||||
define("MAILAN_40", "You need to rename <b>e107.htaccess</b> to <b>.htaccess</b> in");
|
define('LAN_MAILOUT_58', 'There is a problem with the attachment:');
|
||||||
define("MAILAN_41", "before sending mail from this page.");
|
define('LAN_MAILOUT_59', 'Mailing Progress');
|
||||||
define("MAILAN_42", "Warning");
|
define('LAN_MAILOUT_60', 'Sending...');
|
||||||
define("MAILAN_43", "Username");
|
define('LAN_MAILOUT_61', 'There are no remaining emails to be sent.');
|
||||||
define("MAILAN_44", "User Login");
|
define('LAN_MAILOUT_62', 'Emails sent:');
|
||||||
define("MAILAN_45", "User Email");
|
define('LAN_MAILOUT_63', 'Emails failed:');
|
||||||
define("MAILAN_46", "User-Match");
|
define('LAN_MAILOUT_64', 'Total time elapsed:');
|
||||||
define("MAILAN_47", "contains");
|
define('LAN_MAILOUT_65', 'seconds');
|
||||||
define("MAILAN_48", "equals");
|
define('LAN_MAILOUT_66', 'Cancelled Successfully');
|
||||||
define("MAILAN_49", "Id");
|
define('LAN_MAILOUT_67', 'The email could not be sent. Please review your SMTP settings, or select another mailing method and try again.');
|
||||||
define("MAILAN_50", "Author");
|
define('LAN_MAILOUT_68','Include from registered users');
|
||||||
define("MAILAN_51", "Subject");
|
define('LAN_MAILOUT_69','matches, after ');
|
||||||
define("MAILAN_52", "Lastmod");
|
define('LAN_MAILOUT_70',' duplicates stripped.');
|
||||||
define("MAILAN_53", "Admins");
|
define('LAN_MAILOUT_71','Total emails to send');
|
||||||
define("MAILAN_54", "Self");
|
define('LAN_MAILOUT_72','Mailshot logging');
|
||||||
define("MAILAN_55", "Userclass");
|
define('LAN_MAILOUT_73','No logging');
|
||||||
define("MAILAN_56", "Send Mail");
|
define('LAN_MAILOUT_74','Logging only (no send)');
|
||||||
define("MAILAN_57", "Keep SMTP session alive");
|
define('LAN_MAILOUT_75','Log and send');
|
||||||
define("MAILAN_58", "There is a problem with the attachment:");
|
define('LAN_MAILOUT_76','Include email info in log');
|
||||||
define("MAILAN_59", "Mailing Progress");
|
define('LAN_MAILOUT_77','Supplementary email address sources');
|
||||||
define("MAILAN_60", "Sending...");
|
define('LAN_MAILOUT_78','Mailshot Status');
|
||||||
define("MAILAN_61", "There are no remaining emails to be sent.");
|
define('LAN_MAILOUT_79','No mailshots to display');
|
||||||
define("MAILAN_62", "Emails sent:");
|
define('LAN_MAILOUT_80','Date');
|
||||||
define("MAILAN_63", "Emails failed:");
|
define('LAN_MAILOUT_81','The email has been successfully sent, please check your inbox.');
|
||||||
define("MAILAN_64", "Total time elapsed:");
|
define('LAN_MAILOUT_82','Original count');
|
||||||
define("MAILAN_65", "seconds");
|
define('LAN_MAILOUT_83','Left to go');
|
||||||
define("MAILAN_66", "Cancelled Successfully");
|
define('LAN_MAILOUT_84','Mail ID');
|
||||||
define("MAILAN_67", "Use 'POP before SMTP' authentication");
|
define('LAN_MAILOUT_85','Originator');
|
||||||
|
define('LAN_MAILOUT_86','Re-send');
|
||||||
|
define('LAN_MAILOUT_87','SMTP Server');
|
||||||
|
define('LAN_MAILOUT_88','SMTP Username');
|
||||||
|
define('LAN_MAILOUT_89','SMTP Password');
|
||||||
|
define('LAN_MAILOUT_90','SMTP Features');
|
||||||
|
define('LAN_MAILOUT_91','POP before SMTP');
|
||||||
|
define('LAN_MAILOUT_92','SSL');
|
||||||
|
define('LAN_MAILOUT_93','TLS');
|
||||||
|
define('LAN_MAILOUT_94','(Use SSL for gmail/googlemail)');
|
||||||
|
define('LAN_MAILOUT_95','Use VERP for bulk mailing');
|
||||||
|
define('LAN_MAILOUT_96','none');
|
||||||
|
define('LAN_MAILOUT_97','Saved emails');
|
||||||
|
define('LAN_MAILOUT_98','Orphaned entries');
|
||||||
|
define('LAN_MAILOUT_99','Confirm retry mailshot');
|
||||||
|
define('LAN_MAILOUT_100','Message');
|
||||||
|
define('LAN_MAILOUT_101','Email Detail');
|
||||||
|
define('LAN_MAILOUT_102','Detail of mailshot');
|
||||||
|
define('LAN_MAILOUT_103','Results of attempts to send');
|
||||||
|
define('LAN_MAILOUT_104','No attempt to send, or error saving result');
|
||||||
|
define('LAN_MAILOUT_105','Details of up to 10 failures');
|
||||||
|
define('LAN_MAILOUT_106','The email could not be sent. It appears that your server is not correctly configured to send emails, please try again using SMTP, or contact your hosts and ask them to check their sendmail / email server settings.');
|
||||||
|
define('LAN_MAILOUT_107','at');
|
||||||
|
define('LAN_MAILOUT_108','Result');
|
||||||
|
define('LAN_MAILOUT_109','Show detail');
|
||||||
|
define('LAN_MAILOUT_110','Send test email');
|
||||||
|
define('LAN_MAILOUT_111','Clicking button will send test email to main admin email address');
|
||||||
|
define('LAN_MAILOUT_112','Click to send email to');
|
||||||
|
define('LAN_MAILOUT_113','Test email from');
|
||||||
|
define('LAN_MAILOUT_114','This is a test email, it appears that your email settings are working ok!\n\nRegards\nfrom the e107 website system.');
|
||||||
|
define('LAN_MAILOUT_115','Emailing method');
|
||||||
|
define('LAN_MAILOUT_116','If unsure, leave as php');
|
||||||
|
define('LAN_MAILOUT_117','complete');
|
||||||
|
define('LAN_MAILOUT_118','Click on \'proceed\' to start sending emails. Click on \'cancel\' to stop the run. Once complete, select another page. Unsent emails cal be viewed through the \'Mailshot status\' screen');
|
||||||
|
define('LAN_MAILOUT_119','Logging only, with errors');
|
||||||
|
define('LAN_MAILOUT_120','');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user