Mail() to smtp
Posted: Mon May 15, 2006 2:27 pm
Hey,
I've done a PHP script that should email out some stuff and since mail() is so instabil and can't take so many email adresses i've decided to go with smtp.
So i'm wondering if someone could say what i should change in my code to use smtp instead of my mail(); function and get it to work.
Here is my code:
I've done a PHP script that should email out some stuff and since mail() is so instabil and can't take so many email adresses i've decided to go with smtp.
So i'm wondering if someone could say what i should change in my code to use smtp instead of my mail(); function and get it to work.
Here is my code:
Code: Select all
<?
error_reporting(E_ALL);
$databas = "emailadresses";
$databas_epost = "table";
$connect = mysql_connect("ip", "user", "root") or die(mysq_error());
$db = mysql_select_db($databas);
//-----Läs in variablerna från formuläret
$text = $_POST['meddelande'];
$subject = $_POST['subject'];
$sender = $_POST['sender'];
$user = $_POST['user'];
$datum = $_POST['datum'];
$tid = $_POST['tid'];
$NewReplyTo = $_POST['sender'];
$avser = 'skarpt';
$databas_arkiv = $_SESSION['sess_databas'].'_arkiv';
$databas_epost = $_SESSION['sess_databas'].'_mailadresser';
// To send HTML mail, the Content-type header must be
$MailHeader = 'MIME-Version: 1.0' . "\r\n";
$MailHeader .= 'Content-type: text/html; charset=iso-8859-9' . "\r\n";
//fungerar inte $MailHeader .= 'bcc:' . "\r\n";
$MailHeader .= 'From: '. $sender. '<'. $sender . '>'. "\r\n";
$MailHeader .= 'Reply-To: '.$NewReplyTo.' <'.$NewReplyTo.'>'. "\r\n";
$MailHeader .= 'Date: '.date('r'). "\r\n";
$MailHeader .= 'Message-ID: <'.date('YmdHis').'info@'.$_SERVER['SERVER_NAME'].'>'. "\r\n";
$MailHeader .= 'X-Mailer: PHP/' . phpversion(). "\r\n";
$MailHeader .= 'X-Priority: 3' . "\r\n";
//$Mailheader .= 'Return-path: '. $sender. '<'. $sender . '>'. "\r\n";
$MailHeader .= 'Importance: Normal'."\r\n";
ini_set("max_execution_time","9999");
ignore_user_abort(true);
if($text!=""){
$sql = "SELECT epost FROM $databas_epost WHERE aktiv='yes'";
$result = mysql_query($sql) OR DIE(mysql_error());
$rows = mysql_num_rows($result);
$batch = 50; //antal mail som skickas per runda
$pre_rundor = $rows/$batch; //antal rundor
// -- nollställning av räknare och innehållsvariabler
$count = 0;
$recepient = "";
$total_counter = 0;
$all_recepients = "";
$show_batch = "";
$round = 0;
//en snurra som skickar mailen i omgångar om antalet i variabeln batch
while ($row = mysql_fetch_array($result)){
$recepient .= ",".$row['epost'];
$all_recepients .= ", ".$row['epost'];
$count++;
$total_counter++;
// när räknaren kommit upp i batch-antalet adresser - skicka mail
if ($count == $batch){
$recepient = substr($recepient, 1);
$round++;
echo "<br><br><b>Runda $round</b>.<br>OBS! Låt sidan ladda helt färdigt.
Den ska snurra igenom $pre_rundor rundor. När du ser själva mailet kan du pusta ut.";
// if(mail("bcc:""$sender","$subject","$text\n\n$signature", "from:$sender\r\n"."bcc:".$recepient."\r\n".$headers))
if(mail("$sender","$subject","<center><font face=\"Verdana\" size=\"1\">$message1</font><br>$text\n\n<font face=\"Verdana\" size=\"1\">$message2</font></center>", "bcc:".$recepient . "\r\n" . $MailHeader))
{
$check ='Ja';
}
else $check = 'Nej';
$count = 0;
$recepient = "";
}
}
// Tag hand om resten
if ($count > 0){
$recepient = substr($recepient, 1);
//echo "<br><br><b>Resten: $count </b>.";
$message2 = "<a href=\"http://www.websitensnamn.net/tabort.php?id={$epost}?databas={$databas_epost}\">Vill du inte längre få detta nyhetsbrev. Klicka här</a>\r\n";
// if(mail("bcc:""$to","$subject","$text\n\n$signature","from:$sender\r\n"."bcc:".$recepient))
if(mail("$sender","$subject","<center><font face=\"Verdana\" size=\"1\">$message1</font><br>$text\n\n<font face=\"Verdana\" size=\"1\">$message2</font></center>", "bcc:".$recepient . "\r\n" . $MailHeader))
{
$check ='Ja';
}
else $check = 'Nej';
}
$sum = $round*$batch+$count;
echo "<table width=\"924\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\" background=\"img/hem_bak.gif\">
<tr>
<td width=\"40\"> </td>
<td width=\"876\"><font face=\"Verdana\" size=\"1\"><b>Nu är vi klara!</b><br><b>Totalt:</b> $round rundor gånger $batch + resterande $count = $sum adresser.<br><br><b>Brevet drog iväg till följande $rows prenumeranter:</B> <BR>$all_recepients <br></font></td>
<td> </td>
</tr>
<tr>
<td colspan=\"3\"><img src=\"img/ner.gif\" width=\"924\" height=\"31\" alt=\"hem_ner\" /></td>
</tr>
</table>";
echo "<br><br><b>Nu är vi klara!<br>Totalt: $round rundor gånger $batch + resterande $count = $sum adresser.<br></b>";
//-----------------------------
if($check == 'Ja') {
echo "<P>Brevet drog iväg till följande $rows prenumeranter: <BR>$all_recepients <br>";
$laggTill = "INSERT INTO $databas_arkiv (subject, meddelande, user, datum, tid, status, mailskick, avser)
VALUES ('$subject', '$text', '$user', '$datum', '$tid', 'Utskickat', '$sum', '$avser')";
print("Information lades framgångsrikt till i arkivet!");
} else
$laggTill = "INSERT INTO $databas_arkiv (subject, meddelande, user, datum, tid, status, mailskick, avser)
VALUES ('$subject', '$text', '$user', '$datum', '$tid', 'Ej utskickat', '$sum', '$avser')";
} else
$laggTill = "INSERT INTO $databas_arkiv (subject, meddelande, user, datum, tid, status, mailskick, avser)
VALUES ('$subject', '$text', '$user', '$datum', '$tid', 'Ej utskickat p.g.a ingen text', '$sum', '$avser')";
mysql_query($laggTill) or die("SQL: $laggtill <br>".mysql_error());
?>