2016-07-06 24 views
3

我正在嘗試爲wordpress發送的電子郵件實施自定義跟蹤像素。跟蹤像素和Gmail代理的問題

由於這些崗位:

Tracking email with PHP and image

Tracking email opens with a real image

,尤其是

http://www.phpdevtips.com/2013/06/email-open-tracking-with-php-and-mysql/

我是能夠實現的核心思想。

電子郵件通過 <img src="https://www.example.com/tracking.php?order_id=1" width="100" height="100" />

,並在tracking.php

$graphic_http = 'https://www.example.com/GIF-example.gif'; 

header('Content-Type: image/gif'); 
readfile($graphic_http); 

打開tracking.php文件在瀏覽器中打開下載的gif圖片加載跟蹤像素。

但是,跟蹤像素/跟蹤圖像並未顯示在Gmail電子郵件中。只有一個破碎的形象標誌,當我點擊來顯示圖像此鏈接打開

https://ci5.googleusercontent.com/proxy/l2xUKFGnNFKm64zEYmJhOcUmEJm15w9MC1txRRF01tpKlcL3t3O16aMJgbYQkucBySV0xV2T0EsCwikOAC0Z4em6uPzSs38lkHrYBvosRRAk14EfPoEXqC5JdLxRm8ToZmGSQqt_RwHCaBE_3uLgQDVEB05Rdtkq-Xzuw30=s0-d-e1-ft#https://www.example.com/tracking.php?order_id=1

其中指出谷歌的404:

谷歌404這是一個錯誤。

所請求的網址/代理/ l2xUKFGnNFKm64zEYmJhOcUmEJm15w9MC1txRRF01tpKlcL3t3O16aMJgbYQkucBySV0xV2T0EsCwikOAC0Z4em6uPzSs38lkHrYBvosRRAk14EfPoEXqC5JdLxRm8ToZmGSQqt_RwHCaBE_3uLgQDVEB05Rdtkq-Xzuw30 = S0-d-E1-FT並沒有在此服務器上找到。我們知道的就這些。

這似乎是一個問題,谷歌的代理不能讀取PHP腳本。 tracking.php和GIF-example.gif文件都擁有775個權限並且可以公開訪問。

在Hotmail上,這確實有效,所以它確實似乎是Google代理的問題。

有誰知道如何讓Google代理訪問此跟蹤像素嗎?

回答

1

我想出了答案:問題是與谷歌代理和問號?在https://www.example.com/tracking.php?order_id=1

的谷歌代理地址弄亂,因爲它已經有了一個問號,並導致了404

我決定用它代替https://www.example.com/tracking.php/order_id=1然後在tracking.php我沒有使用$_GET$_SERVER['REQUEST_URI']並解析了/order_id=字符串。

跟蹤像素出現在Gmail中,並在tracking.php腳本中進行跟蹤。

0

所有的頭文件都試圖強制瀏覽器下載文件並忽略它的文件類型(因爲你永遠不會說它是什麼文件類型)。要在瀏覽器中顯示圖像,您需要設置正確的標題。

這基本上是所有你需要做的:

$orderId = isset($_GET['order_id']) ? $_GET['order_id'] : null; 

if ($orderId) { 
    // Save stuff in your DB or how you want to log it. 
} 

header('Content-Type: image/gif'); 
echo file_get_contents('/absolute/path/to/image.gif'); 
exit; // Not really necessary, but just to make sure there's no more output. 
+0

感謝您的反饋。我實際上有頭('Content-Type:image/gif');在我的代碼中,但忘了在這裏添加它的問題。謝謝指出。但是:您建議的解決方案也不起作用。既不file_get_contents也不readfile。其代理圖片內容上的圖片和谷歌404相同。 – MrWeix

+0

如果您創建單獨的頁面並在其上放置相同的''標籤,會發生什麼情況?它對你有用嗎?或者它與服務器有關? –