Avatar billede styrk Nybegynder
05. marts 2004 - 17:01 Der er 8 kommentarer og
1 løsning

75000 Emails skal sendes.

Hej.

Jeg har fået til opgave at lave et script der kan sende ca. 75000 emails ud som nyhedsbrev.

Scriptet er jo nemt nok at lave - men jeg tænkte på om det ikke ville overbelaste email-serveren en del.

Derfor har jeg tænkt på at bruge funktionen sleep(); og lade serveren hvile i 1 minut for hver 1000 mail - er det en god måde at gøre det?

Har du en mere smart eller nem måde så skriv den her, og du vil modtage de gyldne points!

//Rasmus
Avatar billede Slettet bruger
05. marts 2004 - 19:21 #1
tja hvorfor ikke bare while med sleep på 2 sek ved hver mail

hvis det skal være ved hver 1000 så bare en $i+ og et kriterie at den skal sleep hvis $i % 1000 returnere noget

som du nok kan se har jeg ikke umiddelbart den store viden om belasting det vil generere..

hvis jeg må tillade mig at spørge?  75000 mails.. det lyder lidt spam agtigt :D
Avatar billede Slettet bruger
05. marts 2004 - 20:47 #2
1: Brug sockets til at sende da mail() opretter en ny forbindelse til serveren hver gang.

2: Mail serveren burde være i stand til at undgå at overbelaste sig selv.
Avatar billede Slettet bruger
05. marts 2004 - 20:53 #3
faktisk tror jeg ikke han mente mail server, men mere mail funktionen i php. helt klart en bedre løsning med sockets dog..
Avatar billede tipsen Nybegynder
05. marts 2004 - 21:27 #4
pseudokode:

sæt x = antal emails pr. "runde"
etabler forbindelse til smtp-server
hent de næste x emailadresser der endnu ikke har fået tilsendt nyhedsbrev
loop over de x emailadresser
  tilføj/send email til aktuel modtager
slutloop
send og luk forbindelsen til smtpserver
hvis alt er gået godt markeres de x modtagere, så de ikke modtager flere eksemplarer af samme nyhedsbrev

Scriptet kan så kaldes af et cronjob indtil der ikke længere skal sendes flere mails eller evt. kan man bruge et headerkald (header("Location: url");) til at kalde scriptet igen og dermed undgå "30-sekundsproblemet" samtidig med at man kan bruge sleep for at mindske evt. belastning på mail- og webserver.

Det vil desuden være smart, at føre en log, så man kan undersøge evt. fejl!

Mvh Tipsen
Avatar billede tipsen Nybegynder
05. marts 2004 - 21:28 #5
Hej igen

Jeg er jo PEAR fanatiker, så jeg skal jo lige anbefale:

http://pear.php.net/package/Mail
http://pear.php.net/package/Mail_Queue

Mvh Tipsen
Avatar billede styrk Nybegynder
07. marts 2004 - 16:55 #6
hmm.. problemet er egentlig at php timer out.. kan det fikses?
Avatar billede tipsen Nybegynder
07. marts 2004 - 18:18 #7
det er ikke et problem med den metode jeg beskriver...
Avatar billede styrk Nybegynder
07. marts 2004 - 22:07 #8
du kan lige lave et svar tips, så for du nogle points ;)
Avatar billede tipsen Nybegynder
07. marts 2004 - 23:13 #9
´
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

IT-JOB

Capgemini Danmark A/S

AI/Data Engineer

Udlændinge- og Integrationsministeriet

Full Stack Udvikler til Koncern IT i Udlændingestyrelsen

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Cyberdivisionen søger IT-supporter til lokal IT Korsør

HusCompagniet A/S

Senior data engineer

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Teknisk Projektleder til Forsvarets data- og AI-projekter