2013-05-06 74 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代码以将图像显示为较大图像。或者更好,只需显示正常的图像。