2011-01-07 88 views
1

我想知道是否有可能服務於不同的圖像不支持GIF動畫特定的電子郵件客戶端。我知道可以使用PHP來動態生成圖像。檢測電子郵件客戶端與動態圖像

所以,如果有類似的用戶代理字符串可以在電子郵件客戶端發送到下載動態圖像即<img src="http://myserver.com/someimage.php" />那麼PHP可能不同的圖像發送到不支持GIF動畫的電子郵件客戶端的請求被讀取。

這是可能的還是有類似的工作,嗅探出動畫gif支持和提供替代圖像?

回答

1

好感謝profitPHP誰主張圖像記錄。我想出了下面的...

<?php 
// Find needle in User Agent Hay Stack 
$useragent = $_SERVER['HTTP_USER_AGENT']; 
$isLotus = strpos($useragent,'Lotus-Notes'); 
$isMsoffice = strpos($useragent,'MSOffice'); 

// Route request to supported image 
if ($isLotus === false && $isMsoffice === false) { 
    header('Content-type: image/gif'); 
    readfile('images/email-announcement_02.gif'); 
} else { 
    header('Content-type: image/gif'); 
    readfile('images/noAnim_02.gif'); 
} 
?> 

這會發現,不支持.GIF動畫的Lotus Notes或MS Outlook版本。您可以將讀取文件更改爲您自己的本地文件。

我已經在Outlook 2001-2010和蓮花筆記6-8上測試了這一點,它將合適的圖像提供給適當的版本。

3

開始測試它。啓動一個不支持它的客戶端,將自己的消息發送給自己,並查看HTTPD日誌。你可能必須根據具體情況編碼。

+0

曾經做過這樣的事?您是否有資源可以諮詢用戶代理檢測? – bgreater 2011-01-07 21:42:03

+0

,使圖像標記在電子郵件點http://yourserver.com/imagelogger.php。在該腳本中,將$ _SERVER變量記錄到日誌文件中,查看獲得的結果。您也可以檢查Apache/IIS日誌,並以這種方式獲取關於請求的一些信息。 – profitphp 2011-01-07 21:48:07

-1

我從來沒有聽說過電子郵件客戶端不會支持GIF動畫,除非是因爲大小的原因。

我的理解是,您可以將兩種類型的圖像放入電子郵件中。第一個是附加圖像,在該圖像中,您將圖像與電子郵件一起作爲電子郵件的一部分。第二個是你從網站引用圖像的外部圖像。

我想你想看什麼是發送MIME郵件。如果你的谷歌PHP MIME你會想出很多結果。

基本上,這將允許您發送一個電子郵件,根據客戶端的能力在不同的部分。根據經驗,我發送了只有html和文本的MIME電子郵件。由於某些電子郵件客戶端不接受HTML郵件。

我希望這給你一些方向。

相關問題