Jag har utvecklat ett PHP script för precis det. Det innehåller även ett enkelt gränssnitt för att göra ordning mejlet som ska skickas.
Det hanterade att skicka ut 4000 mejl i alla fall - de tog cirka 30 sekunder att pumpa ut dom.
Jag misstänker att PHP-scriptet exekverades på 30 sekunder men att ditt sendmail program hade att göra i ett bra tag efter. Min erfarenhet är att sendmail på en 800 MHz linux server klarar cirka två-tre mail per sekund
Om jag har helt fel får du gärna skicka över din sendmailkonfiguration för vår mailserver går på knäna med 3-4 mail per sekund som den måste hantera just nu
För att återgå till ämnet, här är ett PHP-script för att skicka HTML-mail:
<? function SendHTMLEmail($to , $subject , $body){ ?>
<?
$mail_headers = "";
$mail_headers .= "Mime-Version: 1.0
";
$mail_headers .= "Content-Type: multipart/mixed; boundary="=MULTIPART="
"; // HTML email
#$mail_headers .= "Content-Transfer-Encoding:
";
$mail_headers .= "From: Alxnet <[email protected]>
";
$mail_headers .= "Reply-To: Alxnet <[email protected]>";
/* format mail content */
$mail_body = "--=MULTIPART=
Content-Type: text/html;charset=US-ASCII
";
/* header of mail */
$mail_body .= "
här slänger du in all html-kod
";
$mail_body .= "
--=MULTIPART=--
";
/* send the email */
mail($to , $subject , $mail_body , $mail_headers);
?>
<? } ?>
Om du har planer på att skicka många mail skulle jag rekommendera dig att sätta timeout värdet för PHP-script till något högt. Annars finns risken att PHP automatiskt stänger av scriptet efter ett antal mail. Då får du aldrig veta om alla skickades iväg eller om vilka som isåfall aldrig fick sitt mail. Om du installerat PHP som mod_cgi kan du även köra PHP via kommandoraden, då slipper du problemet med timeout helt och hållet.
//Patrik