2014-11-20 91 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

相關問題