0
不工作我tryed如果HTML電子郵件是通過將這樣的圖像打開跟蹤:PHP IMG電子郵件跟蹤即使IMG顯示在客戶
<img height="210px" width="210px" src="http://example.com/emailimg1/c00015.jpg" style="-ms-interpolation-mode: bicubic;">
而且我相信,如果顯示圖像那麼它必須從我的網絡服務器上下載。所以我addedd此行的.htaccess:
RewriteRule ^emailimg(.?)/(.*)$ emailTracker.php/$1
和emailTracker.php如下:
<?php
require_once'Zend/Loader/Autoloader.php';
Zend_Loader_Autoloader::getInstance();
include "../phpComp/trackEmail.php";
$url = $_SERVER['REQUEST_URI'];
$pieces = explode("/", $url);
$imgId = substr($pieces[1], -1);
$clientHash = substr($pieces[2],0, -4);
$imgFormat=substr($pieces[2], -4);
trackEmail($clientHash);
$filepath="img/email".$imgId.$imgFormat;
if (file_exists($filepath))
{
header("Content-type: image/jpeg");
header("Accept-Ranges: bytes");
header('Content-Length: ' . filesize($filepath));
readfile($filepath);
}
和trackEmail.php如下:
<?php
function trackEmail($clientHash)
{
date_default_timezone_set('Europe/Rome');
$date = date('Y-m-d H:i:s', time());
$dateDay = date('d-m-Y', time());
try
{
include_once '../absolute/myConnection.php';
$dbSvr = new Zend_Db_Adapter_Pdo_Mysql($connParams);
}
catch (Zend_Db_Adapter_Exception $e)
{
//*******debug**********->
$response=$e->getMessage();
//echo $response;
//*******debug**********<-
}
catch (Zend_Exception $e)
{
//*******debug**********->
$response=$e->getMessage();
//echo $response;
//*******debug**********<-
}
$data = array(
'clientHash'=>$clientHash,
'date'=>$date
);
$insertResult = $dbSvr->insert('emailAccess', $data);
}
catch (Zend_Exception $e)
{
//*******debug**********->
$response=$e->getMessage();
//echo $response;
//*******debug**********<-
}
}
這樣:
- 如果我從瀏覽器訪問我的地址http://example.com/emailimg1/c00015.jpg然後my mySql表正確記錄一個訪問;
- 如果我發送郵件,然後從eudora桌面,outlook.com從瀏覽器打開它,從Android的Outlook應用程序,然後從mySql記錄訪問。
我的問題是:
- 我做錯了什麼?
- 可能是郵件服務器(Zoho)下載img並將其嵌入到html郵件中,因此沒有客戶端正在下載它?
這是可以理解的。但實際上這裏發生的事情是img由客戶端顯示,但我的服務器不記錄對該文件的任何訪問。 –