Avatar billede danic Nybegynder
02. januar 2004 - 17:03 Der er 18 kommentarer og
1 løsning

Udsendelse af nyhedsbreve - hvor mange kan den tage??

Jeg skal sende en del nyhedsbreve ud, kan man tage f.eks. 1000 på en gang eller er det bedre at dele min mysql_query op i flere små stykker????????

$result = mysql_query("select email from users where newsletter='1'");
while($row = mysql_fetch_array($result)) {
$modtager  = $row[email];
PEAR mail kommandoer
}
Avatar billede googolplex Novice
02. januar 2004 - 17:12 #1
Det kommer an på mange ting, hvor langt nyhedsbrevet er, hvad timeput er sat til på din server osv. Men at dele det op er afgjort en løsning :)
Avatar billede phpwiz Nybegynder
02. januar 2004 - 17:19 #2
tror det er bedre og mere optimalt at sende mails ved at bruge fsockopen og så forbinde og sende direkte via port 25
Avatar billede danic Nybegynder
02. januar 2004 - 17:22 #3
ramlev.dk> Jeg er hosted kender ikke noget til fsockopen

Hvordan får jeg min mysql_query til at tage 25 af gangen ?
Avatar billede phpwiz Nybegynder
02. januar 2004 - 17:23 #4
kig i mysql manualen på : limit
Avatar billede googolplex Novice
02. januar 2004 - 17:26 #5
Du kan eventuelt lave en for-løkke og så hele tiden holde øje med hvor løkken er nået til når du redirecter til scriptet igen. Og din sql:

$result = mysql_query("select email from users where newsletter='1' LIMIT $start,25");
Avatar billede danic Nybegynder
02. januar 2004 - 17:26 #6
Her får jeg de 25 nyeste, men jeg skal jo have dem alle sammen?

ORDER by 'id' desc limit 0,25
Avatar billede googolplex Novice
02. januar 2004 - 17:28 #7
Øhh, det med for-løkken er noget vrøvl! Men du skal bare have en counter der bliver sent videre med query-stengen, som fortæller hvor udtrækket fra db skal starte.
Avatar billede googolplex Novice
02. januar 2004 - 17:29 #8
LIMIT $start,25

Så skal start sættes 25 frem hele tiden og sendes vidre.
Avatar billede danic Nybegynder
02. januar 2004 - 17:31 #9
Kan du lave et eksemplel ? 8)
Avatar billede googolplex Novice
02. januar 2004 - 18:07 #10
<?php

$start = $_GET['start'];

$antal_mails = 25;

$result = mysql_query("select email from users where newsletter='1' LIMIT $start, $$antal_mails");
while($row = mysql_fetch_array($result)) {
$modtager  = $row[email];
PEAR mail kommandoer
}

$start += 25;
header('Location: http://ditdomaene.dk/script.php?start=$start');

?>

Prøv lige det.
Avatar billede googolplex Novice
02. januar 2004 - 18:08 #11
Hov, der er et $ for meget:

<?php

$start = $_GET['start'];

$antal_mails = 25;

$result = mysql_query("select email from users where newsletter='1' LIMIT $start, $antal_mails");
while($row = mysql_fetch_array($result)) {
$modtager  = $row[email];
PEAR mail kommandoer
}

$start += 25;
header('Location: http://ditdomaene.dk/script.php?start=$start');

?>
Avatar billede danic Nybegynder
02. januar 2004 - 18:54 #12
Hvad gør den her linie godt for ?

header('Location: http://ditdomaene.dk/script.php?start=$start');
Avatar billede googolplex Novice
02. januar 2004 - 18:57 #13
Den sender videre til sig selv!! (du skal ændre adressen). Så timer scriptet ikke ud, fordi det hele tiden starter forfra (siden bliver kaldt igen). Så kan du sende alle de mails du har lyst til.
Avatar billede thorus Nybegynder
02. januar 2004 - 19:07 #14
jeg er ved at lave en artikel om udsendelse af HTML mails som kan sende til rigtig mange mails uden Cron job. den kommer snart på www.phpuniverset.dk
Avatar billede googolplex Novice
02. januar 2004 - 19:15 #15
Jeg sad faktisk lige og kiggede på www.phpuniverset.dk - pudsigt :)

Hvilken metode bruger du og hvornår er 'snart' ?
Avatar billede thorus Nybegynder
02. januar 2004 - 19:36 #16
Det bliver en fusker måde når man ikke bruger Cron job + (fsockopen) den skal kunne bruges af alle og det gør det lidt svært at lave en super nice en. men den kommer til at køre med at man bliver nød til at restart nyhedsbrevet et par gange pga. timeout men det er som jeg kan se det den eneste løsning. Når man sender er der en tabel som ændres og på den måde kan html mail send tracke hvor mange, som der er blevet sendt til indtil timeout problemet kom.
Avatar billede thorus Nybegynder
02. januar 2004 - 19:37 #17
Det kommer også and på hvilken system du har bag sendmail
Avatar billede danic Nybegynder
02. januar 2004 - 20:07 #18
Den kunne godt tage dem alle uden en for løkke, men tak for hjælpen anyway :)
Avatar billede googolplex Novice
02. januar 2004 - 21:03 #19
danic: Ja, det med for-løkken var mig der vrøvlede, brugte du den løsning jeg skrev eller lavede du din egen ?

Takker for point!

thorus: Glæder mig til at læse den :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester