Ubuntu

配置 Linux 和 PHP 以通過腳本而不是 SMTP 發送電子郵件

  • January 24, 2016

我有一個帶有靜態 IP 的伺服器和一個指向它的域。因為它位於阻止 SMTP(傳入和傳出)的防火牆後面,所以我無法從中發送任何電子郵件。

無論如何,為了能夠使用域發送和接收電子郵件,我使用Mailgun

例如,我可以使用 GMail 發送電子郵件,但不能使用 PHP,因為我只找到了使用 SMTP 配置 sendmail() 的說明。幸運的是,Mailgun 提供了一個 HTTPS API 來發送電子郵件。

問題

如何配置 PHP 以呼叫我的伺服器上的腳本,該腳本本身呼叫 Mailgun API?

注意:呼叫 API 不是問題。我只需要幫助配置 PHP。

我試過的

在 php.ini 中,您可以像這樣設置 sendmail 二進製文件的路徑:

sendmail_path = /path/to/sendmail

我將此指向一個腳本,該腳本只是將所有參數轉儲到一個文件中:

echo "$@" > /path/to/output.txt

每當呼叫 PHP 時,該腳本確實會被mail()呼叫,但顯然參數存在問題。當 I 時cat output.txt,我只得到兩個空行。

我能夠解決這個問題。只是mail()將郵件的標題和內容輸入到stdin相應的sendmail二進制/腳本中。

所以我調整了我的腳本來閱讀stdin,這確實有效。

感謝本教程,它使我走上了正確的軌道。

引用自:https://serverfault.com/questions/751240