使用cron作业发送电子邮件的问题

时间:2011-02-28 19:48:27

标签: php cron

我基本上有一个普通的php邮件功能脚本,它应该经常使用cron作业运行,但是如果我手动运行脚本,有些电子邮件在实际工作时不起作用。

例如在我的hoshing cron控制面板中我输入domain.ca/pear/Mail/test_mail.php

我是不是正确输入了网址?我应该使用某种cron作业命令

require_once('Mail.php');
require_once('../Mail_Mime/mime.php');


 $mail = Mail::factory("mail");

    $headers = array("From"=>"me@example.com", "Subject"=>"Test Mail");
    $body = "This is a test!";
    $mail->send("example@gmail.com", $headers, $body);

这正是我的电子邮件脚本

此外,cron可以使用某些电子邮件地址,例如gmail。

因此,像我的学校这样的电子邮件在cron中不起作用,但在手动执行时起作用。该脚本还使用cron ..

更新数据库

我的.sh文件中有这个:

/usr/local/nf/php5/bin/php -f ./test_mail.php

1 个答案:

答案 0 :(得分:2)

您不能将URL单独放在cron规则中。在cron规则中使用基于文本的浏览器,例如lynxwget

* * * * * wget http://mypage.com

您可能希望为wgetlynx添加一些参数,以便它不会在服务器上保存输出,而只是模拟提取。或者将输出文件夹重定向到/tmp/dev/null,以免浪费。查看相关工具的手册页:

man wgetwget --help通过Shell。

您也可以按照Artefact2的建议:* * * * * php script.php。您可能需要在PHP代码的顶部添加PHP的shebang声明:

#!/usr/bin/php
<?php
// your PHP code here

Shebang需要指向系统中正常运行的PHP可执行文件。