mirror of
https://github.com/e107inc/e107.git
synced 2025-01-17 12:48:24 +01:00
Bulk mailer - phase 1 - support add-in email address sources plus other features
This commit is contained in:
parent
5937feaeb3
commit
e1f3688bf3
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
|
||||
|
|
||||
| ©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).
|
||||
|
|
||||
| $Source: /cvs_backup/e107_0.8/e107_handlers/phpmailer/mailout_process.php,v $
|
||||
| $Revision: 1.5 $
|
||||
| $Date: 2007-08-02 20:37:10 $
|
||||
| $Revision: 1.6 $
|
||||
| $Date: 2007-12-22 14:49:28 $
|
||||
| $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");
|
||||
if(!getperms("W")){ header("location:".e_BASE."index.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 = "";
|
||||
$FOOTER = "";
|
||||
define("e_PAGETITLE",MAILAN_60);
|
||||
define("e_PAGETITLE",LAN_MAILOUT_60);
|
||||
require_once(HEADERF);
|
||||
set_time_limit(18000);
|
||||
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'])."' ");
|
||||
|
||||
$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'>
|
||||
<br /><input type='button' class='button' name='close' value='Close' onclick=\"window.close()\" />
|
||||
</div></div>";
|
||||
|
||||
$ns -> tablerender(MAILAN_59, $text);
|
||||
$ns -> tablerender(LAN_MAILOUT_59, $text);
|
||||
echo "</body></html>";
|
||||
|
||||
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");
|
||||
|
||||
$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";
|
||||
if ($pref['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'])
|
||||
{
|
||||
$mail->Host = $pref['smtp_server'];
|
||||
@ -84,37 +143,40 @@ if($_POST['cancel_emails']){
|
||||
$mail->Mailer = "mail";
|
||||
}
|
||||
|
||||
$mail->AddCC = ($_POST['email_cc']);
|
||||
$message_subject = stripslashes($tp -> toHTML($email_info['email_subject'],FALSE,RAWTEXT));
|
||||
$mail->WordWrap = 50;
|
||||
$mail->CharSet = CHARSET;
|
||||
$mail->Subject = $_POST['email_subject'];
|
||||
$mail->IsHTML(TRUE);
|
||||
$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)
|
||||
{
|
||||
$mail->AddCC($addc);
|
||||
$mail->AddCC(trim($addc));
|
||||
}
|
||||
}
|
||||
|
||||
if($_POST['email_bcc'])
|
||||
if($email_info['bcopy_to'])
|
||||
{
|
||||
$tmp = explode(",",$_POST['email_bcc']);
|
||||
foreach($tmp as $addbc)
|
||||
$tmp = explode(",",$email_info['bcopy_to']);
|
||||
foreach($tmp as $addc)
|
||||
{
|
||||
$mail->AddBCC($addbc);
|
||||
$mail->AddBCC(trim($addc));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if($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))
|
||||
{
|
||||
@ -132,9 +194,8 @@ if($_POST['cancel_emails']){
|
||||
|
||||
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);
|
||||
// require_once(e_ADMIN."footer.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
@ -143,29 +204,26 @@ if($_POST['cancel_emails']){
|
||||
// ---------------------------- 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 .= "<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']."/";
|
||||
// $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");
|
||||
$mail_head .= "<style>\n".$style_css."\n</style>";
|
||||
|
||||
$message_body = $mail_head;
|
||||
$message_body .= "</head>\n<body>\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
|
||||
{
|
||||
$message_body = $mail_head;
|
||||
$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('src="', 'src="'.SITEURL, $message_body);
|
||||
}
|
||||
@ -177,13 +235,16 @@ if($_POST['cancel_emails']){
|
||||
// ---------------- Display Progress and Send Emails. ----------------------->
|
||||
|
||||
|
||||
echo "<div class='fcaption'> ".MAILAN_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'])."' ";
|
||||
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'])."' ";
|
||||
// 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);
|
||||
// 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)
|
||||
{
|
||||
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 "<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()\" />
|
||||
@ -193,67 +254,132 @@ if($_POST['cancel_emails']){
|
||||
|
||||
|
||||
$c = 0; $d=0;
|
||||
$cur = 0;
|
||||
$send_ok = 0; $send_fail = 0;
|
||||
$pause_count = 1;
|
||||
$pause_amount = ($pref['mail_pause']) ? $pref['mail_pause'] : 10;
|
||||
$pause_time = ($pref['mail_pausetime']) ? $pref['mail_pausetime'] : 1;
|
||||
$sent = array();
|
||||
$failed = array();
|
||||
$unit = (1/$count)* 100;
|
||||
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; // Percentage 'weight' of each email
|
||||
echo "<div class='blocks' style='text-align:left;width:199px'><div id='bar' class='bar' style='border:0px;width:".$cur."%' > </div></div>";
|
||||
echo "<div class='percents'><span id='numbers'>".($c+1)." / ".$count." (" . $cur . "</span>%) ".LAN_MAILOUT_117."</div>";
|
||||
|
||||
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())
|
||||
{
|
||||
//-------------------------------
|
||||
// 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|');
|
||||
$replace = array($mail_info['user_name'],$row['gen_user_id'],$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']);
|
||||
$signup_link = ($row['user_sess']) ? "<a href='$activator'>$activator</a>" : "";
|
||||
$mes_body = str_replace($search,$replace,$message_body);
|
||||
$alt_body = str_replace($search,$replace,stripslashes($tp->toText($email_info['email_body'])));
|
||||
|
||||
$search = array("|USERNAME|","|USERID|","|SIGNUP_LINK|");
|
||||
$replace = array($row['user_name'],$row['user_id'],$signup_link);
|
||||
$mail->Body = $mes_body;
|
||||
$mail->AltBody = $alt_body;
|
||||
|
||||
$mes_body = str_replace($search,$replace,$message_body);
|
||||
$alt_body = str_replace($search,$replace,stripslashes($tp->toText($_POST['email_body'])));
|
||||
|
||||
$mail->Body = $mes_body;
|
||||
$mail->AltBody = $alt_body;
|
||||
|
||||
$mail->AddAddress($row['user_email'], $row['user_name']);
|
||||
$mail->AddCustomHeader("X-e107-id: ".$row['user_id']);
|
||||
$mail->AddAddress($mail_info['user_email'], $mail_info['user_name']);
|
||||
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()) {
|
||||
$sent[] = $row['user_id'];
|
||||
} else {
|
||||
$failed[] = $row['user_id'];
|
||||
$debug_message = '';
|
||||
if (($logenable == 0) || ($logenable == 2))
|
||||
{ // Actually send email
|
||||
$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->ClearCustomHeaders();
|
||||
|
||||
|
||||
// --------- End of the mailing. --------------------------------------------->
|
||||
// --------- One email sent
|
||||
|
||||
$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 "<script type='text/javascript'>inc('".$cur."%');</script>\n";
|
||||
// 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";
|
||||
}
|
||||
$prev = $cur;
|
||||
ob_flush();
|
||||
*/ ob_flush();
|
||||
flush();
|
||||
|
||||
if($pause_count > $pause_amount){
|
||||
sleep($pause_time);
|
||||
$pause_count = 1;
|
||||
if($pause_count > $pause_amount)
|
||||
{
|
||||
sleep($pause_time);
|
||||
$pause_count = 1;
|
||||
}
|
||||
|
||||
// Default sleep to reduce server-load: 1 second.
|
||||
@ -265,16 +391,22 @@ if($_POST['cancel_emails']){
|
||||
ob_end_flush();
|
||||
|
||||
echo "<div style='position:absolute;left:10px;top:50px'><br />";
|
||||
echo MAILAN_62." ".count($sent)."<br />";
|
||||
echo MAILAN_63." ".count($failed)."<br />";
|
||||
echo MAILAN_64." ".stopwatch()." ".MAILAN_65."<br />";
|
||||
echo LAN_MAILOUT_62." ".$send_ok."<br />";
|
||||
echo LAN_MAILOUT_63." ".$send_fail."<br />";
|
||||
echo LAN_MAILOUT_64." ".stopwatch()." ".LAN_MAILOUT_65."<br />";
|
||||
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();
|
||||
if ($pref['mailer']== 'smtp') {
|
||||
$mail->SmtpClose();
|
||||
|
||||
if ($pref['mailer']== 'smtp')
|
||||
{
|
||||
$mail->SmtpClose();
|
||||
}
|
||||
|
||||
echo "<div style='text-align:center;margin-left:auto;margin-right:auto;position:absolute;left:10px;top:110px'>
|
||||
@ -282,6 +414,11 @@ echo "<div style='text-align:center;margin-left:auto;margin-right:auto;position:
|
||||
</div>";
|
||||
echo "</body></html>";
|
||||
|
||||
if ($logenable)
|
||||
{
|
||||
fwrite($loghandle,$log_string."\r\n");
|
||||
fclose($loghandle);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -342,8 +479,16 @@ function headerjs(){
|
||||
|
||||
$text .= "
|
||||
<script type='text/javascript'>
|
||||
function inc(amount){
|
||||
document.getElementById('bar').style.width= amount;
|
||||
function inc(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>";
|
||||
|
||||
|
@ -11,14 +11,49 @@
|
||||
| GNU General Public License (http://gnu.org).
|
||||
|
|
||||
| $Source: /cvs_backup/e107_0.8/e107_languages/English/admin/help/mailout.php,v $
|
||||
| $Revision: 1.1.1.1 $
|
||||
| $Date: 2006-12-02 04:34:42 $
|
||||
| $Author: mcfly_e107 $
|
||||
| $Revision: 1.2 $
|
||||
| $Date: 2007-12-22 14:49:34 $
|
||||
| $Author: e107steved $
|
||||
+----------------------------------------------------------------------------+
|
||||
*/
|
||||
|
||||
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);
|
||||
?>
|
@ -4,96 +4,131 @@
|
||||
| e107 website system - Language File.
|
||||
|
|
||||
| $Source: /cvs_backup/e107_0.8/e107_languages/English/admin/lan_mailout.php,v $
|
||||
| $Revision: 1.1.1.1 $
|
||||
| $Date: 2006-12-02 04:34:40 $
|
||||
| $Author: mcfly_e107 $
|
||||
| $Revision: 1.2 $
|
||||
| $Date: 2007-12-22 14:49:34 $
|
||||
| $Author: e107steved $
|
||||
+----------------------------------------------------------------------------+
|
||||
*/
|
||||
define("PRFLAN_52", "Save Changes");
|
||||
define("PRFLAN_63", "Send test email");
|
||||
define("PRFLAN_64", "Clicking button will send test email to main admin email address");
|
||||
define("PRFLAN_65", "Click to send email to");
|
||||
define("PRFLAN_66", "Test email from");
|
||||
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("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("PRFLAN_69", "The email has been successfully sent, please check your inbox.");
|
||||
define("PRFLAN_70", "Emailing method");
|
||||
define("PRFLAN_71", "If unsure, leave as php");
|
||||
define("PRFLAN_72", "SMTP Server");
|
||||
define("PRFLAN_73", "SMTP Username");
|
||||
define("PRFLAN_74", "SMTP Password");
|
||||
define("PRFLAN_75", "The email could not be sent. Please review your SMTP settings, or disable SMTP and try again.");
|
||||
|
||||
define("MAILAN_01","From Name");
|
||||
define("MAILAN_02","From Email");
|
||||
define("MAILAN_03","To");
|
||||
define("MAILAN_04","Cc");
|
||||
define("MAILAN_05","Bcc");
|
||||
define("MAILAN_06","Subject");
|
||||
define("MAILAN_07","Attachment");
|
||||
define("MAILAN_08","Send Email");
|
||||
define("MAILAN_09","Use Theme Style");
|
||||
define("MAILAN_10","User Subscribed");
|
||||
define("MAILAN_11","Insert Variables");
|
||||
define("MAILAN_12","All Members");
|
||||
define("MAILAN_13","All Unverified Members ");
|
||||
define("MAILAN_14","It is recommended that you enable SMTP for sending large numbers of emails - set in preferences below.");
|
||||
define("MAILAN_15","Mail-Out");
|
||||
|
||||
define("MAILAN_16","username");
|
||||
define("MAILAN_17","signup link");
|
||||
define("MAILAN_18","user id");
|
||||
define("MAILAN_19","There is no email address for site-admin. Please check your preferences and try again.");
|
||||
define("MAILAN_20","Sendmail-path");
|
||||
define("MAILAN_21","Mass-Mail Entries");
|
||||
define("MAILAN_22","There are currently no saved entries");
|
||||
define("MAILAN_23","userclass: ");
|
||||
define("MAILAN_24", "email(s) are ready to be sent");
|
||||
|
||||
define("MAILAN_25", "Pause");
|
||||
define("MAILAN_26", "Pause mass-mailing every");
|
||||
define("MAILAN_27", "emails");
|
||||
define("MAILAN_28", "Pause Length");
|
||||
define("MAILAN_29", "seconds");
|
||||
define("MAILAN_30", "More than 30 seconds may cause the browser to time-out");
|
||||
define("MAILAN_31", "Bounced Email Processing");
|
||||
define("MAILAN_32", "Email address");
|
||||
define("MAILAN_33", "Incoming Mail");
|
||||
define("MAILAN_34", "Account Name");
|
||||
define("MAILAN_35", "Password");
|
||||
define("MAILAN_36", "Delete Bounced Mails after checking");
|
||||
|
||||
define("MAILAN_37", "Proceed");
|
||||
define("MAILAN_38", "Cancel");
|
||||
define("MAILAN_39", "Emailing");
|
||||
define("MAILAN_40", "You need to rename <b>e107.htaccess</b> to <b>.htaccess</b> in");
|
||||
define("MAILAN_41", "before sending mail from this page.");
|
||||
define("MAILAN_42", "Warning");
|
||||
define("MAILAN_43", "Username");
|
||||
define("MAILAN_44", "User Login");
|
||||
define("MAILAN_45", "User Email");
|
||||
define("MAILAN_46", "User-Match");
|
||||
define("MAILAN_47", "contains");
|
||||
define("MAILAN_48", "equals");
|
||||
define("MAILAN_49", "Id");
|
||||
define("MAILAN_50", "Author");
|
||||
define("MAILAN_51", "Subject");
|
||||
define("MAILAN_52", "Lastmod");
|
||||
define("MAILAN_53", "Admins");
|
||||
define("MAILAN_54", "Self");
|
||||
define("MAILAN_55", "Userclass");
|
||||
define("MAILAN_56", "Send Mail");
|
||||
define("MAILAN_57", "Keep SMTP session alive");
|
||||
define("MAILAN_58", "There is a problem with the attachment:");
|
||||
define("MAILAN_59", "Mailing Progress");
|
||||
define("MAILAN_60", "Sending...");
|
||||
define("MAILAN_61", "There are no remaining emails to be sent.");
|
||||
define("MAILAN_62", "Emails sent:");
|
||||
define("MAILAN_63", "Emails failed:");
|
||||
define("MAILAN_64", "Total time elapsed:");
|
||||
define("MAILAN_65", "seconds");
|
||||
define("MAILAN_66", "Cancelled Successfully");
|
||||
define("MAILAN_67", "Use 'POP before SMTP' authentication");
|
||||
define('LAN_MAILOUT_01','From Name');
|
||||
define('LAN_MAILOUT_02','From Email');
|
||||
define('LAN_MAILOUT_03','To');
|
||||
define('LAN_MAILOUT_04','Cc');
|
||||
define('LAN_MAILOUT_05','Bcc');
|
||||
define('LAN_MAILOUT_06','Subject');
|
||||
define('LAN_MAILOUT_07','Attachment');
|
||||
define('LAN_MAILOUT_08','Send Email');
|
||||
define('LAN_MAILOUT_09','Use Theme Style');
|
||||
define('LAN_MAILOUT_10','User Subscribed');
|
||||
define('LAN_MAILOUT_11','Insert Variables');
|
||||
define('LAN_MAILOUT_12','All Members');
|
||||
define('LAN_MAILOUT_13','All Unverified Members ');
|
||||
//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('LAN_MAILOUT_16','username');
|
||||
define('LAN_MAILOUT_17','signup link');
|
||||
define('LAN_MAILOUT_18','user id');
|
||||
define('LAN_MAILOUT_19','There is no email address for site-admin. Please check your preferences and try again.');
|
||||
define('LAN_MAILOUT_20','Sendmail-path');
|
||||
define('LAN_MAILOUT_21','Bulk mailing Entries');
|
||||
define('LAN_MAILOUT_22','There are currently no saved entries');
|
||||
define('LAN_MAILOUT_23','userclass: ');
|
||||
define('LAN_MAILOUT_24','email(s) are ready to be sent');
|
||||
define('LAN_MAILOUT_25','Bulk mailing controls');
|
||||
define('LAN_MAILOUT_26', 'Pause bulk mailing every');
|
||||
define('LAN_MAILOUT_27', 'emails for ');
|
||||
define('LAN_MAILOUT_28', 'Save Changes');
|
||||
define('LAN_MAILOUT_29', 'seconds');
|
||||
define('LAN_MAILOUT_30', 'More than 30 seconds may cause the browser to time-out');
|
||||
define('LAN_MAILOUT_31', 'Bounced Email Processing');
|
||||
define('LAN_MAILOUT_32', 'Email address');
|
||||
define('LAN_MAILOUT_33', 'Incoming Mail server');
|
||||
define('LAN_MAILOUT_34', 'Account (user) Name');
|
||||
define('LAN_MAILOUT_35', 'Password');
|
||||
define('LAN_MAILOUT_36', 'Delete Bounced Mails after checking');
|
||||
define('LAN_MAILOUT_37', 'Proceed');
|
||||
define('LAN_MAILOUT_38', 'Cancel');
|
||||
define('LAN_MAILOUT_39', 'Emailing');
|
||||
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('LAN_MAILOUT_42', 'Warning');
|
||||
define('LAN_MAILOUT_43', 'Username');
|
||||
define('LAN_MAILOUT_44', 'User Login');
|
||||
define('LAN_MAILOUT_45', 'User Email');
|
||||
define('LAN_MAILOUT_46', 'User-Match');
|
||||
define('LAN_MAILOUT_47', 'contains');
|
||||
define('LAN_MAILOUT_48', 'equals');
|
||||
define('LAN_MAILOUT_49', 'Id');
|
||||
define('LAN_MAILOUT_50', 'Author');
|
||||
define('LAN_MAILOUT_51', 'Subject');
|
||||
define('LAN_MAILOUT_52', 'Last mod');
|
||||
define('LAN_MAILOUT_53', 'Admins');
|
||||
define('LAN_MAILOUT_54', 'Self');
|
||||
define('LAN_MAILOUT_55', 'Userclass');
|
||||
define('LAN_MAILOUT_56','Send Mail');
|
||||
define('LAN_MAILOUT_57','Send bulk SMTP emails in blocks'); // SMTP KeepAlive option
|
||||
define('LAN_MAILOUT_58', 'There is a problem with the attachment:');
|
||||
define('LAN_MAILOUT_59', 'Mailing Progress');
|
||||
define('LAN_MAILOUT_60', 'Sending...');
|
||||
define('LAN_MAILOUT_61', 'There are no remaining emails to be sent.');
|
||||
define('LAN_MAILOUT_62', 'Emails sent:');
|
||||
define('LAN_MAILOUT_63', 'Emails failed:');
|
||||
define('LAN_MAILOUT_64', 'Total time elapsed:');
|
||||
define('LAN_MAILOUT_65', 'seconds');
|
||||
define('LAN_MAILOUT_66', 'Cancelled Successfully');
|
||||
define('LAN_MAILOUT_67', 'The email could not be sent. Please review your SMTP settings, or select another mailing method and try again.');
|
||||
define('LAN_MAILOUT_68','Include from registered users');
|
||||
define('LAN_MAILOUT_69','matches, after ');
|
||||
define('LAN_MAILOUT_70',' duplicates stripped.');
|
||||
define('LAN_MAILOUT_71','Total emails to send');
|
||||
define('LAN_MAILOUT_72','Mailshot logging');
|
||||
define('LAN_MAILOUT_73','No logging');
|
||||
define('LAN_MAILOUT_74','Logging only (no send)');
|
||||
define('LAN_MAILOUT_75','Log and send');
|
||||
define('LAN_MAILOUT_76','Include email info in log');
|
||||
define('LAN_MAILOUT_77','Supplementary email address sources');
|
||||
define('LAN_MAILOUT_78','Mailshot Status');
|
||||
define('LAN_MAILOUT_79','No mailshots to display');
|
||||
define('LAN_MAILOUT_80','Date');
|
||||
define('LAN_MAILOUT_81','The email has been successfully sent, please check your inbox.');
|
||||
define('LAN_MAILOUT_82','Original count');
|
||||
define('LAN_MAILOUT_83','Left to go');
|
||||
define('LAN_MAILOUT_84','Mail ID');
|
||||
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','');
|
||||
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user