Joergen_jo Skrevet 18. november 2009 Del Skrevet 18. november 2009 Hei. Jeg har prøvd og få til et script for å sende mange e-poster til e-postadresser jeg har i en MySQL database. Scriptet virker ikke, og jeg skjønner ikke hva som er feil. <?php set_time_limit(0); error_reporting(0); require_once("../auth.php"); $rang = $_SESSION['SESS_ACCESS_LEVEL']; if ($rang == 'Admin') { // Hent post variabler $message = $_POST['message']; $count = 35; // Hvor mange e-poster som skal sendes på en gang. $sent = 0; // Hvor mange e-poster som er sendt. require_once("../inc/dbconnect.php"); $qry = mysql_query("SELECT DISTINCT email FROM newsletter WHERE active='1'") or die(mysql_error()); while($row = mysql_fetch_array($qry)) { $email = $row['email']; $sent+1; // Legg til en i sendt variablen if( $sent == $count ) { sleep( 150 ); echo "Venter..."; $sent = 0; // Nullstill sendt variablen } $subject = "Holmestrand Data Newsletter"; $from = "[email protected]"; $headers = "From: $from"; mail($email,$subject,$message,$headers); // Send e-postene } ?> E-postene ble sendt! Vidrefører deg om 10 sekunder. <meta http-equiv="refresh" content="10;url=newsletter.php"> <?php } else { echo "Du har ikke tillatelse til å kjøre dette scriptet!"; } ?> Skjermen blir bare hvit og det skjer ingenting. Så den stopper et sted, jeg skjønner bare ikke hvor. - J Lenke til kommentar
TeisL Skrevet 18. november 2009 Del Skrevet 18. november 2009 Hei, foreslår at du tar en titt her: http://no2.php.net/manual/en/function.mail.php Og, hvorfor har du den count variabelen? Skal du ikke bare sende nyhetsbrev til alle mailadressene i databasen?? Lenke til kommentar
Joergen_jo Skrevet 18. november 2009 Forfatter Del Skrevet 18. november 2009 (endret) Hei, foreslår at du tar en titt her: http://no2.php.net/manual/en/function.mail.php Og, hvorfor har du den count variabelen? Skal du ikke bare sende nyhetsbrev til alle mailadressene i databasen?? Jo, stemmer det. Men jeg vil ikke overbelaste serveren dersom det blir mange etterhvert. Derfor sender den 35 stk, så 1 min og 30 sek pause. - J Edit: Da har jeg løst det selv. Dette er koden jeg endte opp med: <?php //Start session session_start(); //Include database connection details require_once('../inc/dbconnect.php'); require_once('./auth.php'); //Array to store validation errors $errmsg_arr = array(); //Validation error flag $errflag = false; //Sanitize the POST values $message = $_POST['message']; //Input Validations if($message == '') { $errmsg_arr[] = 'Melding mangler!'; $errflag = true; } //If there are input validations, redirect back to the article form if($errflag) { $_SESSION['ERRMSG_ARR'] = $errmsg_arr; session_write_close(); header("location: ../newsletter.php"); exit(); } $count = 35; // Hvor mange e-poster som skal sendes på en gang. $sent = 0; // Hvor mange e-poster som er sendt. require_once("../inc/dbconnect.php"); $qry = mysql_query("SELECT * FROM newsletter WHERE active='1'") or die("Query Failed"); while($row = mysql_fetch_array($qry)) { $email = $row['email']; $sent + 1; // Legg til en i sendt variablen if( $sent == $count ) { sleep( 150 ); echo "Venter..."; $sent = 0; // Nullstill sendt variablen } $subject = "Holmestrand Data Newsletter"; $from = "[email protected]"; $headers = "From: $from"; mail($email,$subject,$message,$headers); // Send e-postene } //Check whether the query was successful or not if($result) { header("location: ../sendnewsletter-success.php"); exit(); }else { die("Query failed"); } ?> Endret 18. november 2009 av Joergen_jo Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå