##############################################################
## MOD Title: Split Mass Mail in Chunks
## MOD Author: R. U. Serious <
r.u.serious@handykoelsch.de>
http://www.handykoelsch.de
## MOD Description: This MOD relates to the Admin-Mass-Mail function.
## Instead of sending a single email with all recipients as BCC,
## it will split the mail up in several emails each with 100 users in
## the BCC-field. This is to work around problems for larger boards
## to send mass mail.
## MOD Version: 0.9.2
##
## Installation Level: easy
## Installation Time: 6 Minutes
## Files To Edit: admin_mass_email.php, templates/subSilver/admin/user_email_body.tpl
## Included Files: n/a
##############################################################
## For Security Purposes, Please Check:
http://www.phpbb.com/mods/downloads/ for the
## latest version of this MOD. Downloading this MOD from other sites could cause malicious code
## to enter into your phpBB Forum. As such, phpBB will not offer support for MOD's not offered
## in our MOD-Database, located at:
http://www.phpbb.com/mods/downloads/
##############################################################
## Author Notes: When using the massmail-feature, It will take quite a while to process.
## Do _NOT_ resubmit the form, just wait...
##
##
## Version History: 0.9.2 Fixed Problem that it's only refreshing.
## 0.9.1 Added Javascript to prevent re-submission of form
## 0.9.0 Initial version
##
##############################################################
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD
##############################################################
#
#-----[ OPEN ]------------------------------------------
#
admin/admin_mass_email.php
#
#-----[ FIND ]------------------------------------------
#
if ( isset($HTTP_POST_VARS['submit']) )
#
#-----[ REPLACE ]------------------------------------------
#
if ( isset($HTTP_POST_VARS['message']) || isset($HTTP_POST_VARS['subject']) )
#
#-----[ FIND ]------------------------------------------
#
$bcc_list = '';
do
{
$bcc_list .= ( ( $bcc_list != '' ) ? ', ' : '' ) . $row['user_email'];
}
while ( $row = $db->sql_fetchrow($result) );
#
#-----[ REPLACE ]------------------------------------------
#
$bcc_list = array();$j=0;
$bcc_list[0] = $row['user_email'];
for ($i = 1;;$i++)
{
if ( !( $row = $db->sql_fetchrow($result)) ) break;
$bcc_list[$j] .= ( ( $bcc_list[$j] != '' ) ? ', ' : '' ) . $row['user_email'];
if (($i % 100) == 0 ) $j++;
}
#
#-----[ FIND ]------------------------------------------
#
$emailer = new emailer($board_config['smtp_delivery']);
#
#-----[ BEFORE, ADD ]------------------------------------------
#
for ($i = 0; $i < count($bcc_list);$i++)
{
#
#-----[ FIND ]------------------------------------------
#
$email_headers .= "Bcc: $bcc_list\n";
#
#-----[ REPLACE ]------------------------------------------
#
$email_headers .= "Bcc: $bcc_list[$i]\n";
#
#-----[ FIND ]------------------------------------------
#
$emailer->reset();
#
#-----[ AFTER, ADD ]------------------------------------------
#
}
#
#-----[ OPEN ]------------------------------------------
#
templates/subSilver/admin/user_email_body.tpl
#
#-----[ FIND ]------------------------------------------
#
<h1>{L_EMAIL_TITLE}</h1>
#
#-----[ BEFORE, ADD ]------------------------------------------
#
<SCRIPT LANGUAGE="JavaScript">
<!--
function disableForm(theform) {
if (document.all || document.getElementById) {
for (i = 0; i < theform.length; i++) {
var tempobj = theform.elements
;
if (tempobj.type.toLowerCase() == "submit" || tempobj.type.toLowerCase() == "reset")
tempobj.disabled = true;
}
return true;
}
else {
alert("The form has been submitted. Please do NOT resubmit. ");
return false;
}
}
// End -->
</script>
#
#-----[ FIND ]------------------------------------------
#
<form method="post" action="{S_USER_ACTION}">
#
#-----[ REPLACE WITH ]------------------------------------------
#
<form method="post" action="{S_USER_ACTION}" onSubmit="return disableForm(this);">
#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# EoM