我正在考虑将电子邮件跟踪添加到我为小型客户企业构建的网络服务中。我打算做嵌入式图像解决方案(参考我服务器上的图像) - 除非其他人有更好的方法 - 但是当我使用图像标签引用服务器上的 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: [email protected] /cdn-cgi/l/email-protection' . "\r\n";
mail('[email protected] /cdn-cgi/l/email-protection',$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'>";
?>
如果你要使用这样的 PHP 脚本,它需要返回图像data,而不仅仅是 HTML 图像标签。最简单的方法是这样的:
<?php
header("Content-Type: image/jpeg");
readfile("image.jpeg");
do_all_your_tracking_stuff();
请注意,这首先返回图像数据,以便邮件客户端可以立即开始显示它,而不是等待 SQL 查询完成。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)