我正在尝试让 PHP mail() 函数工作。但它无法发送电子邮件。我运行的是 Ubuntu 11.04。我安装了 sendmail。
我打开了 php.ini 并设置
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
sendmail_path = /usr/sbin/sendmail -t
sendmail_from = [email protected]
然后我重新启动了 apache。
然后创建了一个简单的 PHP 脚本来测试它,但没有成功。
当我尝试运行 sendmail 时,它给出了权限错误,因此我必须运行“sudo sendmail”。我的邮件系统故障与权限有关吗?我需要对 sendmail 进行进一步配置吗?
谢谢。
编辑:错误是这样的:
user@server:~$ sendmail
Command 'sendmail' is available in '/usr/sbin/sendmail'
The command could not be located because '/usr/sbin/' is not included in the PATH
environment variable. This is most likely caused by the lack of administrative
privileges associated with your user account.
sendmail: command not found
user@server:~$ sudo sendmail
sendmail: No recipients supplied - mail will not be sent
答案1
尝试将您的用户添加到邮件组,如下所示:
sudo adduser yourusername mail
如果您在 HTTP 服务器(例如 Apache)中使用 PHP,则需要执行以下操作:
sudo adduser www-data mail
除了实际问题之外 - 如果您的邮件需求仅限于个人/本地开发 - 我强烈推荐 ssmtp。
答案2
我做了这个
sudo apt-get 安装 postfix
现在一切都运行正常。显然,Sendmail 不是答案。Postfix 才是。