php5 mail()函数sendmail错误

php5 mail()函数sendmail错误,php,apache2,webserver,sendmail,Php,Apache2,Webserver,Sendmail,我正在尝试使用php的mail()函数,但不断出现错误。我已经通过sudo apt get install sendmail安装了sendmail,编辑了我的/etc/php5/cli/php.ini文件,在这些行中添加了以下文本: sendmail_path = /usr/sbin/sendmail -t sendmail_from = uslonsweb003.ALU@no-reply.com 然后,我重新启动Web服务器,并使用以下命令进行测试: :~$ php -r "mail(

我正在尝试使用php的mail()函数,但不断出现错误。我已经通过
sudo apt get install sendmail
安装了sendmail,编辑了我的
/etc/php5/cli/php.ini
文件,在这些行中添加了以下文本:

 sendmail_path = /usr/sbin/sendmail -t
 sendmail_from = uslonsweb003.ALU@no-reply.com
然后,我重新启动Web服务器,并使用以下命令进行测试:

 :~$ php -r "mail('sadmicrowave@gmail.com', 'test subject', 'test body message');"
但每次我都会遇到以下错误!!!:

 sh: -t: not found
这很奇怪,因为我尝试了带-t和不带-t的sendmail_路径,但我一直得到相同的错误。我做错了什么

更新!这就是我的phpinfo()所显示的:(我添加了-t back,但命令在使用或不使用它时都不起作用)

另一项更新-


我注释掉了sendmail_路径和sendmail_from line从头开始,希望mail()函数抱怨php不知道它是什么,但是我得到了与以前完全相同的错误(即使完全没有这两行!!)。这让我相信它与sendmail程序或mail()函数根本没有关系…

我不知道,但您可以尝试
sendmail\u path=/usr/sbin/sendmail-t-I
。在我使用的网络主机上设置为。否则,您可能需要检查
phpinfo()
是否包含
sendmail

的正确设置查看phpinfo()输出中的以下部分,以确保您正在编辑正确的文件:

  • 加载的配置文件
  • 已解析其他.ini文件

如果您编辑的文件未列在其中一个部分中,则更改将无效。

我认为此错误表明您缺少-t将要查找的信息、'to:'、'CC:'或'BCC:'

尝试向邮件命令行添加一些额外信息,看看是否有效:

php -r "mail('sadmicrowave@gmail.com', 'test subject', 'test body message', 'To: Receiver <receiver@email.com>');"
php-r“邮件”sadmicrowave@gmail.com“,”测试主体“,”测试主体消息“,”收件人“;”

我通过使用SwiftMailer模块解决了我的问题,在该模块中,我可以指定要中继的邮件服务器。我使用我的公司mailserver作为服务器属性,并继续指定以下选项:

require_once('/var/www/global/swiftmailer/lib/swift_required.php');
$transport = Swift_SmtpTransport::newInstance( 'mailout.usa.mycompany.com', 25 );
$mailer = Swift_Mailer::newInstance( $transport );
$message = Swift_Message::newInstance( 'Suggestion Status Update' )
    ->setFrom( array( 'uslonsweb003@no-reply.com' => 'SuggestionBox' ) )
    ->setTo( array( $pEmail => $username ) )
    ->setBody( $body, 'text/html' )
    ;
$result = $mailer->send( $message );

不确定这是否重要,但您是否重新启动了sendmail?@tony-完全重新启动Web服务器也应该做同样的事情…对吗无论如何-手动重新启动服务,但仍然会出现相同的错误。我同意,听起来您设置这些新值的任何操作都不起作用,并且仍然使用默认值。@Tony-请参阅我的原始帖子,以获取我的phpinfo()输出的屏幕截图。@sadmove,您缺少了-I,还要确保您确实在/usr/sbin/中收到了sendmail,因为我的邮件在/usr/bin中;发出“which sendmail”命令以找出确切的路径。“加载的配置文件”是
/etc/php5/apache2/php.ini
,我也使用与cli/php.ini文件中相同的内容对其进行了编辑……因此,显然正在捕获更改。另外,请参阅我的OP中的屏幕截图,查看正在捕获的更改。。。