PHP Mailer en uitvoeringstijd van het script vergroten, maar hoe?
Vanuit de site die ik onder beheer heb, worden regelmatig aanstaande evenementen bij de persbureaus in de regio onder de aandacht gebracht. Dit is altijd informatie over het evenement vergezeld van afbeeldingen. Thans hebben we in de databank zo'n 75 persagentschappen staan.
Het probleem is echter dat bij het verzenden ergens halverwege de verzending wordt gestopt, waarschijnlijk omdat het script voortijdig wordt beëindigd als gevolg van tijdnood e/o te grote afbeeldingen als bijlage.
Nu heb ik op http://phpmailer.worxware.com/index.php?pg=tips een tweetal scripts gevonden hoe ik daar verandering in kan brengen, maar ....... waar moet ik die plaatsen, ergens in PHP Mailer of in het uit te voeren "Verzenden.php bestand en dan voor, na of tussen scriptgedeelte van PHP Mailer?
De link staat op:http://phpmailer.worxware.com/index.php?pg=tips
De code is als volgt:
Het probleem is echter dat bij het verzenden ergens halverwege de verzending wordt gestopt, waarschijnlijk omdat het script voortijdig wordt beëindigd als gevolg van tijdnood e/o te grote afbeeldingen als bijlage.
Nu heb ik op http://phpmailer.worxware.com/index.php?pg=tips een tweetal scripts gevonden hoe ik daar verandering in kan brengen, maar ....... waar moet ik die plaatsen, ergens in PHP Mailer of in het uit te voeren "Verzenden.php bestand en dan voor, na of tussen scriptgedeelte van PHP Mailer?
De link staat op:http://phpmailer.worxware.com/index.php?pg=tips
De code is als volgt:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?php //EERSTE SCRIPT: Vergroot uitvoeringstijd van je script
/* The following code snippet with set the maximum execution time
* of your script to 300 seconds (5 minutes)
* Note: set_time_limit() does not work with safe_mode enabled
*/
$safeMode = ( @ini_get("safe_mode") == 'On' || @ini_get("safe_mode") === 1 ) ? TRUE : FALSE;
if ( $safeMode === FALSE ) {
set_time_limit(300); // Sets maximum execution time to 5 minutes (300 seconds)
// ini_set("max_execution_time", "300"); // this does the same as "set_time_limit(300)"
}
echo "max_execution_time " . ini_get('max_execution_time') . "<br>";
/* if you are using a loop to execute your mailing list (example: from a database),
* put the command in the loop
*/
while (1==1) {
set_time_limit(30); // sets (or resets) maximum execution time to 30 seconds)
// .... put code to process in here
if (1!=1) {
break;
}
}
?>
<?php //TWEEDE SCRIPT: Pauzeren van het script Execution
/* Note: set_time_limit() does not work with safe_mode enabled */
while (1==1) {
set_time_limit(30); // sets (or resets) maximum execution time to 30 seconds)
// .... put code to process in here
usleep(1000000); // sleep for 1 million micro seconds - will not work with Windows servers / PHP4
// sleep(1); // sleep for 1 seconds (use with Windows servers / PHP4
if (1!=1) {
break;
}
}
?>
/* The following code snippet with set the maximum execution time
* of your script to 300 seconds (5 minutes)
* Note: set_time_limit() does not work with safe_mode enabled
*/
$safeMode = ( @ini_get("safe_mode") == 'On' || @ini_get("safe_mode") === 1 ) ? TRUE : FALSE;
if ( $safeMode === FALSE ) {
set_time_limit(300); // Sets maximum execution time to 5 minutes (300 seconds)
// ini_set("max_execution_time", "300"); // this does the same as "set_time_limit(300)"
}
echo "max_execution_time " . ini_get('max_execution_time') . "<br>";
/* if you are using a loop to execute your mailing list (example: from a database),
* put the command in the loop
*/
while (1==1) {
set_time_limit(30); // sets (or resets) maximum execution time to 30 seconds)
// .... put code to process in here
if (1!=1) {
break;
}
}
?>
<?php //TWEEDE SCRIPT: Pauzeren van het script Execution
/* Note: set_time_limit() does not work with safe_mode enabled */
while (1==1) {
set_time_limit(30); // sets (or resets) maximum execution time to 30 seconds)
// .... put code to process in here
usleep(1000000); // sleep for 1 million micro seconds - will not work with Windows servers / PHP4
// sleep(1); // sleep for 1 seconds (use with Windows servers / PHP4
if (1!=1) {
break;
}
}
?>
Je moet niet tornen aan de default waarde van 30 seconden!!
set_time_limit is leuk, maar pas je in principe niet toe in scripts tenzij je oneindig je webserver wilt belasten.
Mijn aanpak zal zijn:
1. maak e-mail bericht aan
2. uitzoeken naar wie je het verstuurd wilt hebben
3. sla relevante info op in 1 tabel
4. op moment x kan een cronjob de klaargezette berichten versturen
Dus in mijn ogen kan je het geen je gevonden hebt linia directa de prullenbak in mikken!!
set_time_limit is leuk, maar pas je in principe niet toe in scripts tenzij je oneindig je webserver wilt belasten.
Mijn aanpak zal zijn:
1. maak e-mail bericht aan
2. uitzoeken naar wie je het verstuurd wilt hebben
3. sla relevante info op in 1 tabel
4. op moment x kan een cronjob de klaargezette berichten versturen
Dus in mijn ogen kan je het geen je gevonden hebt linia directa de prullenbak in mikken!!
Prullenbak zou kunnen natuurlijk, maar Cronjob die kennis ontbeer ik helaas nog. Worden daarbij dan wel tekstinfo + afbeeldingen uit de databank gehaald en verzonden aan alle adressen zoals die in de databank staan?
"maar Cronjob die kennis ontbeer ik helaas nog."
Bij google of andere zoekemachine het volgende intikken:
php cron
"Worden daarbij dan wel tekstinfo + afbeeldingen uit de databank gehaald en verzonden aan alle adressen zoals die in de databank staan?"
Hoogst waarschijnlijk wel, maar het kan uiteraard zijn dat je gebonden bent aan een max mb wat je in 1 bericht kan versturen.
Bij google of andere zoekemachine het volgende intikken:
php cron
"Worden daarbij dan wel tekstinfo + afbeeldingen uit de databank gehaald en verzonden aan alle adressen zoals die in de databank staan?"
Hoogst waarschijnlijk wel, maar het kan uiteraard zijn dat je gebonden bent aan een max mb wat je in 1 bericht kan versturen.
Uiteindelijk is de vraag aan het begin niet beantwoord, of het nu handig is of niet om de "set_time_limit" aan te passen of niet.
De vraag blijft dus staan: Waar in de ROOT of waarin sla je dit bestand ergens op?
De vraag blijft dus staan: Waar in de ROOT of waarin sla je dit bestand ergens op?
Je vraag is wel beantwoord, alleen weet jij het niet te vertalen naar een "plan van aanpak" - lees `hoe logisch het te coderen` -
"De vraag blijft dus staan: Waar in de ROOT of waarin sla je dit bestand ergens op?"
Daar kan geen antwoord op gegeven worden, want je verteld niet over welke root je het hebt.
"De vraag blijft dus staan: Waar in de ROOT of waarin sla je dit bestand ergens op?"
Daar kan geen antwoord op gegeven worden, want je verteld niet over welke root je het hebt.




