为邮件提供动态图像的最佳方法

时间:2011-05-13 17:36:25

标签: email dynamic-image-generation

我想在电子邮件中表示动态图片。例如,使用给定的URL

<img src="http://myserver.com/index.php/user_key/thispagestate.jpg" />

我想根据服务器内的逻辑提供不同的图像。只有2到4个静态图像用于表示任何给定请求的结果。

我想到的两个选项是:

  1. 使用也许直接提供图像 imagecreatefromjpeg
  2. 或生成302重定向
  3. 看到每个请求将导致有限数量的图像之一,我认为重定向可能会节省我们的资源,并在用户端也使用缓存。每个请求的结果都会根据用户和时间而改变,也许使用重定向会对SEO或垃圾邮件过滤产生一些影响吗?

    您对最佳方法的看法将不胜感激

1 个答案:

答案 0 :(得分:2)

  

我想到的两个选项是:

     
      
  1. 使用
  2. 直接提供图像   
  3. 也许是imagecreatefromjpeg或   生成302重定向
  4.   

在这种情况下,我会选择#1,但因为它是静态图像,所以你只需使用:

header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
header('Content-Type: image/jpg'); // or image/png, etc.
echo file_get_contents($image_path); // where $image_path is the path to the image
exit;

代替。如果您尝试在静态图像上添加文本等操作,则只需要使用GD功能。

请注意,在此缓存中,我将其设置为缓存过期,因为URL将相同,但内容可能会更改。这可能会使缓存系统混乱。

  

看到每个请求都会产生   我有限数量的图像之一   以为重定向可能会节省   我们的资源和利用   缓存在用户端。

实际上反过来,因为同一个文件现在会有不同的内容。您希望他们每次都重新验证内容,以确保显示正确的图像。