我只是想出了mail()函数不起作用
我在Debian下,我安装了后缀,因为有朋友告诉我(虽然我没有configuration它)。
当我做一个phpinfo()我有:
sendmail_path /usr/sbin/sendmail -t -i /usr/sbin/sendmail -t -i
但在这个目录中我没有任何东西像sendmail
你有一个想法,我应该怎么做才能让邮件()工作?
谢谢
在Unix中,大多数程序依靠MTA(邮件传输代理)来进行邮件传输。 当程序想要发送消息时,它会执行/usr/sbin/sendmail并以stdin的forms给出整个消息。
Sendmail MTA是第一个以这种方式工作(现在仍然如此)的工具,而其他MTA遵循提供/usr/sbin/sendmail程序的相同惯例。
[在这个答案中,Sendmail是原始的MTA,而sendmail (小写)是/usr/sbin/sendmail (它与当前使用的所有MTA一起)。]
PHP的mail()遵循Unix传统,只是将消息传递给sendmail可执行文件。 这意味着你需要一个MTA。 你已经安装了Postfix,这很好。 但是,它有一个sendmail二进制文件,所以如果你没有它在/usr/sbin/ ,那么你必须把它安装在其他地方 – 也许是/usr/local/sbin/如果从源代码编译的话?
重新安装Postfix可能会解决这个问题。 如果没有,请更新您的问题,例如您是如何安装Postfix的。
如果您的sendmail /usr/sbin/ ,那么您将不得不编辑PHP的configuration – php.ini 。 通常在/etc/php5/ ,Debian有三个 。 ( cgi/用于通用CGI / FCGI, apache2/用于Apache PHP模块, cli/用于从命令行使用PHP。)