如何在DigitalOcean上的dokku中启用PHP mail()函数

时间:2016-07-13 16:27:30

标签: php sendmail digital-ocean dokku

我在DigitalOcean上使用Dokku部署了一个PHP网站。这是一个非常简单的网站,里面有联系表格。但是,无法发送表单,因为显然PHP mail()函数不起作用。

我在服务器计算机上安装了sendmail,我可以在命令行上发送带有sendmail的电子邮件。我按照这里的说明进行了操作:

https://www.digitalocean.com/community/questions/do-I-need-to-configure-anything-to-use-php-mail-function-on-fresh-lamp-install

但我一直收到这个错误:

  

-bash:export:`/ usr / sbin / sendmail:/ usr / local / sbin:/ usr / local / bin:/ usr / sbin:/ usr / bin:/ sbin:/ bin:/ usr / games :/ usr / local / games':不是有效的标识符

在这里回答第三个问题与我的问题相同(https://www.digitalocean.com/community/questions/php-mail-function-enable);我安装了postfix,我试图在服务器上更改php.ini文件(位于/ etc / php5 / cli /中的奇怪路径)。我完全不确定php.ini文件是dokku在编译应用程序时使用的文件。

我找不到关于这个问题的任何其他文件,我真的很感谢你的帮助。

1 个答案:

答案 0 :(得分:0)

除了@MarcB对评论的明智建议确实使用适当的邮件客户端,如phpMailer或SwiftMailer ,你可以通过运行 {轻松调试你的php值{1}}

具体查找:
- sendmail_path

您还可以通过查看以下内容来微调它的某些方面: - mail.add_x_header - mail.force_extra_parameters - mail.log - sendmail_from

根据所描述的错误,检查文件phpinfo()并清理你放在那里的任何内容。您似乎已将变量形式~/.bashrc中的PATH作为$PATH进行了预测。

应该有类似export PATH=...

的内容