Hey,
Op de website van PHPMailer (http://phpmailer.codeworxtech.com/index.php?pg=tip_pause) is te vinden dat webservers vaak een maximum aantal e-mails kunnen versturen binnen 1 minuut. Is dit te controleren op een externe webserver?
Nu is er ook een script te vinden die dit probleem tracht op te lossen door het gebruik van usleep(). Zie onderstaand voorbeeld:
In bovenstaande code staat wel waar ik het script moet neerzetten, maar ik neem aan dat niet het gehele script while loop moet komen te staan, of wel?
Nu heb ik op dit moment onderstaand scriptgedeelte (van PHPMailer in gebruik). Hoe kan ik bovenstaande code integreren in mijn bestaande php script?
Ik kan namelijk de code niet al te vaak testen, aangezien dan elke keer een e-mail wordt gestuurd naar de gehele mailinglist. Dus vandaar deze vraag.
Op de website van PHPMailer (http://phpmailer.codeworxtech.com/index.php?pg=tip_pause) is te vinden dat webservers vaak een maximum aantal e-mails kunnen versturen binnen 1 minuut. Is dit te controleren op een externe webserver?
Nu is er ook een script te vinden die dit probleem tracht op te lossen door het gebruik van usleep(). Zie onderstaand voorbeeld:
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
| <?php /* 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>"; while (1==1) { set_time_limit(30); // sets (or resets) maximum execution time to 30 seconds) // .... put code to process in here usleep(1000000); if (1!=1) { break; } } ?> |
In bovenstaande code staat wel waar ik het script moet neerzetten, maar ik neem aan dat niet het gehele script while loop moet komen te staan, of wel?
Nu heb ik op dit moment onderstaand scriptgedeelte (van PHPMailer in gebruik). Hoe kan ik bovenstaande code integreren in mijn bestaande php script?
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| $mail = new PHPMailer(); $mail->From = $emailreactie; $mail->FromName = "Naam"; $mail->IsSMTP(); $mail->Host = "mail.naam.nl"; $mail->Mailer = "smtp"; while ($row = mysql_fetch_array ($sql_mailing)) { if(!$mail->Send()) echo "Er is iets fout gegaan tijdens het versturen van de mailing (zie onderstaande gegevens).<br /><br />" . $mail->ErrorInfo . "<br>"; // Clear all addresses and attachments for next loop $mail->ClearAddresses(); $mail->ClearAttachments(); } } |
Ik kan namelijk de code niet al te vaak testen, aangezien dan elke keer een e-mail wordt gestuurd naar de gehele mailinglist. Dus vandaar deze vraag.
[ Voor 5% gewijzigd door radem205 op 18-10-2008 17:11 ]