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

How to enable PHP mail() function in dokku on DigitalOcean

我已经在 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': not a valid identifier

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

我找不到关于此问题的任何其他文档,非常感谢您的帮助。

除了@MarcB 对评论的明智建议 请使用适当的邮件客户端,如 phpMailer 或 SwiftMailer 来解决你的问题的具体细节,你可以轻松通过 运行 phpinfo().

调试你的 php 值

具体寻找:
- sendmail_path

您还可以通过以下方式微调它的某些方面: - mail.add_x_header - mail.force_extra_parameters - mail.log - sendmail_from

根据描述的错误,检查文件 ~/.bashrc 并清理您放在那里的所有内容。看起来您已经将变量形式的 PATH 前缀为 $PATH.

它应该像 export PATH=...