2015-04-17 64 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。 –

相關問題