PHP Mailer en uitvoeringstijd van het script vergroten, maar hoe?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Alexander Pushkin

Alexander Pushkin

10/09/2010 15:17:42
Quote Anchor link
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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;
  }
}

?>
 
PHP hulp

PHP hulp

25/04/2024 03:29:30
 
Noppes Homeland

Noppes Homeland

10/09/2010 15:38:09
Quote Anchor link
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!!
 
Alexander Pushkin

Alexander Pushkin

10/09/2010 15:49:14
Quote Anchor link
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?
 
Noppes Homeland

Noppes Homeland

10/09/2010 16:26:07
Quote Anchor link
"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.
 
Alexander Pushkin

Alexander Pushkin

11/09/2010 13:45:26
Quote Anchor link
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?
 
Noppes Homeland

Noppes Homeland

11/09/2010 14:24:45
Quote Anchor link
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.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.