我在 public_html 目录下有一个php邮件脚本 mailer.php 。当我通过 domain.com/mailer.php
直接访问它时,该工作正常PHP邮件程序脚本
<?php
$from = "mail@gmail.com"; // sender
$subject = "Subject";
$message = "Message of mail";
$message = wordwrap($message, 70);
mail("mail@gmail.com",$subject,$message,"From: $from\n");
?>
但是我想每分钟使用unix shell cron job
执行这个脚本我正在使用Putty.exe Shell终端(适用于Windows)
我已在 public_html / mailer.txt
中保存了以下cron代码* * * * * /home/user/public_html/mailer.php
将Shell终端目录更改为 / public_html 并运行以下命令
crontab mailer.txt
现在我希望每分钟都能收到我上面定义的电子邮件ID的邮件,但它不起作用。 请帮助我找出我做错的地方。
答案 0 :(得分:1)
您的文件根本不可执行。您可能想要拨打php
来代替:
* * * * * php /home/user/public_html/mailer.php
......或者为了安全起见:
* * * * * /usr/bin/php /home/user/public_html/mailer.php
...其中/usr/bin/php
应替换为php二进制文件的实际路径。
此外,您可以将文件本身转换为Linux脚本:
#!/usr/bin/php
<?php
$from = "mail@gmail.com"; // sender
$subject = "Subject";
$message = "Message of mail";
$message = wordwrap($message, 70);
mail("mail@gmail.com",$subject,$message,"From: $from\n");
?>
...告诉Linux它是一个可执行文件。例如,如果文件保存为/home/user/bin/mailer
(不需要将其保存到Apache文档根目录中):
chmod +x /home/user/bin/mailer
现在可以安排文件本身:
* * * * * /home/user/bin/mailer
您可以在手册的Executing PHP files部分找到更多详细信息。
答案 1 :(得分:1)
变化:
* * * * * /home/user/public_html/mailer.php
到
* * * * * php /home/user/public_html/mailer.php
答案 2 :(得分:0)
在您的cron文件中,您需要执行:
/usr/bin/wget localhost/mailer.php
这应该执行文件中的PHP代码。但是,我建议设置.htaccess文件,以便localhost是唯一可以执行该PHP文件的人。
祝你好运!