【问题标题】:PHP send email by CLIPHP 通过 CLI 发送电子邮件
【发布时间】:2012-04-05 21:55:45
【问题描述】:

我想在某些服务结束后发送一封电子邮件,所以我正在使用 php exec() 函数来做到这一点

我使用的命令是:exec('(other service commands; /usr/bin/php /var/www/vhosts/domain.com/httpdocs/email.php name@domain.com) > /dev/null &');

email.php 包含一个 mysql 更新和一个 mail() 函数。它似乎运行良好,因为 mysql 更新正在进行,但它不发送电子邮件。

如果我通过 CLI 而不是通过 php exec() 运行命令,则电子邮件发送正确。
例如。 /usr/bin/php /var/www/vhosts/domain.com/httpdocs/email.php receiver@domain.com

还有什么我应该设置的来解决这个问题吗?

【问题讨论】:

  • 您可以将输出重定向到文件,而不是将输出重定向到 /dev/null,也许您可​​以直接从文件中读取正在发生的事情
  • 问题出在权限上:尝试使用带有sudo -u wwwuser /usr/bin... 的cli 命令 - 你应该会看到这不起作用

标签: php email exec command-line-interface


【解决方案1】:

我终于明白了!

显然,CLI 的 php.ini (/etc/php5/cli/php.ini) 上的 sendmail_path 已被注释掉。

我取消了它的注释,将它的值设置为/usr/sbin/sendmail -t -i,重新启动了apache,现在它可以正常工作了!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-22
    • 2010-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-21
    • 2015-09-30
    • 1970-01-01
    相关资源
    最近更新 更多