我的批处理文件存在问题
如果我访问:http://localhost:8080/cron/cron.php
我收到了发送邮件Yeah, message send via Gmail
这是我的cron.php
<?php
require_once 'simplehtmldom\simple_html_dom.php';
require_once 'sites.php';
require_once 'send_mail.php';
ini_set('display_errors','on');
foreach ($site_list as $name => $link){
$command = "C:\\Python27\\python C:\\webcheck\\webcheck.py -o C:\\wamp\\www\\cron\\reports\\$name $link";
$output = shell_exec($command);
$log_file = "C:\\wamp\\www\\cron\\log.txt";
$fh = fopen($log_file,'w') or die('can not open file');
fwrite($fh, $output);
fclose($fh);
}
/*Scan folder for reporting */
$path = 'C:\\wamp\\www\cron\\reports\\';
$msg = '';
foreach (new DirectoryIterator($path) as $fileInfo) {
if($fileInfo->isDir() && !$fileInfo->isDot()) {
// Do whatever
$webcheck = $fileInfo->getFilename() ;
$html = file_get_html($path.$webcheck.'\\badlinks.html');
$es = $html->find('div[class="content"]', 0);
$msg .="<h2>BADLINKS $webcheck</h2>";
$msg .= $es->innertext; // Some Content
}
}
$subj = $_subj;
$to = $_to;
$from = $_from;
$name = $_name;
if (smtpmailer($to, $from, $name, $subj, $msg)) {
echo 'Yeah, message send via Gmail';
} else {
if (!smtpmailer($to, $from, $name, $subj, $msg, false)) {
if (!empty($error)) echo $error;
} else {
echo 'Yep, the message is send (after doing some hard work)';
}
}
?>
但是这个cron.bat
C:\wamp\bin\php\php5.3.5\php C:\wamp\www\cron\cron.php
我转到cmd
并输入cron.bat
我得到了消息Mail error: SMTP Connect() failed.
你有什么想法吗?
由于
答案 0 :(得分:1)
请记住,cron作业将使用PHP CLI
。 PHP CLI
使用不同的php.ini
文件到Apache。
确保您在其他php.ini file
内激活了所有必需的扩展程序。
我认为php_smtp
扩展程序未激活。
啊,我发现你正在使用WAMP,因此php.ini文件的PHP CLI
版本将在c:\wamp\bin\php\php5.x.y\php.ini
。
如果您需要将在Apache PHP中激活的扩展名与在c:\wamp\bin\apache\apache2.x.y\bin\php.ini
PHP CLI
中的位置