PHP Mailer en uitvoeringstijd van het script vergroten, maar hoe?
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;
}
}
?>
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?
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.
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?"
Daar kan geen antwoord op gegeven worden, want je verteld niet over welke root je het hebt.