无法从命令行使用Mail.php
我有一个php脚本,这将是一个cron工作,它一直工作良好,直到我添加了我一直使用的电子邮件脚本 我以前在整个站点上都使用过电子邮件脚本,但是当我尝试从命令行使用它运行cron作业时,它失败了 邮件脚本如下所示无法从命令行使用Mail.php,php,email,ubuntu,cron,smtp,Php,Email,Ubuntu,Cron,Smtp,我有一个php脚本,这将是一个cron工作,它一直工作良好,直到我添加了我一直使用的电子邮件脚本 我以前在整个站点上都使用过电子邮件脚本,但是当我尝试从命令行使用它运行cron作业时,它失败了 邮件脚本如下所示 <?php require_once "Mail.php"; function sendMail($to, $from, $subject, $message) { $no_errors = true; $host = "ssl://
<?php
require_once "Mail.php";
function sendMail($to, $from, $subject, $message) {
$no_errors = true;
$host = "ssl://smtp.server.com";
$port = "465";
$username1 = "username";
$password = "password";
$headers = array ('From' => 'myfromemail@myemail.com',
'To' => $to,
'Subject' => $subject);
$smtp = Mail::factory('smtp',
array ('host' => $host,
'port' => $port,
'auth' => true,
'username' => $username1,
'password' => $password));
$mail = $smtp->send($to, $headers, $message);
if (PEAR::isError($mail)) {
$no_errors = false;
echo $mail->getMessage();
} else {
$no_errors = true;
}
return $no_errors;
}
?>
如果我将include send_mail.php注释掉,它可以正常工作,但不会发送电子邮件
有什么想法吗?从命令行尝试“locate Mail.php”,然后在require\u中尝试此脚本的完整路径一次
当响应通过cron运行时,还要尝试将其转储到日志文件中:
从命令行尝试“locate Mail.php”,然后在require\u中尝试此脚本的完整路径一次
当响应通过cron运行时,还要尝试将其转储到日志文件中:
您需要确保,当脚本从
cron
运行时,它设置了正确的工作文件夹,以便可以加载mail.php
。使用和函数是您需要使用的两个
通常,当从web浏览器(在Apache服务器上)运行时,工作目录是
/var/www
,但从cron
,它通常是文件系统的根,/
您需要确保,当脚本从cron
运行时,它设置了正确的工作文件夹,因此它可以加载mail.php
。使用和函数是您需要使用的两个
通常,当从web浏览器(在Apache服务器上)运行时,工作目录是
/var/www
,但从cron
,它通常是文件系统的根目录,/
当包含外部文件时,您需要知道文件在哪里,然后PHP将在哪里查找它。您可以检查它的外观并设置它。设置新目录时,需要添加(而不是替换)安装Mail.php的目录。使用get\u include\u path()。路径分隔符$yourPath
作为新值。当包含外部文件时,需要知道文件在哪里,然后PHP将在哪里查找它。您可以检查它的外观并设置它。设置新目录时,需要添加(而不是替换)安装Mail.php的目录。使用get\u include\u path()。路径分隔符$yourPath
作为新值。运行cron时的标准文件夹可能与包含此include的文件夹不同。试试这个:
require_once realpath( dirname( __FILE__ ) . '/Mail.php' );
在一般情况下,您可以根据需要添加
。
或文件夹结构,并且它仍然可以工作。运行cron时的标准文件夹可能与包含此include的文件夹不同。试试这个:
require_once realpath( dirname( __FILE__ ) . '/Mail.php' );
在一般情况下,您可以根据需要添加
。
或文件夹结构,它应该仍然可以工作。尝试查找,但没有返回任何内容。php是从pear发来的,所以我不知道为什么会找到它,什么也没有回来。php来自pear,所以我不知道为什么