Jump to content

Mass mailer


pietbez

Recommended Posts

So what is the big secret with mass mailing. i have searched forums, scripts, freelancers and everything i can think of but just cant get info about it.

 

i have a db of about 3000 registered members. i need to mail a newsletter on a regular basis.

 

the php script that i use works fine for small batches, but wont send more than 300 at a time.

it pulls the newsletter from a bd, and also pulls the emails from a db.

 

what is the "right way" to do this.

 

Batch mails?  multiple smtp's? 

 

i have had several freelance scripter work on this but cant solve my problem.

 

is there a single corect way to do this, is my approach way off the mark?

 

please help, or point me in the right direction.

 

 

 

Link to comment
Share on other sites

essentially 2 ways,

 

1 is a good script that can queue the mailings, send off 20 - 100 at a time with a 10 minute pause between sends

 

the other way is to send them all out as a single message making all the emails a BCC

 

quite a few scripts that can queue up mail,

try testing a few out, if you still have trouble send me a message and I'll see if I can help

Link to comment
Share on other sites

this is the script i am using at the moment. is this script badly written? can i modify this script to work corectly or should i start from scrach with a new approach?

all i need is to know that my newsletter is going out to all my members.

 

what is the most effective, batch or bcc?

 

 <? 
include('../functions.php');
if(!$_SESSION['admin_logged_in'])
{
header('Location: ' .LOGIN_URL );
}

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Admin | Send mass mail</title>
<link href="style.css" rel="stylesheet" type="text/css" media="all" />
<body>
<?
$letter_id = ( !empty($_REQUEST['letter_id']) ) ? $_REQUEST['letter_id'] : FALSE;
$msg='';

$let_info=get_letter($letter_id);
$letter_title=$let_info['name'];
$hf=get_hf();


if (isset($_REQUEST['submit_preview']))
{
$ready_to_send = true;
$letter_body='';
$letter_body=$hf['header'].'<br>'.$let_info['content'].'<br>'.$hf['footer'].'<br>';
}

if (isset($_REQUEST['submit_mass_mail']))
{
$info=get_mass_mails();

$members=$info['items'];

$oks=$bads=$invalids=0;


$letter_body='';

$headers='';
$headers .= 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From:  dorp <contact@xxxx.co.uk>'. "\r\n";
$headers .= 'Reply-To: contact@xxxx.co.uk' . "\r\n";

$hf_header_tmp = $hf['header'];

$let_info_tmp .= $let_info['content'];


for ($i=0; $i<$info['total']; $i++) 
{
	$name = $members[$i]['name'];
	$email = $members[$i]['email'];

	if (valid_mail($email)) 
	{	
		//$headers .= "To: $name <$email>" . "\r\n";		
		$hf['header'] = str_replace('[name]', $name, $hf_header_tmp);
                        $hf['footer'] = str_replace("[email]", $email, $hf['footer']);

		$let_info['content'] = str_replace('[name]', $name, $let_info_tmp);


		$letter_body =$hf['header'].'<br>'.$let_info['content'].'<br>
<img src="http://www.xxxx.co.uk/cpanel/mail.php?id='.$letter_id.'&u='.$members[$i]['id'].'">'.$hf['footer'].'<br>';
		$letter_body = str_replace("\n.", "\n..", $letter_body);



	 	if (mail($email, $letter_title, $letter_body, $headers))
			++$oks;
	 	else ++$bads;

	}
	else 
	{
		++$invalids;
	}
}

$all=$oks+$bads+$invalids;
$msg="<br>Mailing reports:<br>
<br>Letter: #$letter_id - $letter_title<br>
<br>Sent: $oks
<br>Failed:	$bads<br>
<br>Invalid E-mails: $invalids<br>
<br>Total: $all .";

create_log_entry($_SESSION['auth_literal_admin_level'].' '.$_SESSION['auth_admin_name'].$msg,$_SESSION['auth_admin_name'],'mailing');
//
}
?>
<br />
<script language="javascript" type="text/javascript">
function disableForm(theform) {
if (document.all || document.getElementById) 
{
	for (i = 0; i < theform.length; i++) 
	{
		var tempobj = theform.elements[i];
		if (tempobj.name.toLowerCase() == "submit_mass_mail" || tempobj.type.toLowerCase() == "submit_preview")
		tempobj.disabled = true;
	}
}
}
</script>
<form id="form1" name="form1" method="post" action="mass_mailer.php?letter_id=<? echo $letter_id; ?>"><!-- onSubmit="return disableForm(this);" -->

<table width="685" border="0" align="center" cellpadding="0" cellspacing="1" class="input_form">
  <tr>
    <th colspan="2" scope="row">Send mass mail </th>
    </tr>
  <tr>
    <td colspan="2" class="style7" scope="row"> </td>
    </tr>
  <tr>
    <td width="85" class="style7" scope="row">Choose letter </td>
    <td width="412">
<select name="letter_id" id="letter_id">
<?
 $eq = get_letters();
 $eq_info = $eq['items'];

 for ($i=0; $i<$eq['total']; $i++) 
 {
	 if ($eq_info[$i]['id'] == $letter_id) 
	 	$chx='selected="selected"';
	 else $chx='';
	 echo "<option value='{$eq_info[$i]['id']}' $chx>{$eq_info[$i]['name']}</option>\r\n";
}
?>
    </select>
<input name="submit_preview" type="submit" id="submit_preview" value="Preview!" /></td>
  </tr> <? if ($ready_to_send) {?>
  <tr>
    <td colspan="2" scope="row"><span class="style7">
You are about to send a mass mail to
<? echo count_members(); ?> members of your site
    </span></td>
    </tr>
  <tr>
    <td colspan="2" class="header" scope="row"><div align="center"><span class="style7">
      
    </span>** Letter preview below ** <span class="style7">
  
    </span></div>  </td>
  </tr>
  <tr>
    <td colspan="2" scope="row"><? echo $letter_title ; ?></td>
  </tr>
  <tr>
    <td colspan="2" scope="row"><? echo $letter_body ; ?></td>
  </tr>
  <tr>
    <td colspan="2" class="header" scope="row"><div align="center"><span class="style7"> </span>** end preview ** <span class="style7"> </span></div></td>
  </tr>
  <tr>
    <td colspan="2" scope="row"><div align="center"> 
          <script language="javascript">
function write_message(letter_id) 
{
	alert(letter_id);
//document.write('Please be patient while mailing list is processed! This may take a while, depending on the total users...');
}
</script>
        </div></td>
    </tr>
  <tr>
    <td colspan="2" scope="row">
      <div align="center">
        <input name="submit_mass_mail" type="submit" id="submit_mass_mail" value="Send mass mail!" />
        <span class="error"><br />(press only once and wait the page to load completely!)</span></div></td>
  </tr> 
  <? ;} ?>
  <tr>
    <td colspan="2" scope="row">
<div align="left" class="error">
  <? if ($msg!='') {echo $msg;} ?>
</div>	</td>
  </tr>
</table>
</form>
</body>
</html>

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.