如何在 DigitalOcean 的 dokku 中启用 PHP mail() 函数
How to enable PHP mail() function in dokku on DigitalOcean
我已经在 DigitalOcean 上用 Dokku 部署了一个 PHP 网站。这是一个非常简单的网站,里面有一个联系表。但是,无法发送表格,因为显然 PHP mail()
功能不起作用。
我已经在服务器机器上安装了 sendmail
,我可以在命令行上使用 sendmail
发送电子邮件。我已按照此处的说明进行操作:
但我不断收到此错误:
-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=...
我已经在 DigitalOcean 上用 Dokku 部署了一个 PHP 网站。这是一个非常简单的网站,里面有一个联系表。但是,无法发送表格,因为显然 PHP mail()
功能不起作用。
我已经在服务器机器上安装了 sendmail
,我可以在命令行上使用 sendmail
发送电子邮件。我已按照此处的说明进行操作:
但我不断收到此错误:
-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()
.
具体寻找:
- sendmail_path
您还可以通过以下方式微调它的某些方面: - mail.add_x_header - mail.force_extra_parameters - mail.log - sendmail_from
根据描述的错误,检查文件 ~/.bashrc
并清理您放在那里的所有内容。看起来您已经将变量形式的 PATH
前缀为 $PATH
.
它应该像 export PATH=...