首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 實現郵件閱讀追蹤:1x1 圖片信標記錄 IP、時間、瀏覽器資訊

     編輯:PHP 相關知識

原理:Web Beacon / Tracking Pixel

在 HTML 郵件中嵌入 <img src="track.php?uid=xxx" width="1" height="1">。收件者開信載入圖片時,伺服器記錄請求資訊(IP、時間、User-Agent),再回傳 1x1 透明圖片,達到靜默追蹤效果。

完整追蹤腳本 track.php

<?php
// 關閉錯誤輸出,避免破壞圖片資料流
error_reporting(0);

// 回傳 JPEG 標頭
header('Content-Type: image/jpeg');
header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
header('Pragma: no-cache');
header('Expires: Thu, 01 Jan 1970 00:00:00 GMT');

// 1. 取得真實 IP(考慮代理)
$ip = $_SERVER['HTTP_CLIENT_IP']
    ?? $_SERVER['HTTP_X_FORWARDED_FOR']
    ?? $_SERVER['REMOTE_ADDR']
    ?? 'unknown';

// 2. 時間資訊
$time = time();
$date = date('Y-m-d H:i:s', $time);

// 3. 瀏覽器/郵件客戶端資訊
$ua = $_SERVER['HTTP_USER_AGENT'] ?? 'unknown';

// 4. 可選:識別收件者(從查詢字串取得)
$uid = $_GET['uid'] ?? 'anonymous';

// 5. 寫入日誌(生產環境建議用資料庫/Redis/日誌服務)
$logLine = sprintf(
    "[%s] uid=%s ip=%s ua=%s\n",
    $date, $uid, $ip, $ua
);
file_put_contents(__DIR__ . '/email_track.log', $logLine, FILE_APPEND | LOCK_EX);

// 6. 產生 1x1 透明 JPEG
$img = imagecreate(1, 1);
$white = imagecolorallocate($img, 255, 255, 255);
imagejpeg($img);
imagedestroy($img);
?>

郵件模板嵌入範例

<html>
<body>
  <h1>親愛的用戶,您好</h1>
  <p>這是測試郵件內容...</p>

  <!-- 追蹤像素:uid 為收件者唯一識別 -->
  <img src="https://yourdomain.com/track.php?uid=user123" width="1" height="1" alt="" style="display:none" />
</body>
</html>

進階功能擴展

功能實作方式
唯一追蹤 ID發信時產生 UUID,關聯收件者資料庫,track.php 解析 uid 更新閱讀狀態
地理位置IP 對應 GeoIP2 資料庫或 API(如 ipapi.co)解析國家/城市
裝置類型解析 User-Agent(Mobile/Desktop/Webmail),使用 ua-parser 庫
開信時間統計資料庫記錄 first_open_at, last_open_at, open_count
連結點擊追蹤郵件連結導向 redirect.php?url=...&uid=... 記錄後 302 跳轉
防重複計數同一 uid + IP + UA 在短時間內去重

隱私合規與限制

  • GDPR/個資法:需告知用戶並取得同意,提供退出機制
  • 郵件客戶端阻擋:Gmail、Outlook、Apple Mail 預設阻擋外部圖片,需用戶點擊「顯示圖片」才觸發
  • 代理/快取:Gmail 圖片代理會替換 IP 為 Google 伺服器 IP,無法取得真實用戶 IP
  • 純文字郵件:不支援 HTML 圖片,無法追蹤

現代替代方案

  • 郵件服務商 API:SendGrid, Mailgun, Amazon SES, Postmark 內建開信/點擊追蹤、Webhook 回調
  • 開源專案:Listmonk, Postal, Mautic 自架郵件行銷平台含追蹤功能
  • 像素追蹤服務:PixelTrack, OpenTracker 等專用服務

總結

1x1 圖片信標是經典郵件追蹤技術,實作簡單但受限於客戶端阻擋、代理 IP、隱私法規。生產系統建議直接使用成熟郵件服務商 API,獲得更準確、合規的追蹤數據。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved