Hallo,

Ik kan maximaal 350 mailtjes per uur versturen.
Nu verstuur ik met de nieuwsbrief ongeveer 2000 mailtjes.


Hoe kan ik het beste een systeem maken via bijvoorbeeld cronjob dat ik elk uur maar 350 mails verstuur en het uur erna weer totdat alle leden een mail hebben.


Ik kan wel in de database met waardes van 1 t'm ... gaan werken ofzo en selecteren waar leden geen 1 hebben deze week ofzo, maar als ik zondag avond zo'n mail verstuur dan werkt het weer niet goed.
http://www.swiftmailer.org/wikidocs/v3/plugins/throttler

Of, de vaak betere methode, is in je database een kolom maken met een 0 of een 1. Een cronjob pakt 350 emailtjes waar een 0 achter staat, verstuurd ze en de succesvol verstuurde mailtjes zet je vervolgens op 1.

Alles klaar? Zet je alle emailtjes weer op 0 voor de volgende nieuwsbrief.
ok, maar de cronjob mag pas werken nadat ik geklikt heb dat de nieuwsbrief verstuurd mag worden.


als alles verstuurd is moet de cronjob weer worden uitgeschakeld (geen nieuwsbrief mag meer worden verstuurd tot ik weer opnieuw klik voor versturen)
Dan zet je alle emailtjes op 1. Dan word er ieder uur -niks- verzonden. Vervolgens hoef jij alleen maar een simpel scriptje te maken wat in 1 klap alle emailtjes op 0 zet. Of je wijzigt dat rechtstreeks in de database; UPDATE tabel SET verzonden = 0;
Koppeltabel:

1 met de nieuwbriefgegevens (evt. de hele inhoud van de nieuwsbrief in HTML, of anders een url naar een bestand met die code) en natuurlijk de datum
1 met de gebruikers gegevens

En dan een koppeltabel, waarin je de users plaatst nadat ze een bepaalde nieuwsbrief (-> userid:nieuwsbrief als kolommen, evt. nog een id, maar de combinatie userid:nieuwsbrief moet uniek zijn) hebben ontvangen.

De cronjob kan gewoon blijven draaien en zal alleen naar mensen die nog geen brief hebben gehad een brief sturen (als je het goed opbouwt, maar ik denk dat de strekking wel duidelijk is)
ok, dat is een goed idee.

Nog een vraagje; word de site daar niet langzaam van? ieder uur 300 mails versturen? (of liever iedere minuut 5 mails versturen?)


de site is nu al vrij traag
En als je in de het TO-adres je eigen adres maakt, en de adressen in de BCC?
Dan kan je toch gewoon 3000 adressen in zetten?
Iedere minuut 5 is wellicht sneller, maar je roept script wel 60x zo veel aan.
en wat is beter?

1 x 300

of

60 x 5 ?


Of maakt in totaal niet uit?

mij maakt het ook niet uit. ik hoef er toch niet bij te zijn.
Waarom maximaal 350? Een server wordt nog niet sloom met 100 mailtjes per seconde.

Ten minste, een beetje normale server met een goeie verbinding.

Edit: je server wordt er niet sneller van als je het gaat verdelen. Je server kan makkelijk 2000 mailtjes achter elkaar versturen.

En eventueel kun je in de cron nog argumenten meegeven en dus het in stappen verdelen: 2000 achter elkaar duurt langer dan 10 x 200. Dus je kunt als je het snel wilt versturen beter meerdere crons aanmaken op de zelfde tijd.
ok,
ik had dat hij meteen alle meeltjes verstuurde, maar in de server is ingesteld dat hij max 350 mails per uur verstuurd. anders ziet hij het als spam werd mij verteld.

De beheerder wil het niet aanpassen want ik zit op een shared host en dat past hij het dus bij iedereen aan.

Als ik dat wel wil moet ik een dedicated server pakken.
Gaat dan de snelheid van de site ook erg omhoog?
En dat klopt hoor, bij een te groot aantal geeft die het vaak aan als spam. maar 350 per uur is dan weer niet waar.. Je moet ze niet allemaal tegelijk sturen, omdat het dan als spam wordt gezien.

Ik zou gaan voor een aantal per minuut, dan is het mooier verspreid. (en je kan daar in 1e instantie eens mee gaan testen, met de aantallen wat verhogen... )

Reageren