2015-04-17 91 views
0

我的cron作业已运行但未发送电子邮件。Cron作业不发送邮件

/usr/bin/php -f /home/user/public_html/test/cron/checklist.php task=client 

结果= OK

<?php 
//get parameter from URL 
$argv = $_SERVER['argv']; 
$task = explode("=", $argv[1]); 
?> 

结果= OK

并发症从这里开始!

if(!$mail->Send()) { 
    echo "Mailer Error: " . $mail->ErrorInfo.'<br>'; 
} else { 
    echo "Message sent!<br>"; 
} 

它说“消息发送!”但没有电子邮件发送! 当我从网页上运行它作为一个测试,它的工作原理和发送邮件

我使用phpmailer发送。

+0

检查邮件服务器日志。 – Synchro

+0

'邮件'命令将执行没有错误(通常),但是如果不使用SMTP邮件,您发送的邮件可能会被ISP阻止或垃圾邮件过滤。让收件人检查他们的垃圾邮件文件夹? http://email.about.com/od/emailprogrammingtips/qt/PHP_Email_SMTP_Authentication.htm –

+0

感谢您的回答...我检查了它,没有问题写入日志 – Brolosse

回答

0

尝试/usr/bin/php -f /home/user/public_html/test/cron/checklist.php client

而且,在你的PHP代码,Web服务器处理和命令行处理区分。以下是一个示例:

if (php_sapi_name() == 'cli') { 
    echo "this is command line"; 
    $task = $argv[1]; 
} else { 
    echo "run from a web server"; 
    $argv = $_SERVER['argv']; 
    $task = explode("=", $argv[1]); 
} 
echo "\n task ="; 
echo $task; 
+0

当然一定要检查argv是否有必要的元素数量,如果你还没有这样做,用'isset'以及try和catch。 –