2013-05-06 71 views
3

我有一個通訊系統,可以跟蹤讀取它的人。雖然此功能只在授權下載圖像時才起作用。但目前這不是我的問題。通訊跟蹤圖像Outlook

我的問題是,當我在Outlook(2010)中打開一個新聞稿並授予下載圖像的權限時,我的系統不會註冊該視圖。但是,當我在gMail中打開相同的時事通訊時,它沒有任何問題。即使當我使用Outlook將電子郵件保存到HTML文件並打開此文件時,也會註冊一個新視圖。保存視圖並呈現1x1圖像的頁面不會返回任何錯誤,並且可以在Apache日誌中找到任何錯誤。

奇怪的是,它仍然工作到一個星期前。但是,即使我把代碼的備份,它仍然無法正常工作....

圖片網址是建立與編碼的base64字符串,例如: http://domain.com/tracker/eyJtYWlsaW5nSWQiOiI4MjQiLCJjb250YWN0SWQiOjM3MzA5LCJjaHVuayI6ImIyYmNiNzhkNjAyMmVmNzQ0NmM4ZDA0YzU1ZGZhMTY0In0=/ 在這種編碼字符串,我有一個包含通訊ID,聯繫人ID和MD5字符串的JSON字符串,用於驗證數據。

我運行的想法如何解決或調試此問題。有沒有人有提示或更好的解決方案? :)它可能是微軟更新Outlook以防止它下載這種圖像?

回答

0

我只是碰巧解決了這個問題。原因似乎相當簡單,但很難發現。

保存有關用戶的數據時,我還請求了用戶代理。在數據庫中,我有一個varchar(255)字段用於此信息。但是,用戶代理Outlook證明超過255個字符。所以這導致了數據庫的錯誤信息,所以沒有生成圖像。

0
  1. 檢查,如果您要發送正確的MIME
  2. 我建議使用URL例如擴展:.png和.jpg
  3. 嘗試不同的領域。
+0

有關代碼的更多詳細信息,請參閱我的其他答案。無法獲得此評論字段中的代碼塊:) – 2013-05-14 12:44:20

+0

檢查文件編碼。使用物料清單的UTF8時,我的錯誤太多了。我總是確保「沒有BOM的UTF8」。你能發佈服務器發送的頭文件嗎? – 2013-05-14 12:51:57

+0

德響應頭: 緩存控制:無緩存,必重新驗證 連接:保持活動 內容編碼:gzip 的Content-Length:99 內容類型:圖像/ PNG 日期:太陽,19 2013年5月07:21:02 GMT 到期時間:星期六,1997年7月26日05:00:00 GMT Keep-Alive:timeout = 1,max = 100 Pragma:no-cache 服務器:Apache/2 Vary:Accept -Encoding,User-Agent 我也發現它可能與Outlook和IE的組合有關。一位同事擁有Outlook 2012和IE8,我可以跟蹤他的數據。我有IE10和Outlook 2012,我的電子郵件無法跟蹤。我也無法從Outlook保存跟蹤圖像。 Outlook狀態爲inval。 IMG – 2013-05-19 07:24:16

0

這是產生圖像的代碼:

header('HTTP/1.0 200 Ok');      
header("Content-type: image/png");      

$trackerImage = imagecreate(1, 1); 
$bgColor = imagecolorallocate($trackerImage, 255, 255, 255); 
imagepng($trackerImage); 
imagedestroy($trackerImage); 

這總是2個星期前一直工作到服務器的硬件崩潰...託管公司claimes任何已更改爲服務器配置。

我已經嘗試向圖像路徑添加一個提示,但這對Outlook沒有什麼影響。

0

嘗試設置HTML代碼以將圖像顯示爲較大圖像。或者更好,只需顯示正常的圖像。