4

我正在考虑将电子邮件跟踪添加到我为小型客户企业构建的 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'>";
?>
4

2 回答 2

6

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

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

do_all_your_tracking_stuff();

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

于 2012-12-22T05:21:48.460 回答
-1

简单的谷歌搜索会工作......

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

你真的只需要使用你的直觉:你在图像标签中链接到什么?您链接到图像源。实际的图像文件。你在代码中做什么?将 HTML 代码与另一个图像源相呼应。但是客户端浏览器期待的是图像,而不是更多的 HTML 代码。

于 2012-12-22T05:20:59.040 回答