跟踪电子邮件打开时会显示真实图像

时间:2012-12-22 05:17:18

标签: php image email tracking

我正在尝试将电子邮件跟踪添加到我为小型客户业务构建的Web服务中。我正在计划进行嵌入式图像解决方案(参考我服务器上的图像) - 除非其他人有更好的方法 - 但当我使用引用我的服务器上的PHP页面的图像标记时,它会加载“破坏”图像“图标。如何将其设为有效图像?

以下是邮寄PHP页面的代码:

<?php
   $body = "<html>Hello there!".
    "<img src='http://mysite.com/track.php?name=bob' />".
    "</html>";

    $subject = "Tracking on ".date('Y-m-d H:i:s');

    $headers  = 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
    $headers .= 'From: webmaster@mysite.com' . "\r\n";

    mail('my_email@gmail.com',$subject,$body,$headers);
?>

以下是跟踪代码:

<?php
   include('database_connection.php');
   $query = "INSERT INTO tracking SET name='".$_GET['name']."', date=NOW()";
   mysql_query($query);

   // Tried this, but it doesn't work:
   echo "<img src='http://mysite.com/photos/image.jpg'>";
?>

2 个答案:

答案 0 :(得分:6)

如果您打算使用这样的PHP脚本,则需要返回图像数据,而不仅仅是HTML图像标记。最简单的方法就是:

<?php
header("Content-Type: image/jpeg");
readfile("image.jpeg");

do_all_your_tracking_stuff();

请注意,这是首先返回图像数据,以便邮件客户端可以立即开始显示它,而不是等待SQL查询完成。

答案 1 :(得分:-1)

简单的谷歌搜索会有效...

header('Content-Type: image/jpeg');
readfile('path');

你真的只需要用你的直觉:你在图像标签中链接到什么?您链接到图像源。实际的图像文件。你在代码中做了什么?使用其他图像源回显HTML代码。但是客户端浏览器需要一个图像,而不是更多的HTML代码。