Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sendmail 如果从终端调用,则php mail()不工作_Sendmail_Php - Fatal编程技术网

Sendmail 如果从终端调用,则php mail()不工作

Sendmail 如果从终端调用,则php mail()不工作,sendmail,php,Sendmail,Php,我想做一份小时事通讯。要发送电子邮件,我想用shell_exec()调用sender脚本 什么也没发生。如果在发送之前输出这些参数,则mail()函数将返回true并正确设置所有参数 我还检查了/var/log/mail*,但没有产生任何错误 我试着用相对路径和绝对路径调用脚本。两者都不起作用 我现在被卡住了,因为mail()函数只有在从终端调用时才起作用,否则一切看起来都很好 我正在使用sendmail发送电子邮件 我怎样才能解决这个问题 谢谢:)从命令行使用PHP时,通常可以使用不同的PHP

我想做一份小时事通讯。要发送电子邮件,我想用shell_exec()调用sender脚本

什么也没发生。如果在发送之前输出这些参数,则mail()函数将返回true并正确设置所有参数

我还检查了/var/log/mail*,但没有产生任何错误

我试着用相对路径和绝对路径调用脚本。两者都不起作用

我现在被卡住了,因为mail()函数只有在从终端调用时才起作用,否则一切看起来都很好

我正在使用sendmail发送电子邮件

我怎样才能解决这个问题


谢谢:)

从命令行使用PHP时,通常可以使用不同的PHP.ini文件。此CLI php.ini文件可能未配置邮件设置


从命令行中使用
php-i
,找出php正在使用的ini文件,然后检查该文件中的邮件设置,特别是与普通的apache php.ini文件(可以通过在脚本中粘贴
并将其加载到浏览器中找到)进行比较。

我认为cli模式缺少一些配置。 比较从cli和Web服务器加载的php.ini

ini_set ( "SMTP", "smtp-server.example.com" );
date_default_timezone_set('America/New_York');

还可以帮助检查PHP邮件配置:

  • 打开php.ini文件(如果您不知道该文件在哪里,请参阅下面的内容)
  • 搜索读取[邮件功能]的行
  • 添加/更改邮件服务器的详细信息。这可能是本地邮件服务器或ISP的邮件服务器
  • 保存/关闭php.ini文件
  • 重新启动web服务器
  • [邮件功能]

    仅适用于Win32。

    SMTP=localhost

    smtp\u端口=25

    仅适用于Win32。

    sendmail\u from=me@example.com

    仅适用于Unix。您也可以提供参数(默认值:“sendmail-t-i”)。

    sendmail\u路径=

    php send_mail.php
    
    ini_set ( "SMTP", "smtp-server.example.com" );
    date_default_timezone_set('America/New_York');