Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Śledzenie otwarcia mail'a
Forum PHP.pl > Forum > PHP
gregi1
Mam pytanie czy można w jakiś sposób i w prosty sposób napisać jakiś skrypcik sledzący otwarcie maila?

Od czasu do czasu robie wysyłki mailingów, z darmowych programów do tego typu zadań, ale chciałbym także sledzić ile osób otworzyło taki mail. Grafiki ładowane są do maila z serwera, czy w związku z tym, można jakoś sledzić liczbe otwarć maila? Np. np. doklejając coś do linka, albo tworząc tzw. piksel sledzący wyświetlenia, albo może jest inny sposób?

Mam za małą bazę i dla mnie jest to nie opłacalne aby korzystać z usług firm wysyłających mailingi (bo wtedy miałbym całe statystyki).

Czy jest jakiś sposób?
erix
Nie ma 100% sposobu - wiele klientów mailowych blokuje domyślnie obrazki z zewnątrz, a o skryptach nie wspomnę.
byqu
Cytat
piksel sledzący wyświetlenia
Myślę, że antywirusy potraktują to jako wirusa/trojana i może zaskutkować oznaczeniem wiadomości jako SPAM.
Cytat
Grafiki ładowane są do maila z serwera,
Przy dużej liście mailingowej nie będzie to "lekkie" rozwiązanie, ale możesz adresy grafik konstruować w taki sposób:
Kod
http://serwer/grafika.php?id=231&email=uzytkownik@domena&id_wiadomosci=123

Najpierw zapisywać gdzieś e-mail, w którym wiadomość została utworzona, a potem wg ID zwracać odpowiedni obrazek.
Najlepiej wydaje mi się, że będzie to przechowywać w bazie SQL, bo łatwo można zapobiec powielaniu wpisów dla tej samej wiadomości i e-maila przy otworzeniu jej kilka razy, wystarczyłoby zastosować klucz UNIQUE dla tych dwóch pól.
Nie wiem, czy nie będzie problemu z znakiem "@" w adresie e-mail, ale w razie czego można go na coś zamieniać, albo nawet szyfrować cały adres swoim kluczem i odszyfrowywać po stronie serwera.

Aktualizacja:
Cytat
Nie ma 100% sposobu - wiele klientów mailowych blokuje domyślnie obrazki z zewnątrz, a o skryptach nie wspomnę.
Stu procentowego nie, ale jeżeli kogoś zainteresuje e-mail i go przeczyta, to zapewne kliknie "pokaż obrazki", czyli wynik będzie dosyć adekwatny do realiów.
gregi1
Cytat(byqu @ 31.12.2009, 11:39:09 ) *
Myślę, że antywirusy potraktują to jako wirusa/trojana i może zaskutkować oznaczeniem wiadomości jako SPAM.
Przy dużej liście mailingowej nie będzie to "lekkie" rozwiązanie, ale możesz adresy grafik konstruować w taki sposób:
Kod
http://serwer/grafika.php?id=231&email=uzytkownik@domena&id_wiadomosci=123

Najpierw zapisywać gdzieś e-mail, w którym wiadomość została utworzona, a potem wg ID zwracać odpowiedni obrazek.
Najlepiej wydaje mi się, że będzie to przechowywać w bazie SQL, bo łatwo można zapobiec powielaniu wpisów dla tej samej wiadomości i e-maila przy otworzeniu jej kilka razy, wystarczyłoby zastosować klucz UNIQUE dla tych dwóch pól.
Nie wiem, czy nie będzie problemu z znakiem "@" w adresie e-mail, ale w razie czego można go na coś zamieniać, albo nawet szyfrować cały adres swoim kluczem i odszyfrowywać po stronie serwera.

Aktualizacja:
Stu procentowego nie, ale jeżeli kogoś zainteresuje e-mail i go przeczyta, to zapewne kliknie "pokaż obrazki", czyli wynik będzie dosyć adekwatny do realiów.


Zastanawiam się dlaczego antywirusy mialyby traktować piksel jako trojan, tak naprawde myslalem o tym aby do kreacji mailingu ladowac grafike o rozmiarze 1x1 px przezroczysta i zliczac przy jej pomocy wyswietlania maila, tylko problem jest taki jak sie zabezpieczyc przed tym czy ktos dwa razy nie pobral grafiki, no a ze nie jestem zaawansowanym programista w jaki sposob zliczac wyswietlenia tej grafiki.
byqu
Zrozumiałem piksel w innym sensie - zmodyfikowanie grafiki tak, żeby w niej samej zawierał się skrypt, który połączy się z Twoim serwerem.
W takim przypadku można i tak.
Jak już mówiłem, ustawiasz klucz UNIQUE dla pola email i id_wiadomosci w tabeli z wczytaniami obrazka i automatycznie nie ma już tego problemu.
wookieb
A może najpierw zacznijmy od kwestii prawnej i moralnej takiego "sprawdzania".
Użytkownik SAM powinien decydować czy serwis powinien być informowany o tym, że użytkownik otworzył e-maila.
Jeżeli nie ma takiej możliwości to użytkownik powinien być o tym JAWNIE poinformowany.
Po 3 wszyscy chcą być anonimowi to dlaczego wchodzimy ze swoimi butami w takie aspekty?

Swego czasu słychać było o "use it better". Nawet na konferencjach z tym byli. I co się okazało na końcu? Nie można w ten sposób kontrolować zachowania użytkowników jeżeli JAWNIE nie zostaną o tym poinformowani.

Jak już to jest coś takiego jak "żądanie potwierdzenia przeczytania" (dokładnej nazwy nie pamiętam) a wtedy pokazuje się odpowiednie okienko w klientach pocztowych pytający czy zgadzasz się aby poinformować adresata o przeczytaniu wiadomości.

Bądźmy ludźmi a nie chamami i szpiegami.
gregi1
Cytat(wookieb @ 31.12.2009, 11:53:55 ) *
A może najpierw zacznijmy od kwestii prawnej i moralnej takiego "sprawdzania".
Użytkownik SAM powinien decydować czy serwis powinien być informowany o tym, że użytkownik otworzył e-maila.
Jeżeli nie ma takiej możliwości to użytkownik powinien być o tym JAWNIE poinformowany.
Po 3 wszyscy chcą być anonimowi to dlaczego wchodzimy ze swoimi butami w takie aspekty?

Swego czasu słychać było o "use it better". Nawet na konferencjach z tym byli. I co się okazało na końcu? Nie można w ten sposób kontrolować zachowania użytkowników jeżeli JAWNIE nie zostaną o tym poinformowani.

Jak już to jest coś takiego jak "żądanie potwierdzenia przeczytania" (dokładnej nazwy nie pamiętam) a wtedy pokazuje się odpowiednie okienko w klientach pocztowych pytający czy zgadzasz się aby poinformować adresata o przeczytaniu wiadomości.

Bądźmy ludźmi a nie chamami i szpiegami.


No to zaczynam od kwesti prawnej.
Mówimy o legalnym mailingu(użytkownik zapisując się w serwisie wyraza zgode na wiadomosci nazwijmy to reklamowe) i nie rozumiem tego dlaczego ma byc informowany o tym ze zbieram statystyki przygotowanej przeze mnie kampani? To w takim razie na wiekszosci stron w necie powinno wyskakiwac okienko "Uwaga twoje odwiedziny w serwisy zostana oddnotowane w Google Analytics". To dokladnie to samo.

wookieb
Nie to nie jest to samo. Ruch sieciowy jest śledzony zawsze i nie mamy na to wpływu, jest to kontrolowane w inny sposób. Poza tym google analytics nie zbiera informacji typu, "użytkownik kliknął w pole tekstowe, wcisnął klawisz a, zaznaczył tekst" bo są to czynności które nie powinny autora serwisu interesować.
A u Ciebie to nie są statystyki tylko monitorowanie czy użytkownik odczytał maila czyli zaglądasz w jego prywatność do której nie powinieneś mieć dostępu. Tak samo jakby producenci butów kontrolowali jak długo ich produkty są noszone i kryli by się chęcią prowadzenia statystyk. Bardziej absurdalny przykład. Producenci prezerwatyw montowali by w gumkach urządzenia rejestrujące wymaz partnerki (broń boże partnera) w celach statystycznych... Absurd ale równie niemoralny jak twoje postępowanie.

Jeżeli pytasz użytkownika o zgodę na otrzymywanie materiałów marketingowych to powinieneś informować też o tym, że chcesz kontrolować czy przeczytał maila (nieważne w jaki sposób chcesz to kontrolować). Bardziej moralnym byłoby przedstawić to w formie wytłuszczonej. A najbardziej eleganckim to wykorzystanie "żądanie potwierdzenia przeczytania".
BatGraf
"wetnę" się w temat smile.gif
Słuchajcie, czy jest możliwe wykonanie takiej operacji? Tzn przygotowanie czegoś, co śledzi czy mail wysłany np z phpmailer został otwarty?
Będę wdzięczny za wskazówki czy pomoc, nawet odpłatnie
markonix
A przeczytałeś w ogóle temat, w który się "wetknąłeś"?
BatGraf
no przecież smile.gif

Rozumiem - piksel śledzący, ale jak to w praktyce zrobić? O to mi chodzi. Też nie o gotowiec, bo staram sie nie pisac z pierdołami, po to, żeby skopiować wkleić i zapomnieć, a po roku znowu szukać. tylko, że nie mam takiej wiedzy jeszcze, jak większość z Was i to co jest jasne dla wielu, dla mnie jest mgliste
markonix
Chodziło mi bardziej o pierwszy post od wookieb i dalszą kontynuacje.

Pixel śledzący nie działa i dobrze!

Jeżeli chcesz wiedzieć czy użytkownik otrzymał wiadomość to go o to spytaj odpowiednim linkiem na końcu wiadomości - klikając w niego potwierdzi odbiór.
BatGraf
hmm, w sumie najprostsze i najbardziej antyspamowe. Dobre rozwiązanie. Sugerowałem się bardziej doświadczeniem z freshmaila, gdzie mam statystyki, kto otworzył, kto kliknął, ile razy.
To moze być na plus pod kątem wywalenia nieaktywnych maili.

Ale cos za coś smile.gif Czyli nie ma choćby 80% możliwości na sprawdzenie czy ktos otworzył moją wiadomość? (piksel nie działa - i dobrze [pewnie dobrze, skoro tak mówisz smile.gif choć nie wiem czemu])
erix
Cytat
gdzie mam statystyki, kto otworzył, kto kliknął, ile razy.

Strzelam, że to po prostu śledzenie z kliknięcia na dowolny link w mailu - zauważ, że dowolny link jest otwierany przez pośrednictwo tego Freshmaila. [;
thek
Ja przykładowo nie jestem zainteresowany kto kliknął, ale interesuje mnie bardziej ilość przeczytań samego maila i w sumie rozwiązałem to prosto, wykorzystując fakt, że pewne elementy i tak są pobierane z serwera za każdym razem jako grafiki ( o ile user na to zezwoli! ). Po prostu nieco im "modyfikuję adres". Mam bowiem zawsze w mailu logo serwisu, więc modyfikuję mu adres do postaci
http://www.domena.pl/numer_mailingu/logo.jpg
i regułka w htaccess, która kieruje na skrypt zwiększający licznik odczytów dla danego mailingu oraz serwująca owo logo. Taka nieco uczciwsza wersja niewidocznego piksela (ale tylko nieco).W ten sam sposób możesz oprócz numeru mailingu pchnąć inne parametry (choćby mail na jaki posłano czy cokolwiek innego) i je skryptem potem odbierać oraz dobazy wrzuca czy robić co tam chcesz. Tu już masz pełną swobodę działania. Możesz choćby do linków w mailingu dodać parametry i też je wyłapywać przez htaccess. Ogólnie wiele zależy od wlasnej inwencji.
BatGraf
Cytat(erix @ 22.06.2011, 21:59:49 ) *
Strzelam, że to po prostu śledzenie z kliknięcia na dowolny link w mailu - zauważ, że dowolny link jest otwierany przez pośrednictwo tego Freshmaila. [;



Tak, to już wiem i to na 100% wystarczy tylko odpowiednio ułozyć link, przepuścic przez jakiś plik php-owy zapisać do pliku czy bazy i przekierować.

...ale to co piszesz thek :

Cytat
pewne elementy i tak są pobierane z serwera za każdym razem jako grafiki ( o ile user na to zezwoli! ). Po prostu nieco im "modyfikuję adres". Mam bowiem zawsze w mailu logo serwisu, więc modyfikuję mu adres do postaci
http://www.domena.pl/numer_mailingu/logo.jpg
i regułka w htaccess,


... jest ciekawe. Podpowiesz na przykładach ? tu trochę zieloniutki jestem smile.gif
thek
Ale co więcej chcesz wiedzieć? Napisałem wszystko co jest niezbędne. Wybierasz element grafiki, który zawsze wrzucasz do maila tak czy inaczej. Piszesz regułkę htaccess, która może wyglądać tak:
Kod
RewriteRule /images/([0-9]+)/logo.jpg /newsletter/policz.php?id=$1

i w pliku policz.php masz inkrementację licznika dla maila o zadanym id oraz wypluwanie z headerem odpowiednim pliku logo.jpg poprzez choćby readfile()

W samym mailingu jedynie w img jako src wstawiasz odpowiednio spreparowany adres pasujący do regułki. A to jaki wymyślisz sobie adres? Wsio rybka smile.gif Możesz przykładowo zrobić także id użytkownika newslettera oprócz id samego mailingu i będziesz wiedział jacy userzy jaki mail przeczytali. To już drobiazgi tak naprawdę, bo idea jest ta sama, a jedynie zmienia się liczba parametrów dodatkowych.

Poza tym user widząc obrazek bez parametrów $_GET łatwiej zaakceptuje zgodę na wyświetlanie od Ciebie obrazków z zewnętrznego serwera, no i antywiry niemal na pewno nie zaprotestują, bo prosisz serwer zewnętrzny o obrazek i go dostajesz. Jedyne co jest konieczne to zgoda na wyświetlanie obrazków z serwera zewnętrznego w danym mailu. W tym wypadku user nawet nie podejrzewa, że "niewinne logo" zbiera informacje. To nie niewidoczny piksel z jakimi parametrami GET dziwnymi co zawsze będzie budzić podejrzenia. Tu wszystko wydaje się jawne. Nikt nie podejrzewa, że ścieżka http://www.domena.pl/15/4/logo.jpg informuje iż user o id = 4 właśnie obejrzał mailing o id = 15 wink.gif Najlepsze jest to, że możesz w bazie zrobić tabelę o polach: id_maila, id_usera, counter
i zliczać nawet ile razy dany user obejrzał konkretny mail.

Zaprzęgnięcie mod rewrite w celu liczenia nasuwa się szybko każdemu, kto choć trochę potrafi kombinować. A paranoicy i tak nie pozwolą wyświetlić obrazka w mailu i ich nie będzie liczyło. Wielu jednak zezwala na pewne grafiki nie budzące podejrzeń, uważając je za istotne części layoutu maila. Tutaj logo też tę rolę pełni, ale dodatkowo szpieguje, o czym user już niekoniecznie musi wiedzieć. Chciał logo? Chciał. No, a że przy okazji go zliczyło to inna sprawa wink.gif Dodatkowo podczas pobierania loga możesz jeszcze próbować kombinować w skrypcie policz.php z danymi w zmiennej $_SERVER by wyłapać inne rzeczy o userze pobierającym grafikę.

EDIT: Uważaj by nie wyświetlać żadnych błędów i zawsze wysyłać obrazek, nawet bez wykonania zapytania. Inaczej user zauważy, że coś z grafiką jest nie tak i raz ją pobiera, a raz nie lub co gorsza próba jej pobrania kończy się dziwnymi komunikatami w miejscu gdzie powinna się ona znajdować.
BatGraf
opisałeś to tak fajnie, że aż żałuje, że nie mogę kliknąć "pomógł" smile.gif Założę nowy temat, przenieś to tam i kliknę smile.gif Dzięki wielkie, to już bliżej niż dalej (bliżej bo pobieżnie przeczytałem a sprawdzę jutro [dziś padam na dziurkę lewą i dziurkę prawą, narządu węchowego totalnie] i powiem czy działa smile.gif )

---

wiem, jak się zrewanżuję klikając "pomógł" smile.gif
(jeśli mogę zaproponować)

Mam problem z wycięciem maila z tekstu, napisałem wiec nowy temat Temat na forum a zakładam, że mój problem jest banalny, wiec jeśli możesz, napisz jak to zrobić, tzn których funkcji użyć, a ja chętnie podziekuję smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.