[PHP] mail() en delay()

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik wil aan alle leden (400) van de vereniging een mail kunnen sturen met de mail() functie van php. Mijn ISP raadt mij aan de 400 mails op te delen in batches van 50 en deze met tussenpozen van 5 minuten te versturen.
Nu zit ik er aan te denken om een script te maken met een delay(300); functie, maar dan zou ik 8 x 5 minuten bezig zijn om de mail de deur uit te doen. Helaas heeft mijn account geen cronjob functie, anders was dat een goede oplossing geweest...

Zijn er mensen die een betere oplossing weten?

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

maar dan zou ik 8 x 5 minuten bezig zijn om de mail de deur uit te doen
met een cronjob ben je dat toch evenwel wel? Ik zie het probleem niet helemaal... kwestie van je scriptje aanroepen en er verder niet meer naar omkijken (niet vergeten je script-run-tijd aan te passen met set_time_limit (), aangezien die standaard vaak slechts 30 seconden is)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Als ik op de server een cronjob instel die het script aanroept, zou ik mijn eigen pc toch uit kunnen doen? Of zie ik dat verkeerd?

Acties:
  • 0 Henk 'm!

  • Falcon
  • Registratie: Februari 2000
  • Laatst online: 18-09 20:01

Falcon

DevOps/Q.A. Engineer

Waarom stuur je die mails niet via 5 verschillende SMTP's? Zo verstuurd je ze toch en verdeel je de opdrachten!

Met een e-mail maakt het niet uit via welke smtp je het verstuurd.

[ Voor 26% gewijzigd door Falcon op 25-02-2004 19:16 ]

"We never grow up. We just learn how to act in public" - "Dyslexie is a bitch"


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

Oh zo. Is dat bij een aanroep van een php script ook niet zo dan? Of wordt ie automatisch afgebroken als de andere kant de verbinding sluit (lijkt me nogal evil als dat gebeurt trouwens, want dan kun je dus nooit dingen netjes opruimen achteraf).

Desnoods spawn je een child proces vanuit php en geef je meteen door aan de gebruiker (aan jou dus in feite) dat de opdracht wordt verwerkt

[ Voor 23% gewijzigd door .oisyn op 25-02-2004 19:17 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Het lijkt mij, dat wanneer je het script afsluit, terwijl ie midden in een delay(300) zit, dat ie dan de rest van het script niet meer uit zal voeren. Maar dat weet ik niet zeker, zal het eens proberen.

@The Real Falcon: SMTP server definieer je in je php.ini, en daar laat mijn provider me niet bij lijkt me.

[ Voor 22% gewijzigd door Verwijderd op 25-02-2004 19:31 ]


Acties:
  • 0 Henk 'm!

  • FailFr8er
  • Registratie: Juli 2001
  • Laatst online: 20-09 14:25
't zal wel een domme opmerking zijn.
Maar als je SSH login hebt, kan je toch in principe een soortgelijk command uitvoeren als

code:
1
php <scriptfile.php> & nohup

oid?
Soortgelijk idee, dan blijft ie toch ook draaien als je je SSH connectie dichtgooid?

Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Red Nalie schreef op 25 februari 2004 @ 20:39:
't zal wel een domme opmerking zijn.
Maar als je SSH login hebt, kan je toch in principe een soortgelijk command uitvoeren als

code:
1
php <scriptfile.php> & nohup

oid?
Soortgelijk idee, dan blijft ie toch ook draaien als je je SSH connectie dichtgooid?
Ik neem aan dat hij geen shell logon heeft; maar jouw oplossing duurt toch net zolang als met een browser :)

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18-09 16:28

Bosmonster

*zucht*

Ik snap het probleem niet van maar 400 mailtjes.. als het er nou 4000 waren, maar 400 is zo verstuurd en zou een beetje mailserver echt GEEN problemen mee moeten hebben.

Mocht je het toch in batches willen doen kun je vrij eenvoudig met wat javascript je scherm elke keer verversen en zo een volgende batch versturen. Die javascript refresh kun je een timer geven van 5 minuten.

Acties:
  • 0 Henk 'm!

  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 25-09-2023
In php kan je (runtime) uitzetten dat het script niet afgebroken mag worden als de webgebruiker de verbinding verbreekt. Ik dacht iets als SetUserAbort, maar ik weet 't niet uit m'n hoofd. Zorg er dan wel voor dat je je scriptje goed uittest, want als je 'm eenmaal runt dan kan je 'm alleen voortijdig stoppen door webserver te herstarten (als php als interne module draait tenminste).

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb idd geen shell toegang. Mijn provider zegt dat het zelfs onmogelijk is om in één keer 400 mailtjes te versturen, dus ik ga ervan uit dat ze een max hebben ingesteld. Bij andere providers is dat vaak 150 per dag.

Acties:
  • 0 Henk 'm!

  • Metten
  • Registratie: September 1999
  • Laatst online: 20-09 17:31

Metten

ik hou het graag simpel

The Real Falcon schreef op 25 februari 2004 @ 19:15:
Waarom stuur je die mails niet via 5 verschillende SMTP's? Zo verstuurd je ze toch en verdeel je de opdrachten!

Met een e-mail maakt het niet uit via welke smtp je het verstuurd.
En hoe wilde je aan 5 verschillende SMTP servers komen? SMTP servers zijn vrijwel altijd alleen vanaf het eigen netwerk te benaderen (dit ivm spam natuurlijk).

Mocht je er trouwens verder niet uitkomen dan kan je gewoon geautomatiseerd steeds 50 mails versturen en dmv van een dynamische meta refresh (na een bepaald aantal seconden naar een bepaalde URL gaan) die pagina's scheiden.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dat lijkt me idd de beste oplossing... Ga ik proberen, thnx

Is er ook een verschil tussen 400 mailtjes met een uniek to: adres en één mail met 400 adressen in het bcc field?

[ Voor 50% gewijzigd door Verwijderd op 25-02-2004 21:38 ]


Acties:
  • 0 Henk 'm!

  • Falcon
  • Registratie: Februari 2000
  • Laatst online: 18-09 20:01

Falcon

DevOps/Q.A. Engineer

Metten schreef op 25 februari 2004 @ 21:14:
[...]


En hoe wilde je aan 5 verschillende SMTP servers komen? SMTP servers zijn vrijwel altijd alleen vanaf het eigen netwerk te benaderen (dit ivm spam natuurlijk).

Mocht je er trouwens verder niet uitkomen dan kan je gewoon geautomatiseerd steeds 50 mails versturen en dmv van een dynamische meta refresh (na een bepaald aantal seconden naar een bepaalde URL gaan) die pagina's scheiden.
Je zou voor de gein es moeten rond kijken of dit echt zo is. Serieus er zijn veel smtp servers die je via andere internetverbindingen kunt benaderen. Deze lijst ga ik hier niet plaatsen.

"We never grow up. We just learn how to act in public" - "Dyslexie is a bitch"


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ook al zou dit zo zijn, dan nog kun je volgens mij met de mail() functie niet specificeren welke smtp server je wilt gebruiken. Dat staat nl. in je php.ini.

Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Verwijderd schreef op 25 februari 2004 @ 21:27:
Dat lijkt me idd de beste oplossing... Ga ik proberen, thnx

Is er ook een verschil tussen 400 mailtjes met een uniek to: adres en één mail met 400 adressen in het bcc field?
Nope. 400 mailtjes zijn 400 mailtjes :)
Verwijderd schreef op 25 februari 2004 @ 21:54:
Ook al zou dit zo zijn, dan nog kun je volgens mij met de mail() functie niet specificeren welke smtp server je wilt gebruiken. Dat staat nl. in je php.ini.
Je kunt gebruik maken van een redelijk eenvoudige functie :)

[ Voor 34% gewijzigd door Spider.007 op 25-02-2004 22:35 ]

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18-09 16:28

Bosmonster

*zucht*

Verwijderd schreef op 25 februari 2004 @ 21:14:
Ik heb idd geen shell toegang. Mijn provider zegt dat het zelfs onmogelijk is om in één keer 400 mailtjes te versturen, dus ik ga ervan uit dat ze een max hebben ingesteld. Bij andere providers is dat vaak 150 per dag.
Misschien bij providers van bij je internetverbinding ofzo die niet willen dat je gaat spammen. Normale hosting-providers hebben wel een max ingesteld meestal, maar dat ligt per sessie en meestal op een paar honderd.

Simpel per script er dus bijvoorbeeld een stuk of 10 versturen zou geen problemen op moeten leveren (dat zijn er 10 per sessie). Laat het script zichzelf aanroepen met een offset oid en je verstuurt ze batches van 10.

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 02:21

Janoz

Moderator Devschuur®

!litemod

Verwijderd schreef op 25 februari 2004 @ 21:27:
Dat lijkt me idd de beste oplossing... Ga ik proberen, thnx

Is er ook een verschil tussen 400 mailtjes met een uniek to: adres en één mail met 400 adressen in het bcc field?
Ja. Het tweede is bij het versturen slechts 1 mailtje. In principe is dat de normale manier voor het versturen van een mail aan een groep menssen. Het nadeel is dat veel spamfilters de mail weigeren omdat het adres van de ontvanger niet in de to lijst staat. Bij hotmail komt het mailtje iig in de junkmail folder terecht.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Janoz schreef op 26 februari 2004 @ 10:17:
[...]


Ja. Het tweede is bij het versturen slechts 1 mailtje. In principe is dat de normale manier voor het versturen van een mail aan een groep menssen. Het nadeel is dat veel spamfilters de mail weigeren omdat het adres van de ontvanger niet in de to lijst staat. Bij hotmail komt het mailtje iig in de junkmail folder terecht.
Ik denk eigenlijk dat het aan de manier van filteren door de mailserver ligt. Ik zou zelf het aantal afzenders een logischer getal vinden om te controleren dan het aantal mailtjes :)

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Verwijderd

Topicstarter
Janoz schreef op 26 februari 2004 @ 10:17:
[...]
Het nadeel is dat veel spamfilters de mail weigeren omdat het adres van de ontvanger niet in de to lijst staat. Bij hotmail komt het mailtje iig in de junkmail folder terecht.
Heb al een andere oplossing. Op mijn eigen hosting account(je) kan ik 500 mails per uur versturen. En gezien de bovenstaande opmerking lijkt het met beter 400 keer een mail te versturen waarbij de ontvanger ook daadwerkelijk in het TO: veld staat.

Bedankt voor alle suggesties, ik ben weer een stuk wijzer geworden ;)
Pagina: 1