Gå til innhold

Sende nyhetsbrev med php, dårlig kontroll


Anbefalte innlegg

Jeg har noen tanker om hvordan dette kan løses, men har lyst til å høre hva andre tenker.

 

Har laget et nyhetsbrev som sendes ut til noen hundre personer hver uke. Problemet er at etter nyhetsbrevet har blitt sendt ut skal man havne på en ny side som forteller hvilke adresser som ikke mottok nyhetsbrevet. På grunn av serveren, så hender det at scriptet stopper før den kommer så langt som å sende meg til den siden som forteller hvordan det har gått. Det vil si at jeg ikke vet hvem som har gått glipp av nyhetsbrevet.

 

I dag er scriptet bygd opp rundt en while-løkke rundt oppføringer i mysql-tabell, og det sendes ett og ett brev. Denne løsningen er ikke optimal, for den innebærer at hele scriptet må bli ferdig før jeg får vite status.

 

Jeg har noen tanker rundt dette, men lurer på hvordan dere har løst det? Den optimale løsningen for meg innebærer kapasitet til flere tusen mailutsendelser.

 

 

:)

Lenke til kommentar
Videoannonse
Annonse

Hvis scriptet stopper pga execution time, så vil det nødig hjelpe på hastigheten å lage en oppføring i en database for hver mail som blir sendt... Tenker på å lage en sak som tar for seg epostadresser på a, b, c osv, og mellom hver gang man skifter bokstav. Scriptet vil da henvise til et nytt som tar neste bokstav... Men dette er tungvint, lurer på om jeg har lyst til å se utenfor phps muligheter, uten at jeg har lyst til å gi slipp på at dette er en oppgave php godt mulig kan løse. For jeg kan godt tenke meg et script som ikke "timer ut" :) (...og som jeg slipper å åpne nettleseren for å utføre)

Endret av fjartan
Lenke til kommentar

Slå av max execution time og bruk cronjob til å automatisere oppgaven. Jeg ville også lagret epostadressene til de som ikke kunne sendes til. Slik slipper du å sende "bommerter" neste gang også. Om du ønsker et system som finner ut hvilke epostadresser som scriptet ikke fikk sendt mail til, før en evt. feilmelding som avslutter scriptet, må du på en eller annen måte konstant skrive til en database.

Lenke til kommentar
Den optimale løsningen for meg innebærer kapasitet til flere tusen mailutsendelser.

 

Høres ut som spam for meg, så jeg vet ikke hvor keen jeg er på hjelpe deg men..

 

Hvis du fortsatt har problemer med timeout, selv etter at man har slått av max execution time som som Ripz- foreslår, så ville jeg ha gjort det slik at man lagret den siste e-posten man sendte ut i en tabell eller flatfil. Så ville jeg ha programmert skriptet til å starte fra den siste e-posten adressen, hvis den ikke fullførte hele listen fra forrige gang skriptet ble kjørt.

Lenke til kommentar
Slå av max execution time og bruk cronjob til å automatisere oppgaven. Jeg ville også lagret epostadressene til de som ikke kunne sendes til. Slik slipper du å sende "bommerter" neste gang også. Om du ønsker et system som finner ut hvilke epostadresser som scriptet ikke fikk sendt mail til, før en evt. feilmelding som avslutter scriptet, må du på en eller annen måte konstant skrive til en database.

set_time_limit(0);

først i scriptet, sammen med kjøring av php-interpreteren fra crontab høres ut som en måte å gjøre dette på, ja.

 

En annen ide, om du ikke trenger flette inn data i mailen som sendes ut, kan være å sortere på mailserverne og sette opp flere mottagere i bcc-feltet i stedet for å sende en og en mail. Vil gjøre jobben _veldig_ mye enklere for isp'en.

Lenke til kommentar
Høres ut som spam for meg, så jeg vet ikke hvor keen jeg er på hjelpe deg men..

:hmm:

 

Vi lever i et kritisk samfunn, og det er kanskje vel og bra, men jeg lever med store ambisjoner :thumbup:

 

En annen ide, om du ikke trenger flette inn data i mailen som sendes ut, kan være å sortere på mailserverne og sette opp flere mottagere i bcc-feltet i stedet for å sende en og en mail. Vil gjøre jobben _veldig_ mye enklere for isp'en.

 

Det er absolutt en ide.

 

edit: fant en gammel post hvis noen synes det er kjempespennende å lese om prosjektet mitt med å sende ut mail :innocent:

Endret av fjartan
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...