Сервис Интернет Объявлений

 
21
Май
2013

Как проверить, открыл ли адресат ваш е-мейл. Аудит-пиксель своими руками




аудит-пиксель. статистика открываемости писемСитуация: Вы отправляете е-мейл получателю. Или делаете рассылку своим подписчикам. И хотите знать, открывалось ли письмо вообще? Опустим функцию принудительного уведомления, т.к. с ней все ясно, и она не всегда работает.

Обратим внимание на реальные способы, которые используются системами рассылки писем. А их аж два:

  1. регистрация активности (мониторинг кликов по ссылкам внутри письма);
  2. использование аудит-пикселя.

По первому пункту: надеюсь, все ясно. каждая ссылка снабжается фрагментом GET-запроса. Сайт-акцептор обрабатывает запрос и дальше делайте, что хотите с ним.

А теперь расскажу подробнее об аудит-пикселе.  Это такая картинка в один пиксель. Работает как счетчик. Когда она загружается с вашего сервера, происходит регистрация ее загрузки: значит письмо открыто! У этого способа есть недостаток: если получатель предпочел не загружать картинки, то счетчик не сработает. Вы можете либо в текстовом варианте попросить юзера загрузить картинки, либо через картинки показать все письмо. И тогда его открытие без картинок равносильно отсутствию открытия вообще. Ведь пользователь ничего не увидел и не узнал о вас.  Зачем он такой нужен в статистике открываемости?

Поэтому я не считаю аудит-пиксель большим недостатком. Других инструментов пока не изобрели. Поэтому расскажу, как сделать самый простой на языке PHP. Мне это необходимо было для собственных писем в Сервисе Интернет Объявлений onboard.net.ua, над которым я активно работаю последние полгода.

Так вот, о пикселе… Фактически это не картинка, а PHP-код, возвращающий картинку и получающий GET-запрос. Код такого пикселя выглядит следующим образом:

counter.php

<?php

header('Content-Type: image/gif');
echo base64_decode('R0lGODlhAQABAJAAAP8AAAAAACH5BAUQAAAALAAAAAABAAEAAAICBAEAOw==');

if ($_GET[counter_id]){

//тут идет действие при открывании картинки
//например, запись в БД или файл параметра counter_id

}

?>

Строка base64_decode(…) как раз рисует прозрачную гифку 1х1.

Использовать этот файл очень просто. В письме, где хотим вставить картинку, пишем код:

<img src="counter.php?counter_id=ВАШ_АЙДИ">

Все просто: При вызове этой картинки срабатывает counter.php и делает все секретные делишки.

 

 

Кстати, если Вы не хотите, чтобы кто-либо из окружающих заметил Вас в процессе написание подобных счетчиков, тогда поставьте наконец-то межкомнатные двери недорого. Множество расцветок, фактур и фурнитур. Есть даже стальные, крепкие. А также все сопроводительные услуги по установке.

16
Май
2013

Мастер-класс Adobe Creative Days уже скоро

Друзья!
30-го мая состоится мастер-класс Adobe Creative Days, на котором ведущие специалисты расскажут о новейших разработках компании и поделятся секретами работы с мини-приложением jQuery UI, функцией Link & Locate, конструктором CSS и другими фишками. Билет на мероприятие стоит 1500 рублей, но мы предлагаем вам получить его бесплатно, победив в забавном конкурсе «Креативный подход к невыполнимой задаче».
Нужно выбрать одно из невыполнимых заданий от удивительных клиентов и как-нибудь выполнить его. Затем до 26-го мая выслать получившуюся картинку по адресу natalia_s@bumanmedia.ru.
Задания на ваш выбор:
— «Я вижу этот лого — как монолитную иллюстрацию, например, медведя перетекающего в матрешку, а матрёшку, перетекающую в балалайку»
— «Над столом летает Карлсон. Карлсон а-ля грузин! С черными бровями, усами или бородой, в кепке кавказской »
— «Нужно нарисовать Фредди Крюгера, чтобы он был смешным и на лезвиях у него были колбаски (сосиски), которые он красиво должен есть».
Подробности о мастер-классе — http://www.adobecreativedays.com/ru
За сложные задания спасибо clientsfromhell.ru

А за рекламу и продвижение в ТОП поисковиков спасибо рекламному комитету Астрахани. Товарищи знают толк в качественной рекламе сайтов.

23
Апрель
2013

Начальный аттестат Webmoney нахаляву

Я принимаю WebmoneyВот я и получил начальный аттестат Webmoney.  В отличие от формального, он позволяет организовывать настоящие формы приема вебмаников на своем сайте. Получил я его нахаляву, в обход аттестованных представителей и уполномоченных, которые просят за это ничем не обоснованную сумму денег.

Как же получить начальный аттестат Webmoney совершенно бесплатно украинскому пользователю?

Все очень просто. Кто внимательный и читает новости Вебмани, тот сам найдет ответ. А для вечноторопящихся граждан я расскажу как в этом очерке.

Для начала нужно иметь какую-либо сумму на своем кошельке. Пусть это будет 50 гривен + комиссионные.

Далее мы заказываем вывод средств через систему «СОФТ», «Аваль-Экспресс» или «Быстрые деньги».  Лично я выводил через первую в одном из отделений UniCredit Bank. для вывода сперва заполняете все данные на сайте вебмани. А затем получаете СМС, идете в банк и заполняете форму-бланк. В моем случае я не располагал всеми данными, но служащий отделения банка оказалась очень любезна (!) и помогла (!!!) заполнить форму.

Согласно условий, начальный аттестат выдается автоматически по прошествии 2 месяцев после транзакции.  При условии, что все паспортные данные указаны правильно и честно.

Ровно через два месяца я напомнил «хозяевам», что они должны мне аттестат. И они любезно сказали «ждите». И таки сдержали слово. На кипер пришло несколько сообщений: отправить копию паспорта, акцептировать договор.

И вот, долгожданное сообщение:

Уважаемый участник системы WebMoney Transfer!
На основе данных, сообщенных Вами при пополнении кошелька Вашего WMID#…, центр аттестации системы WebMoney Transfer выдал Вам начальный аттестат.

Приятно. Теперь осталось разобраться с внедрением формы, все протестировать и установить где следует.

 

Между прочим, Вы знаете что должно прилагаться к дневнику по практике менеджмента? Кликайте и получайте помощь высококвалифицированных специалистов в заполнении дневника по преддипломной практике менеджера. И это все с протоколом заседания!

А для безопасности, красоты и удобства рекомендую ворота, которые можно лицезреть на сайте http://евроворота56.рф/garage_gates. Ворота обладают повышенной долговечностью, классным дизайном и эргономикой. А главное, они сохранят ваш автомобиль в сохранности.

29
Январь
2013

Параллельные (фоновые) процессы в PHP

Фоновое, параллельное, многопоточное и т.д. выполнение процессов в PHP нужно в том случае, когда процесс достаточно длительный, а пользователь торопливый, и ждать выполнение процесса не собирается.

Второе применение — системные ответы платежным системам об успешности операции. В данном случае при длительной обработке запроса (записи в БД, отправка письма, СМС…), удаленный сервер может и не дождаться своевременного ответа (в виде сгенерированной страницы) и свалиться в таймаут.

Порывшись в интернетах и перебрав массу вариантов, я пришел к следующему решению.

Берем функцию:

function launchBackgroundProcess($call,$file=false,$errors=false)
{
      if (PHP_OS == 'WINNT' || PHP_OS == 'WIN32')
      {
      $handle=popen('start /MIN '.$call, "r");
      if($handle===false)
      trigger_error("Can't start process $call",E_USER_ERROR);
      else pclose($handle);
      }
      else{
      $add = "";
      if($file===false){
      $file = '/dev/null';
      }
      if($errors!==false){
      $add = " 2> ".$errors;
      }
      exec($cmd = ($call.' > '.$file.$add.' &'));
      }
}

И обращаемся к ней:

launchBackgroundProcess('wget http://yoursite.com/yourfile.php');

В файле http://yoursite.com/yourfile.php находятся все хроноемкие процессы, которые нужно выполнить в фоне, но результат которых уже не будет возвращен в сформированную страницу.
Причем, можно передавать GET-параметры:

launchBackgroundProcess('wget http://yoursite.com/yourfile.php?param1=val1');

Учтите, что функция exec() очень часто пребывает в отключенном состоянии из-за режима безопасности на вашем хостинге. Если не работает — пишите в саппорт.

09
Январь
2013

PHP, SMTP и BCC. Отправка почты Гугла через PHP.

Итак, столкнулся с проблемой быстрой отправки электронной почты средствами PHP.
Встроенная функция mail() работает и вроде-бы не теряет письма. Но задержки с отправкой оставляют желать лучшего, т.к. среднее время доставки составляет около 2 минут.
Согласитесь, за две минуты пользователь может подумать, что сайт не работает и просто уйти. А когда все-таки получит уведомление (и если оно не попадет в СПАМ), то вряд ли вернется и продолжит работу.

В таких случаях нужно пользоваться отдельным SMTP сервером для быстрой и качественной отправки. Можно даже воспользоваться платными сервисами СМС-рассылок, но здесь я буду рассматривать именно бесплатный вариант. А конкретнее — почту от Google.

Эксперименты по отправке почты с SMTP я ставил на Google Apps, предварительно повесив на него один из своих доменов. Бесплатная версия позволяет зарегистрировать до 10 корпоративных почтовых ящиков вида myname@mydomain.com. Почту можно отправлять с каждого из этих ящиков, отправителем будет именно тот ящик, с которого отправили. Кое-кто считает это недостатком отдельного SMTP-сервера. Но мне и не нужно указывать произвольного отправителя. Поэтому регистрируем «красивый» е-мейл и продолжаем кодить.

Для отправки писем через PHP и гугловский SMTP я использовал компонент PEAR.
По этой теме уже многое исписано, дублировать здесь я не намерен.

От себя добавлю ту инфу, которую не так просто нарыть: правильную отправку скрытого письма BCC (blind carbon copy).

Кое-кто советует в массиве $headers прописать элемент BCC. Но мои эксперименты показали, что это не работает.

Выход: нужно создать массив получателей.

Например, так:

$recipients[«To»] = $to;

$recipients[«Bcc»] = $bcc;

А отправку производить следующим образом:   $mail = $smtp->send($recipients, $headers, $message);

Только в такой комбинации я отправил письмо получателю и сохранил резервную копию на теневом ящике.

Вот и все, о чем я хотел сказать в рамках этого Очерка.

А на заметку владельцам легендарных Крайслеров рекомендую полезную ссылку http://www.g-parts.ru/chrysler/ , посвященную ремонту, обслуживанию и диагностике этих американских каров.

 

 

 

04
Январь
2013

Полезное: регулярки

Буквально вчера столкнулся с необходимостью сформировать внешний PHP-массив из Экзелевского столбца чисел. Чисел было достаточно много.
Кто не вкурсе — объясняю. PHP-массив должен быть записан в формате
«число1″,
«число2″,

«число n»

В исходном варианте у меня не было кавычек и запятых.

Что делать? Ведь чисел много. Проставлять ручками все это = себя не уважать.

Выход: регулярные выражения.

Открываем Notepad ++ и вставляем туда исходный столбец.

Далее заходим Search — Replace и ставим селектор на Regular expression.
Сперва проставим кавычки.
В поле Find what пишем выражение (.+) , а в Replace with — «\1″ .
Давим Replace all. Вуаля: каждая строка обрела свои кавычки.

Далее простановка запятых.
В поле Find what пишем \n или \r , а в Replace with — ,.
Если все сделано правильно, то после каждого значения, после закрывающейся кавычки появится запятая.

Вот такая несложная регулярка способна сохранить нам массу времени, обеспечить хорошее настроение и продлить здоровье.

Но если Вам этого покажется маловато, тогда рекомендую выполнить тюнинг Тойота прадо 150 у настоящих профессионалов. Тогда уж точно настроение выше крышы!

04
Декабрь
2012

MYSQL: меняем несколько столбцов местами

Периодически возникает необходимость подвигать столбцы таблицах SQL. Это актуально, когда нужен определенный порядок вывода элементов массива, полученных из таблиц базы данных. Либо Вам просто нужно получить заголовки столбцов в определенном порядке.
В панели управления MySQL вручную перетаскивать столбцы пока невозможно.
Но это можно сделать «ручками» через команды.
Переходим на вкладку SQL и пишем

ALTER TABLE `mytable`
MODIFY COLUMN `name` VARCHAR(255) NOT NULL AFTER `telephone`,
MODIFY COLUMN `surname` VARCHAR(255) NOT NULL AFTER `name`,
MODIFY COLUMN `company` VARCHAR(255) NOT NULL AFTER `surname`;

Эта команда построит вряд столбцы name, surname, company в аккурат после столбца telephone в таблице mytable.

Учтите: названия таблиц и колонок заключаются в обратную кавычку (расположена на Ё). При больших объёмах перемещений вся процедура может затянуться. При этом БД будет времено недоступна.

21
Октябрь
2012

Создание заготовок и дизайнов e-mail писем на HTML

дизайн шаблона html письмаВсем привет
Вчера стал вопрос об автоматической отправке писем посредством PHP.

На тему PHP-отправки сказано уже очень много, Гугл точно знает. Я лишь остановлюсь на дизайне e-mail письма.

Письма обладают архаичной HTML-структурой, базирующейся на таблицах. Поэтому никаких div’ов и css’ов. Только таблицы и инлайн-стили.

В Интернете есть статьи на тему ручного создания заготовок-темплейтов под письма. Там же перечисляются рекомендации, ограничения , условия использования и прочая ерунда.

Но готовых шаблонов писем мне так быстро найти не удалось.
Зато наткнулся на один зарубежный сервис, специализирующийся на рассылке писем. В его Веб-интерфейсе по адресу campaignmonitor.com/gallery/ можно найти действительно привлекательные шаблоны писем. Для использования шаблонов можно скопировать их в тело PHP-кода и вручную вписать нужный текст.

Можно поступить другим путем: зарегистрироваться на этом сайте. После регистрации Вы сможете создавать письма, выбирать шаблоны и дизайн. Также сможете формировать списки рассылок и так далее. Но, честно сказать, интерфейс сайта мне не понравился. Как по мне, он очень запутанный, отсутствует легкость, свобода и интуитивность.

Более того, сайт вашей панели и главный сайт находятся на разных доменах и я не обнаружил ссылок друг на друга. Поэтому в закладках у себя придется держать два сайта: сайт панели и сайт с заготовками.

Возможно, в будущем я и разберусь с возможностями рассылки Campaignmonitor, но это будет не сегодня. Ведь я пришел за шаблончиком, над которым сейчас и работаю :)

Кстати, если Вам необходимо разместить объявление по Москве, могу предложить хороший сайтец Dorus.ru. Особенно меня порадовало оформление сайта и его шапки, конкретика и недвузначность рубрик, а также возможность смены регионов.
С другой стороны, администраторы доски могли бы позаботится об удобстве подачи: ниспадающий список выбора рубрик — это очень неудобный вариант. Ведь Вам нужно прокручивать список, видимая область которого очень мала. Благо, подать объявление можно из нужной рубрики, предварительно изучив предложения конкурентов… или будущих партнеров.

14
Октябрь
2012

Аккумуляторы BTY. — Дайте мне БТР!

китайские аккумуляторыНе прошло и полгода, как испортился мой фотоаппарат из-за потекших брендовых батареек Duracell.
Ранее я использовал аккумуляторы GP, которые оказались дорогими и отстойными. Больше всего доставало, когда один из четырех аккумуляторов выходил из строя, убивая работоспособность всей системы источников питания.
Еще юзал аккумы от Sony. В принципе, терпимо. Но не вспомню, куда я их потерял.

Недавно узрел на Ебае недорогие китайские аккумуляторы BTY 3000 по смешной цене, порядка 8 долляров за 12 штук. Доставка бесплатная. Хотя шли они больше месяца. Я не ждал от них чего-то выдающегося. Но и того, что получил также не ждал.

С первого прикосновения и осязания я понял: что-то здесь не чисто. Уж больно они легкие на подъем.
Процесс зарядки также протекал очень быстро. Каждому аккумулятору понадобилось порядка 20 минут чтобы полностью заправиться.

Но так как выбор сделан и любопытство донимало, решено было идти в бой. И я взял дюжину этих «патронов» с собою в Крым. Фотоаппарат — старичок Canon S3 IS.

Комплекта этих чудо-мега-емкостных аккумов хватило на снимков 50, не более. Во время похода на Аю-Даг приходилось производить замену комплекта. Хотя иногда помогала простая перестановка элементов питания между собой.

В качестве выводов могу сказать следующее:

  • BTY — типичный Китай для лоха. Но очень дешевый. Годится для комплектации продуктов, которые должны идти с аккумуляторами. Считай такой себе демо-аккумулятор
  • Если и буду покупать себе фотик — буду выбирать со встроенным Литий-Ионным или Литий-Полимерным аккумулятором. Его заряд легче отслеживать, он и сам легче при тех же параметрах.
  • Продавцу поставил нейтрально-отрицательный отзыв. За неправдивое описание товара. Так емкость этих аккумуляторов ну никак не дотягивает до 3000mAh. Кстати, на самих аккумуляторах о mAh вообще ничего не говорится. Там просто написано BTY — 3000. И думай, что хош. Я быотделил дробную часть перед последним нулем: 300,0mAh. Напомнило мощность на магнитофонах, измеряемую в PMPO или RMS.

И на последок: Продавайте или покупайте товары через доски объявлений. Вы уже сейчас можете подать бесплатное объявление в Тамбове при помощи компьютера, Интернета и фантазии. Рекомендую это сделать как можно быстрее, но не раньше, чем Вы ознакомитесь с правилами написания и подачи объявлений.

13
Октябрь
2012

Совет вечера: почему не работает <body onload=…()> и как это лечить

Задача: надо организовать автоматический запуск джаваскрипта при загрузке страницы.
Вы уже прочли о том, что можно его тупо вписать в через onload.

Например, имеем простой скрипт подсчета символов в текстовом поле

<script type="text/javascript">		
            function countChar() {
                //подсчет символов в теле объявления
               var input_1 = document.getElementById("input_1");
               text_out.innerHTML = "Введено символов: " +  input_1.value.length;
            }
</script>

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

Пишем:

<body onload="countChar();">

Должно работать сразу.
Но бывают проблемы, которые можно решить задержкой исполнения джаваскрипта.

Пишем:

<body onload="setTimeout('countChar()',101)">

101 — это задержка, которую можно регулировать под себя.
В результате получаем рабочий скрипт.

Если же выполнение скрипта не началось, возможно, у вас присутствуют конфликты библиотек и прочие неприятности. В любом случае, если скрипт выполняется по событию (onclick), то работать должен и в случае onload.

А чтобы вы не скучали при всей этой процедуре, рекомендую скачать Сумерки Сага Рассвет Часть 2 и включить в плеере в соседнем окошке. Да не достанут вас вампиры :)