login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Nieuwbrief versturen (+1000) (Opgelost)

Offline finduilas - 04/02/2009 11:47
Avatar van finduilasPHP gevorderde Hallo,

Wat is de beste manier om een nieuwsbrief te versturen (ZONDER CRONJOBS) en het de gebruiker zo eenvoudig mogelijk maken...

De nieuwsbrief wordt gegenereerd en wordt opgeslagen in de DB.

Maar dan; 1x versturen lukt uiteraard. (1000x zou ook gaan (for-lus) maar in de DB zitten ongeveer 1000 emailadressen. Ik zou niet willen dat de helft er dan niet van doorgaat. Mijn vraag is dus nu. Hoe zend ik 1000 mails het efficients?

Opdelen? Maar in hoeveel; en dan moet ik 10x een actie doen en bijhouden wie hem al heeft gekregen...

Ik heb met nieuwsbrieven weinig ervaring.. Daarom deze vraag hoe jullie het doen.

19 antwoorden

Gesponsorde links
Offline marten - 04/02/2009 11:55
Avatar van marten Beheerder gewoon een for loop is het effectiefst. Ik heb het uitgeprobeerd omdat we bij ComSi ook nieuwsbrief systemen aanbieden. Wel op je script execution time letten 
Offline finduilas - 04/02/2009 11:58
Avatar van finduilas PHP gevorderde Dus 1000mails in 1x is het effectiefst?

En hoe kijk ik naar script execution time?
Offline marten - 04/02/2009 12:20
Avatar van marten Beheerder php.ini
Offline Martijn1989 - 04/02/2009 12:46
Avatar van Martijn1989 PHP ver gevorderde 1000 Mails in 1 keer sturen lijkt mij nou niet echt bevorderend, misschien het makkelijkst om te maken ;).

Maar denk eens aan server belasting etc .. Ik zou het opdelen in stukken van max. 50 mails per 30 sec. om de 30 sec stuurt php zich gewoon iets verder met een cookie (cookie=cookie+50 en daar selecteer je verder in.) Als de gebruiker dan het schermpje weg klikt kan hij eventueel nog op een later tijdstip door ook ;).
Offline finduilas - 04/02/2009 12:54
Avatar van finduilas PHP gevorderde Dat met die cookie snap ik niet helemaal...
Offline marten - 04/02/2009 13:25
Avatar van marten Beheerder Martijn ik heb het beide getest. Als je 10 x een request maakt naar de server om 1000 mails te doen of je maakt 1x een request. Bij onze servers is het eerste sneller.
Offline finduilas - 04/02/2009 14:54
Avatar van finduilas PHP gevorderde Moet ik dan script execution time aanpassen in php.ini?? Of hoe zit dat ...
Offline marten - 04/02/2009 15:40
Avatar van marten Beheerder Ja je script is iets langer bezig met de for-loop (6000 nieuwsbrieven duurt hier ong 15 seconden) maar het is afhankelijk van je server capaciteit.
Offline Martijn - 04/02/2009 15:41
Avatar van Martijn Crew PHP je kunt met een while/for looptje alle mailadressen als bcc doen, dan hoe je maar 1x de for aan te roepen. En het stuurt in 1x.
Offline Tuinstoel - 04/02/2009 15:47
Avatar van Tuinstoel PHP expert Ik heb het ook ooit eens gedaan voor een ledenbestand van 5000+. Ik vroeg gewoon per query 50 à 100 adressen op en liet de pagina gewoon refreshen net zo lang totdat ik alle 5000 leden gehad had. Dus met behulp van wat berekeningen, forlusje en LIMIT start, limiet kan dat wel. Tot slot nog refresh html code om, om de 30 sec. weer mails de deur uit te doen om de server niet over te belasten.
Offline Martijn - 04/02/2009 15:50
Avatar van Martijn Crew PHP daar kun je toch ook gewoon sleep(30) voor doen?
Offline Tuinstoel - 04/02/2009 15:53
Avatar van Tuinstoel PHP expert Dat zou kunnen maar dan bestaat denk ik het gevaar dat je een maximum execution time overschrijdt?
Offline MothZone - 04/02/2009 16:01
Avatar van MothZone PHP ver gevorderde Bij mijn nieuwsbrief haal ik alle email-adressen op uit de database, zet ze in een array, en zet ze dan via implode in een bcc.
1x de mail()-functie dan.
Offline Tuinstoel - 04/02/2009 16:14
Avatar van Tuinstoel PHP expert
MothZone schreef:
Bij mijn nieuwsbrief haal ik alle email-adressen op uit de database, zet ze in een array, en zet ze dan via implode in een bcc.
1x de mail()-functie dan.
Dan krijg je wel alle e-mailadressen beschikbaar voor derden, ik weet niet of dat wel zo gewenst is...
Offline Martijn - 04/02/2009 16:44
Avatar van Martijn Crew PHP ook met bcc?
Offline vinTage - 04/02/2009 16:49
Avatar van vinTage Nieuw lid Je kan gebruik maken van phpmailer, daarin zit eoa stukje waarmee je niet via mail() verstuurd, maar (het technische gedeelte weet ik niet) smtp, dit opent maar één keer een "connectie" ipv voor elke mail.
Offline marten - 04/02/2009 16:53
Avatar van marten Beheerder Je kan inderdaad gebruik maken van je smtp server. Maar dit hoeft niet persé met phpmailer hoor 
Offline MothZone - 04/02/2009 17:09
Avatar van MothZone PHP ver gevorderde
Tuinstoel schreef:
[..quote..]Dan krijg je wel alle e-mailadressen beschikbaar voor derden, ik weet niet of dat wel zo gewenst is...

bcc, blind carbon copy 
Offline finduilas - 04/02/2009 17:34
Avatar van finduilas PHP gevorderde Ik heb het net getest op de manier met BCC en het ging soepel...
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.213s