我正在尝试设置一个每周一次发送一封电子邮件的cron作业, 根据我对设置cron作业的了解,一个cron作业应该执行一个脚本。
所以这就是我所做的。
在我的cron.php页面上:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<script type="text/javascript">
window.onload=function(){
window.setTimeout(function() { document.postniid.submit(); }, 0000);
};
</script>
<form name="postniid" id="postniid" method="post" action="cron_post.php" >
<input name="email" type="hidden" id="inputInsured Name" value="wolexx007@gmail.com" />
</form>
</body>
</html>
我已经设置了一个默认电子邮件发布到cron_post.php的表单,我也将这个表单设置为onload,因为我预计cron会执行我的cron.php页面。
我的cron_post.php页面:
<?php
$reply = $_POST['email'];
$replysubject = "Auto-Reply: support | kblinsurance.com";
$replyfrom = "From: noreply@kblinsurance.com\r\n";
$replymessage .= "Testing Cron Job.\r\n\r\n";
mail($reply,$replysubject, $replymessage, $replyfrom);
?>
发送电子邮件。
它在我从浏览器测试时有效,但在我设置执行我的cron命令时不执行。
30 14 * * 1-5 php /home5/whitech3/public_html/cron/cron.php
为什么这样?
答案 0 :(得分:0)
您正在混淆客户端和服务器端代码。请谷歌寻找差异。
您编写的javascript只有在通过浏览器加载页面时才会执行。你所有的cron工作现在正在做,正在渲染一个带有表单和一些javascript代码的页面,但实际上并没有执行javascript(这是浏览器的工作)。
请注意,您不必依赖POST来执行脚本。在您的cron.php页面中,您只需使用cron_post.php代码(并将$_POST[]
替换为实际的电子邮件)。