Gå til innhold

[Løst]Sende mange e-poster i enkelt nyhetsbrev.


Anbefalte innlegg

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
Videoannonse
Annonse
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 av Joergen_jo
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...