php
  • email
  • 2013-03-18 21 views 0 likes 
    0

    每當我使用php發送郵件時,接收者會得到類似下面的內容「From:Website plc [email protected] via mirage.arandomserver.com當我用php發送一封郵件時,我該如何擺脫服務器名稱

    我該如何擺脫服務器名稱?

    這裏是我當前的腳本」

    $to="$Email"; 
    $subject="Message received"; 
    $headers= 'From: Website plc <[email protected]>' . "\r\n" . 
    'Reply-To: $Email' . "\r\n" . 
    'X-Mailer: PHP/' . phpversion(); 
    
    $contact_message=" 
    Dear $FirstName $Surname, 
    
    message 
    
    Thanks 
    P&C Group Careers 
    http://www.career.pandcgroupng.com 
    "; 
    
    mail("$to", "$subject", $contact_message, $headers); 
    
    +3

    這聽起來像郵件服務器正在做的事情,而不是代碼。 – David 2013-03-18 17:56:13

    回答

    3

    使用‘從地址’附加參數信封。

    mail($to, $subject, $contact_message, $headers, '-f [email protected]'); 
    

    該地址將在內部通過郵件系統用於路由目的使用。請注意,這也繞過郵件過濾器軟件檢測到與實際始發服務器不匹配的地址的「不良」問題。

    編輯 - 我絕對沒有e在Windows上使用這個經驗。

    +0

    這做了魔術。謝謝。 – user1919681 2013-03-18 18:37:18

    +0

    如果這工作適合你,請將其標記爲正確的答案,以便其他人知道:-) – leftclickben 2013-03-19 07:52:59

    +0

    我正在解決SPF和DKIM ......而我所需要做的就是添加這個小字符串..謝謝! – Wicked161089 2017-01-12 16:55:45

    1

    你不能。您的服務器參與了SMTP通信,並始終處於原始郵件作爲一個類似的標題行中看到:

    Received: from example.com (example.com. [100.100.100.100]) 
         by mx.google.com with ESMTP id t8si14713688dfb.115.2013.03.18.10.01.59; 
         Mon, 18 Mar 2013 10:01:59 -0700 (PDT) 
    

    因爲這個郵件客戶端如Gmail會顯示「通過」的一部分,你所看到的。

    1

    當Gmail無法驗證「website.com」實際上正在發送電子郵件時,將顯示「via mirage.arandomserver.com」。 Gmail會檢查很多因素,包括反向DNS,SPF記錄和/或發送SMTP服務器發送的HELO,以驗證服務器是否允許作爲該域進行發送。與您的實際PHP腳本無關。

    看看谷歌的文檔,在此:http://support.google.com/mail/answer/1311182

    檢查了「website.com」域名SPF記錄,並確保他們是您從發送電子郵件服務器正確。您可能想與託管公司或系統管理員交談,以獲取您的託管設置所需的正確SPF記錄。

    相關問題