如果我編寫一個PHP腳本連接到SMTP服務器(在我的情況下,這是本地安裝的Postfix)併發送一封電子郵件,電子郵件中的第一個「收到」標題爲:PHP主機名綁定
Received: from [SERVER_IP] (SERVER_HOSTNAME [127.0.0.1]) by SERVER_HOSTNAME (Postfix) with ESMTP id D682A34381 for <TO_EMAIL>; Thu, 5 Mar 2009 17:25:18 +0000 (GMT)
這是因爲PHP腳本正在通過瀏覽器訪問,Apache綁定到SERVER_IP。
但是,如果我從PHP CLI執行相同的腳本,那麼第一個「已接收」報頭,而不是:
Received: from localhost.localdomain (SERVER_HOSTNAME [127.0.0.1]) by SERVER_HOSTNAME (Postfix) with ESMTP id AB51934381 for <TO_EMAIL>; Thu, 5 Mar 2009 17:18:01 +0000 (GMT)
這是因爲PHP CLI是由一個普通的Linux用戶調用(通過一個cron)。
如何讓PHP CLI綁定到主機名/ IP,以便當用戶通過cron作業調用它時,「received」標題顯示服務器主機名/ IP而不是localhost.localdomain?
注1:主機名在主機名--fqnd正確設置,/ etc/hosts中,在/ etc/SYSCONFIG /網絡和/ PROC/SYS /內核/主機名
注2:我在PHP中使用Swift Mailer,雖然這可能是不相關的。
我需要設置第二個Swift構造函數參數,因爲如您所說,SERVER_ADDR未在CLI中設置。 – DavidM 2009-03-08 16:28:19