Nyhedsbrev - Hvordan gør man det bedst muligt?

Tags:    php

<< < 12 > >>
Hej alle sammen.

Jeg står og skal lave et nyhedsbrevssystem til et CMS som jeg har gang i.

Nu er problemet bare, at jeg ikk rigtigt kan få det til at virke godt nok. Jeg ville gerne have muligheden for at man kunne se hvor langt processen var nået, altså hvor mange nyhedsbrevet var sendt til, og hvor mange som er tilbage.

Jeg har fået lavet en løsning med noget iframe, men når der skal sende mails til flere tusind email adresser, så virker det ikke helt perfekt.

Derfor ville jeg gerne have lidt hjælp til hvordan jeg skal gribe det her an.

Jeg håber I kan hjælpe mig.



15 svar postet i denne tråd vises herunder
4 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
Du skal nok bare lave noget AJAX og så se på status derfra..!



Ja, det vil jeg så ikke give dig. Det er bedre at du selv prøver, det er sådan man lærer det :D

Men... Du skal jo have et script der kører igennem en database i en loop, henter deres e-mail og evt. sætter et parameter for at fortælle at nu er der sendt en mail.
Husk at skal der sendes mange mails, skal du sætte page timeout ude af spil, elles fejler dit script. Det er en enkelt kommando som jeg ikke kan huske hvad er.

Ved ikke om det er til meget hjælp...



Jeg holder stadig på at dette er en exceptionel dårlig ide, men her er et eksempel, Ajax controllen er hjemmelavet så forbehold for fejl, og det går fuldkommen galt hvis den starter det flere gange uden at den når at stoppe.

status.xml
Fold kodeboks ind/udKode 

upload den og sæt permissions til 666.

send_mail.php
Fold kodeboks ind/udPHP kode 

det her er eksempel kode, du skal indlysende nok selv skrive mail koden. mail koden skal udføre $dom->save(); inden for et vist antal iterationer ikke for hver iteration medmindre du

index.php
Fold kodeboks ind/udKode 

exempel på brugen den sender værdier af text feltet med som test i $_POST


ajax.js
Fold kodeboks ind/udJScript kode 




Hej ved ikke om du har fundet en løsning, men jeg har et forslag.

Du kan måske bruge ob_flush() og flush(). har ikke nogen direkte løsning, men læs evt. mere her http://www.php.net/manual/en/function.flush.php . Du kan i forbindelse med ob_flush() og flush() bruge et gif billede der viser, at der loades så lukker man ihvertfald ikke browser vinduet ned.

Håber det kan bruges ;)

Med Venlig Hilsen
//Rasmus



En hurtig søgning. Det må næsten været det du leder efter:
http://webscripts.softpedia.com/script/PHP-Clases/PHP-Progressbar-25825.html
http://www.phpclasses.org/browse/file/7780.html

... eller Google "Progressbar" i sammenhæng med PHP eller JavaScript.



Ligger processen i sendingen ikke hos din SMPT-server. Det vil vel sige at du skal få informationer om at sendingen har fundet sted derfra?

Ved jeg ikke om kan lade sig gøre.



En hurtig søgning. Det må næsten været det du leder efter:
http://webscripts.softpedia.com/script/PHP-Clases/PHP-Progressbar-25825.html
http://www.phpclasses.org/browse/file/7780.html

... eller Google "Progressbar" i sammenhæng med PHP eller JavaScript.

Øhhh....Nej, det var vist ikk lige det jeg søgte ;) hehe...

Det var ikke hvordan man laver en processbar, men hvordan jeg laver et nyhedsbrevssystem med en form for processbar ;)

Ligger processen i sendingen ikke hos din SMPT-server. Det vil vel sige at du skal få informationer om at sendingen har fundet sted derfra?

Ved jeg ikke om kan lade sig gøre.

Det tror jeg du har ret i, men spørgsmålet er bare hvordan man gør det ;)



Indlæg senest redigeret d. 28.08.2008 16:06 af Bruger #8254
Det jeg prøvede at opnå med min post var at klare den med en processbar. PHP koden til at sende mails kommer ved siden af, men du kan jo i din kode opdele alle mails til 100%, scriptet skulle gerne vente på SMTP serveren.
Derfor kan du opdatere en progressbar efterhånden som scriptet skrider frem, men hvis du har mulighed for at implementere Ajax, er det jo det mest optimale.



Det jeg prøvede at opnå med min post var at klare den med en processbar. PHP koden til at sende mails kommer ved siden af, men du kan jo i din kode opdele alle mails til 100%, scriptet skulle gerne vente på SMTP serveren.
Derfor kan du opdatere en progressbar efterhånden som scriptet skrider frem, men hvis du har mulighed for at implementere Ajax, er det jo det mest optimale.

Okay ;)

Men det er meget svært for mig at se hvordan jeg skal gøre det udfra jeres beskrivelser. Jeg kan godt se fidusen, men jeg skal bruge nogle kode eksempler for at kunne se hvad I helt mener :)



Ja, det vil jeg så ikke give dig. Det er bedre at du selv prøver, det er sådan man lærer det :D

Det har du skam helt ret i, men som jeg startede med at skrive, så har jeg netop prøvet ;)

Men... Du skal jo have et script der kører igennem en database i en loop, henter deres e-mail og evt. sætter et parameter for at fortælle at nu er der sendt en mail.
Husk at skal der sendes mange mails, skal du sætte page timeout ude af spil, elles fejler dit script. Det er en enkelt kommando som jeg ikke kan huske hvad er.

Ved ikke om det er til meget hjælp...

Egentlig ikke, men det kunne du jo ikk vide ;) Jeg har allerede en database (CMS = Database), som indeholder e-mail adresserne, og ja, jeg har sat timeout ud af spillet. Det der bare er problemet med at køre en stor fil, som skal sende alle emails'ene, er at man ikk rigtig kan se hvor langt den er nået, og derfor kan brugeren tro at siden er gået i stå, og derfor lukker browseren og dermed er kun en brøkdel blevet afsendt.



<< < 12 > >>
t