[PHP] massa mail versturen via php->exec command

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • PainkillA
  • Registratie: Augustus 2004
  • Laatst online: 26-08 19:26
Stel ik heb een php script welke via een exec command een ander php bestand uitvoert dewelke grote hoeveelheden mail verstuurd ( 5000 ofzo ). Dit is om de timeout te voorkomen en omdat de gebruiker anders 5 minuten naar zijn browserscherm moet zitten kijken en vooral niet op stop drukken.

Nu is het probleem dat ik in die exec php bestand bepaalde userid's nodig hebt die ik normaal gesproken via de SESSION, GET of POST aangeleverd krijg. Nu is dit niet mogelijk via commandline en kunnen de mails niet verstuurd worden naar de juiste contactpersonen.

Iemand een oplossing hiervoor?

Acties:
  • 0 Henk 'm!

  • igmar
  • Registratie: April 2000
  • Laatst online: 03-09 22:58

igmar

ISO20022

en waarom zou je geen commandline argumenten kunnen gebruiken ?

Acties:
  • 0 Henk 'm!

  • PainkillA
  • Registratie: Augustus 2004
  • Laatst online: 26-08 19:26
dus ik heb de volgende code:

code:
1
2
$string = '/usr/bin/php -f /var/www/vhosts/PATNAARWEBMAP/httpdocs/inc/execmail.php'; 
exec($string) or trigger_error("Fout tijdens versturen mail");


en ik wil een $_POST['userid'] meegeven. je kan het dan niet zo doen want GET werkt niet via commandline uitvoering alleen browser.

code:
1
2
$string = '/usr/bin/php -f /var/www/vhosts/PATNAARWEBMAP/httpdocs/inc/execmail.php?userid='.$_POST['userid'].''; 
exec($string) or trigger_error("Fout tijdens versturen mail");


welke argumenten bedoel je dan en zo ja hoe deze dan in dat php bestand ( execmail.php )te kunnen gebruiken?

Acties:
  • 0 Henk 'm!

  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

PHP kan perfect command line argumenten verwerken (pear is denk ik toch wel de bekendste cli php script) en de pear repository bevat zelfs een Console_getopt class welke dat zelfs voor je afhandeld.

Wil je de gegevens niet via command line parameters doorgeven, kan kun je natuurlijk ook deze gegevens naar een tabel schrijven, het auto id afvangen en dit id doorgeven aan je script. Je script maakt dan verbinding met je database en haalt dan alsnog zelf de gegevens op..

Oplossing genoeg zou ik zeggen. Een beetje creativiteit kan geen kwaad voor een programmeur.

If it isn't broken, fix it until it is..


Acties:
  • 0 Henk 'm!

  • disjfa
  • Registratie: April 2001
  • Laatst online: 03-07 14:47

disjfa

be

Check dan minimaal eerst wat voor variabele je hebt als je op de command line php aanroept ;) Mischien kan je argumenten in een argv van een $_SERVER stoppen :)

Maar dan nog, waarom commandline :?

disjfa - disj·fa (meneer)
disjfa.nl


Acties:
  • 0 Henk 'm!

  • elTigro
  • Registratie: November 2000
  • Laatst online: 04-05 13:01

elTigro

Es un Gringo!

Om niet over de commandline te beginnen:

Kun je niet gewoon 1 mailtje sturen naar een distributielijst? dan hoef je geen lastige constructies met subscripts e.d. te gebruiken.

Dit wordt natuurlijk wel lastig als de mensen waaraan gemaild moet worden een willekeurige reeks lieden zijn :)

[ Voor 47% gewijzigd door elTigro op 25-03-2008 16:12 ]

Lazlo's Chinese Relativity Axiom:No matter how great your triumphs or how tragic your defeats --approximately one billion Chinese couldn't care less.


Acties:
  • 0 Henk 'm!

  • PainkillA
  • Registratie: Augustus 2004
  • Laatst online: 26-08 19:26
disjfa schreef op dinsdag 25 maart 2008 @ 16:08:
Check dan minimaal eerst wat voor variabele je hebt als je op de command line php aanroept ;) Mischien kan je argumenten in een argv van een $_SERVER stoppen :)

Maar dan nog, waarom commandline :?
via $_SERVER werkt niet. Werkt wel als ik exec bestand include nadat ik $_SERVER vars hebt aangemaakt. via command line is deze leeg.

Pear is hier op werk niet geinstalleerd
En commandline is nodig omdat als je via je browser 5000 mail gaat versturen ( wel via smtp mail class) dit ong 10 minuten duurt op zijn minst en dit is voor de gebruiker niet acceptabel.

distributielijst is denk erg lastig. Dit omdat de gebruiker zelf contactpersonen in groepen kan verdelen en naar deze groepen moet een mail verstuurd worden.

[ Voor 10% gewijzigd door PainkillA op 25-03-2008 16:36 ]


Acties:
  • 0 Henk 'm!

  • wackmaniac
  • Registratie: Februari 2004
  • Laatst online: 19-09 18:02
Misschien een idee om een tabel te maken die een mail-wachtlijst voorstelt. Dan elke zoveel tijd een script aanroepen die de eerstvolgende x aantal mails verstuurd. Dat helpt ook bij het voorkomen dat je op een spamlijst terecht komt.

Read the code, write the code, be the code!


Acties:
  • 0 Henk 'm!

  • giveupthejoost
  • Registratie: Maart 2006
  • Laatst online: 21-03-2016
Om maar even in te haken op wackmaniac:

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

Kijk daar eens naar; Is ook een stuk minder belastend voor je server.

[ Voor 0% gewijzigd door giveupthejoost op 25-03-2008 16:43 . Reden: (ow, ik lees net dat je geen PEAR hebt) :) ]


Acties:
  • 0 Henk 'm!

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

Bosmonster

*zucht*

Hier zijn al prima pear packages voor overigens:

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

edit: lol

[ Voor 6% gewijzigd door Bosmonster op 25-03-2008 16:43 ]


Acties:
  • 0 Henk 'm!

  • PainkillA
  • Registratie: Augustus 2004
  • Laatst online: 26-08 19:26
ik ga even pear checken morgen tnx
Pagina: 1