2015-03-13 46 views
2

我總是包含-f國旗在我的PHP應用程序,因爲我認爲這很重要,因爲文檔告訴我們:我們真的需要-f在PHP郵件中標記嗎?爲什麼?

是網絡服務器運行作爲應該被添加爲受信任的用戶 到sendmail配置用戶以防止在使用 此方法設置信封發件人(-f)時,將 的'X-Warning'標頭添加到郵件中。對於sendmail用戶,這個文件是/ etc/mail/trusted-users。

所以它看起來像它被用來防止欺騙 - 通過驗證我是誰。然後我做了一個實驗。事實證明,如果我不包含-f,當我發送郵件時,仍然沒有X警告。實際上,發件人甚至不需要成爲我自己。例如,我嘗試將[email protected]作爲發件人,並且我收到了沒有任何警告的電子郵件。我甚至嘗試使用[email protected]發送數百封電子郵件到多個電子郵件帳戶,但他們沒有被標記爲垃圾郵件。

所以,我的問題是,-f標誌真的做什麼(因爲在我看來,沒有它,電子郵件將發送通過)?

+1

「他們沒有得到標記爲垃圾郵件」 WhiteHouse.org(不是白宮,順便說一下,這是.gov)沒有SPF記錄,這是有時可以避開的一部分。你應該使用像SwiftMailer這樣的真正的郵件類,並停止擔心sendmail標誌。 – ceejayoz 2015-03-13 19:04:07

+0

@ceejayoz我明白了,所以如果我使用WhiteHouse.gov這個SPF記錄,我會被標記爲沒有-f標誌?那很有意思。謝謝。你能讓它成爲答案嗎? – 2015-03-13 19:05:35

+1

您*可能被標記。 WhiteHouse.gov在他們的記錄中使用了「〜all」,所以它不會給電子郵件服務器提供最有用的信息來將您的郵件標記爲垃圾郵件。垃圾郵件過濾器可以處理很多事情,包括內容和發送IP的聲譽。 – ceejayoz 2015-03-13 19:06:52

回答

2

-f標誌用於指定envelope sender地址。您應該使用-f標誌設置此地址,以便它與郵件標題中的FROM地址相匹配,否則由於兩者不匹配,某些垃圾郵件過濾器將更可能將郵件視爲垃圾郵件。

你可以做類似下面的設置這兩個,讓他們匹配:

$to = "[email protected]"; 
$from = "[email protected]"; 
$subject = "subject"; 
$message = "this is the message body"; 

$headers = "From: $from"; 
$ok = @mail($to, $subject, $message, $headers, "-f " . $from); 
+0

因此,讓它空白等於將其設置爲匹配我假設的「FROM」?因爲我在發送'FROM:<[email protected]>'時試圖將它留空。 – 2015-03-13 19:09:07

+1

否。忽略-f標誌很可能會導致PHP在您的php.ini中爲信封發件人使用爲sendmail_from設置的任何內容。因此,它不符合您爲標題中的「FROM:」地址設置的內容。 – mti2935 2015-03-13 19:15:52

+0

我明白了。謝謝。 :) – 2015-03-13 19:18:44

相關問題