使用动态映像检测电子邮件客户端

时间:2011-01-07 21:05:36

标签: php email detection animated-gif

我想知道是否可以为不支持GIF动画的特定电子邮件客户端提供不同的图像。我知道可以使用PHP动态生成图像。

因此,当电子邮件客户端发送下载动态图像的请求即<img src="http://myserver.com/someimage.php" />时,可以读取用户代理字符串等内容,那么php可以向不支持的电子邮件客户端发送不同的图像GIF动画。

这是可能的,还是有类似的工作来嗅出动画gif支持并提供替代图像?

3 个答案:

答案 0 :(得分:3)

开始测试它。启动不支持它的客户端,向自己发送有问题的消息,然后查看HTTPD日志。您可能需要根据具体情况对此进行编码。

答案 1 :(得分: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版本。您可以将readfile更改为您自己的本地文件。

我在Outlook 2001-2010和lotus Notes 6-8上测试了它,它为适当的版本提供了适当的图像。

答案 2 :(得分:-1)

我从来没有听说过一个不支持GIF动画的电子邮件客户端,除非出于尺寸原因。

我的理解是,您可以将两种类型的图像放入电子邮件中。第一个是附加图像,您可以使用电子邮件将图像作为电子邮件的一部分发送。第二个是外部图像,您可以在其中引用网站上的图像。

我认为您要查看的是发送MIME电子邮件。如果你是google php mime,你会得到很多结果。

基本上,这将允许您根据客户端的能力发送一个位于不同部分的电子邮件。根据经验,我发送了仅包含html和文本的MIME电子邮件。因为某些电子邮件客户端不接受HTML消息。

我希望这会给你一些指导。