在每次迭代的foreach循环内重复php sleep方法

时间:2016-03-14 09:48:37

标签: javascript php

我必须向不同的客户发送大约1k封电子邮件以解决不同的问题。通常我会得到一个excel文件,其中包含发送电子邮件的所有必要信息。我有一个Web表单,我在其中插入票号,并检索发送邮件所需的信息(也在excel文件中提供)。问题是在表单中插入1k票号是一项耗费精力和耗时的工作。所以我复制了生成的链接以发送电子邮件并创建了1k链接,其中包含发送1k个不同电子邮件所需的特定变量。现在我所要做的就是生成一个php函数来打开所有链接并完成工作。但是,邮件服务器不允许同时从同一IP发送超过20封电子邮件。它将电子邮件标记为垃圾邮件并阻止IP。我在其中尝试了一个带有php睡眠功能的foreach循环,但它无法正常工作。该函数在指定的时间内休眠,然后打开一次给出的所有链接。我想声明该功能将从我的笔记本电脑运行,不会上传到任何服务器或任何服务器。

以下是我目前的功能:

$emails = ["http://www.facebook.com","http://www.tuttojuve.com","http://www.google.com"];
//testing with these links instead of the email links
foreach($emails as $key => $email){

    $mail = "<script type='text/javascript' language='Javascript'>window.open('".$email."','_blank');</script>";
    sleep(5);
    echo $mail; 
}

感谢任何帮助或提示, 提前致谢

1 个答案:

答案 0 :(得分:1)

$emails = ["http://www.facebook.com","http://www.tuttojuve.com","http://www.google.com"];
?>

<script>
    var linksToOpen = <?php echo json_encode($emails); ?>;
    var currentLink = 0;

    setInterval(function(){
        window.open(linksToOpen[currentLink++], '_blank');
        /* browser popup blocker may block this window so add window url to allowed list. */
    }, 5000); 
    /* every x millisecond */
</script>