2014-11-20 106 views
1

好了,所以我有一个简单的脚本,通过PHP的邮件功能发送电子邮件,像这样:PHP如何在没有sendmail的情况下使用邮件发送邮件()?

<?php mail('[email protected]', 'Subject', 'This is a message', array('From' => '[email protected]', 'To' => '[email protected]', 'Subject' => 'This is a message')); ?> 

它当可让Synology DS212j(使用了BusyBox的最常见的基于Linux的NAS上运行完美的作品shell命令),但是据我所知,没有任何地方可以找到sendmail的实例,BusyBox sendmail未启用。实际上,如果我使用ini_get("sendmail_path")则返回值" -t -i"

有一个环境变量MAIL=/var/mail/root,但这也不会做任何事情(没有/var/mail)。

因此,我完全丧失了PHP实际发送电子邮件的方式,所以我希望有人知道。我在另一个平台(在同一网络叹息)上为PHP执行sendmail时遇到问题,所以如果我可以使用与我的NAS相同的机制,那么它可以使事情变得更容易。

+0

sendmail的不是唯一的邮件。 postfix/exim将创建一个sendmail符号链接到自己的二进制文件,以便与具有硬编码“所有电子邮件通过sendmail”假设的应用程序兼容。 – 2014-11-21 20:41:56

回答

3

如果您有您的系统上qmail的后缀和它们与sendmail的包装配置,那么PHP可以配置为与这些工作。否则,sendmail二进制文件必须位于系统中,以便使用mail()函数发送电子邮件。

参考:http://php.net/manual/en/mail.requirements.php

+0

这似乎是合理的,但在这种情况下,为什么'sendmail_path'指向这样的二进制文件?有没有其他方法可以找出我的PHP安装实际使用的是什么?我会看看是否可以找到qmail或Postfix,我怀疑我的NAS将安装多个这样的安装,但我仍然对PHP实际配置如何使用它们感到不知所措我在配置选项和'phpinfo()'结果中看到。 – Haravikk 2014-11-25 11:13:51

相关问题