我将使用社交网络软件 Elgg,用于需要在需要时向特定组发送大量电子邮件的组织。电子邮件的数量可以在 10-1000 之间,具体取决于组。Web 主机每小时仅允许 500 封电子邮件,因此我需要限制脚本以每 8 秒发送一封电子邮件。
我正在将 PHPmailer 与 Elgg 一起使用。PHPmailer 说我应该结合使用这两个脚本(下面的代码)来限制邮件发送。我知道我将如何使用邮件脚本中的代码,我只是不确定一些事情。
1)我不太了解安全模式的目的
2) 在查找 set_time_limit 之后,看起来我应该将其设置为允许发送所有潜在电子邮件的时间量,无论是 10 还是 1000?或者如果需要超时,每个循环最多 30 秒?
3)我应该如何设置它以获得我需要的东西?
链接到 PHPmailer 描述代码:
http://phpmailer.worxware.com/index.php?pg=tip_ext
http://phpmailer.worxware.com/index.php?pg=tip_pause
<?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>";
/* 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
/* 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;
}
}
?>