Php 用动态图像检测电子邮件客户端

Php 用动态图像检测电子邮件客户端,php,email,detection,animated-gif,Php,Email,Detection,Animated Gif,我想知道是否有可能为不支持动画GIF的特定电子邮件客户端提供不同的图像。我知道可以使用PHP动态生成图像 因此,如果在电子邮件客户端发送下载动态图像的请求(即)时可以读取用户代理字符串之类的内容,那么php可以向不支持动画GIF的电子邮件客户端发送不同的图像 这是可能的,还是有类似的方法可以嗅出动画gif支持并提供替代图像?开始测试吧。启动不支持它的客户端,向自己发送有问题的消息,并查看HTTPD日志。您可能需要根据具体情况编写此代码。我从未听说过电子邮件客户端不支持动画GIF,除非可能是出于大

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

因此,如果在电子邮件客户端发送下载动态图像的请求(即
)时可以读取用户代理字符串之类的内容,那么php可以向不支持动画GIF的电子邮件客户端发送不同的图像


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

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

我从未听说过电子邮件客户端不支持动画GIF,除非可能是出于大小原因

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

我想你要调查的是发送一封MIME电子邮件。如果你用谷歌搜索php mime,你会得到很多结果

基本上,这将允许您发送一封电子邮件,根据客户的能力分为不同的部分。根据我的经验,我曾发送过仅为html和文本的MIME电子邮件。因为有些电子邮件客户端不接受html消息


我希望这能为您提供一些指导。

好的,感谢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更改为自己的本地文件


我已经在Outlook2001-2010和LotusNotes6-8上对此进行了测试,它为适当的版本提供了适当的映像

Outlook 2007和2010不支持动画GIF。(我相信LotusNotes6和LotusNotes7都没有)做过这样的事情吗?您是否有我可以参考的资源,用于开始用户代理检测?请将电子邮件中的图像标记指向。在该脚本中,将$\u服务器变量记录到一个日志文件中,查看得到的结果。您还可以检查Apache/IIS日志,并通过这种方式获得有关请求的一些信息。