Проблемы с отслеживанием пикселей и Gmail прокси

Я пытаюсь реализовать пользовательский пиксель отслеживания для писем, отправленных из WordPress.

Благодаря этим постам:

Отслеживание электронной почты с помощью PHP и изображений

Отслеживание электронной почты открывается с реальным изображением

и особенно

http://www.phpdevtips.com/2013/06/email-open-tracking-with-php-and-mysql/

Я смог реализовать основную идею.

Электронная почта загружает пиксель отслеживания через
<img src="https://www.example.com/tracking.php?order_id=1" width="100" height="100" />

и в tracking.php

$graphic_http =  'https://www.example.com/GIF-example.gif';

header('Content-Type: image/gif');
readfile( $graphic_http );

Открытие файла tracking.php в браузере открывает изображение в формате gif для загрузки.

Однако пиксель отслеживания / изображение отслеживания не отображаются в электронном письме Gmail. Там только сломанный логотип с изображением, и когда я нажимаю, чтобы показать изображение, открывается эта ссылка

https://ci5.googleusercontent.com/proxy/l2xUKFGnNFKm64zEYmJhOcUmEJm15w9MC1txRRF01tpKlcL3t3O16aMJgbYQkucBySV0xV2T0EsCwikOAC0Z4em6uPzSs38lkHrYBvosRRAk14EfPoEXqC5JdLxRm8ToZmGSQqt_RwHCaBE_3uLgQDVEB05Rdtkq-Xzuw30=s0-d-e1-ft#https://www.example.com/tracking.php?order_id=1

который заявляет Google 404:

Google 404. Это ошибка.

Запрашиваемый URL / прокси / l2xUKFGnNFKm64zEYmJhOcUmEJm15w9MC1txRRF01tpKlcL3t3O16aMJgbYQkucBySV0xV2T0EsCwikOAC0Z4em6uPzSs38lkHrYBvosRRAk14EfPoEXqC5JdLxRm8ToZmGSQqt_RwHCaBE_3uLgQDVEB05Rdtkq-Xzuw30 = s0-d-e1-фут не найден на этом сервере. Это все, что мы знаем.

Кажется, проблема в том, что прокси Google не может прочитать скрипт php. Файлы tracking.php и GIF-example.gif имеют права 775 и доступны для общего доступа.

На Hotmail это работает, так что, похоже, проблема с прокси Google.

Кто-нибудь знает, как позволить Прокси Google получить доступ к этому пикселю отслеживания?

5

Решение

Я разобрался с ответом: проблема была с Google Proxies и знаком вопроса? в https://www.example.com/tracking.php?order_id=1

Адрес прокси Google был испорчен, потому что у него уже был вопросительный знак, и в результате 404.

Я решил это с помощью https://www.example.com/tracking.php/order_id=1 вместо этого, а затем на tracking.php я не использовал $_GET но $_SERVER['REQUEST_URI'] и разобрал /order_id= Строка.

Пиксель отслеживания отображается в Gmail и отслеживается в сценарии tracking.php.

3

Другие решения

Все ваши заголовки пытаются заставить браузер загрузить файл и игнорировать его тип (так как вы никогда не говорите, какой это тип файла). Чтобы изображения отображались в браузере, необходимо установить правильный заголовок.

Это в основном все, что вам нужно сделать:

$orderId = isset($_GET['order_id']) ? $_GET['order_id'] : null;

if ($orderId) {
// Save stuff in your DB or how you want to log it.
}

header('Content-Type: image/gif');
echo file_get_contents('/absolute/path/to/image.gif');
exit; // Not really necessary, but just to make sure there's no more output.
0

По вопросам рекламы [email protected]