Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP如何在不使用sendmail的情况下使用Mail()发送邮件?_Php_Email_Sendmail - Fatal编程技术网

PHP如何在不使用sendmail的情况下使用Mail()发送邮件?

PHP如何在不使用sendmail的情况下使用Mail()发送邮件?,php,email,sendmail,Php,Email,Sendmail,好的,我有一个简单的脚本,它通过PHP的邮件函数发送电子邮件,如下所示: <?php mail('foo@example.org', 'Subject', 'This is a message', array('From' => 'bar@example.org', 'To' => 'foo@example.org', 'Subject' => 'This is a message')); ?> 在Synology DS212j(一种基于Linux的NAS,使

好的,我有一个简单的脚本,它通过PHP的邮件函数发送电子邮件,如下所示:

<?php mail('foo@example.org', 'Subject', 'This is a message', array('From' => 'bar@example.org', 'To' => 'foo@example.org', 'Subject' => 'This is a message')); ?>

在Synology DS212j(一种基于Linux的NAS,使用BusyBox执行最常见的shell命令)上运行时,它可以完美地工作,但是据我所知,我在任何地方都找不到
sendmail
的实例,而且BusyBox
sendmail
没有启用。事实上,如果我使用
ini\u get(“sendmail\u path”)
,则返回值
“-t-I”

有一个环境变量
MAIL=/var/MAIL/root
,但这也不起任何作用(没有
/var/MAIL


所以我完全不知道PHP实际上是如何发送电子邮件的,所以我希望有人知道。我在另一个平台(同一个网络平台)上使用PHP的
sendmail
时遇到问题,因此如果我可以使用与我的NAS相同的机制,那么它可以使事情变得更简单。

如果您的系统上有qmailpostfix,并且它们配置了sendmail包装器,然后可以配置PHP来处理这些问题。否则,系统上必须有sendmail二进制文件,php才能使用mail()函数发送电子邮件


参考资料:

sendmail并不是唯一的邮寄者。postfix/exim将创建一个指向其自身二进制文件的sendmail符号链接,以与具有硬编码“所有电子邮件都通过sendmail”假设的应用程序兼容。这似乎是合理的,但在这种情况下,
sendmail\u path
为什么不指向这样的二进制文件?有没有其他方法可以让我知道我的PHP安装实际使用的是什么?我会看一看是否可以找到qmail或postfix,我怀疑我的NAS上会安装不止一个,但根据我在配置选项和
phpinfo()。