Resimli mail ile aktivasyon
Geçenlerde yine bir aktivasyon maili alıp resimleri göstere bastığımda kafamda bir ampül yandı. Normal link ile hesap aktivasyonu dışında bundan daha hızlı ve alternatif bir yöntem daha uygulanabileceğini düşündüm.
Kullanıcı üyeliğini tamamladıktan sonra aktivasyon mailini açmasıyla herhangi bir linke tıklamadan hesabı aktif edilmiş olacak.
Olayı da basit; Bir aktivasyon linki yerine ya da aktivasyon linkine alternatif olarak mail içerisine aktivasyon linkini resim olarak eklemek. Daha doğrusu bu resim için özel bir dosya hazırlayıp PHP ile hesabı aktif ettikten sonra bu dosyada “Hesabınız aktif edildi” resmini göstermek.
PHP dosyasında resim göstermek
Bir PHP dosyasını resim gibi ya da istediğiniz bir dosya türü gibi göstermek headerlar aracılığıyla oluyor. Eğer headera göstermek istediğimiz resmin formatını tanımlarsak PHP dosyası çağrıldığında resim olarak gösterilmesini sağlayabiliriz.
Bu işlem PHP’de adı üstünde “header” fonksiyonu ile yapılıyor. Örnek olarak yazıdaki “Hesabınız aktif edildi” resmini alıp şu kodu deneyebilirsiniz;
header('Content-Type: image/png; charset=utf-8'); readfile('aktifedildi.png');
Bu sayfaya girdiğinizde ya da bu sayfayı bir HTML sayfada <img src=”resim.php” /> şeklinde çağırmak istediğinizde “aktifedildi.png” resmini görürsünüz.
Eğer sizin kullanacağınız resim jpeg ya da başka bir formatta ise ilk satırdaki “image/png” kısmını düzenlemeyi unutmayın.
PHP ile resim gösterip başka işlemler yapmak
Yukarıdaki örnekte sadece bir PHP dosyasını çağrıldığında resim gibi gösterilmesini sağladık. Şimdi gelelim kullanıcılar bu resmi görürken arkada işlemler gerçekleştirmeye. Aslında bu nokta da gayet basit, sadece yukarıdaki header kodlarından önce yapmak istediklerimizi yapacağız.
$aktivasyon_kodu = $_GET['kod']; // ... // sizin çalışmanıza özel aktivasyon işlemleri burada olacak // ... header('Content-Type: image/png; charset=utf-8'); readfile('aktifedildi.png');
Mail aktivasyon kısmı için farekttiğiniz gibi dışarıdan bir “kod” değeri aldık. Bu kısım sizin tercihinize göre değişebilir. Fakat işin bir püf noktası da burası. Yani linklere yazdığımız aktivasyon kodunu bu şekilde dosyamıza iletiyoruz.
Şimdi aktivasyon mailine bir link eklemek yerine aşağıdaki gibi resmi eklediğinizde;
<img src="http://www.siteniz.com/aktivasyon.php?kod=abcd1234"/>
Kullanıcı maili açtığında “Hesabınız aktif edildi” resmi ile karşılaşacak siz ise resim gösteren sayfayı çağırırken eklediğiniz kod ile bu kişinin hesabını aktif edeceksiniz.
Bu ufak alternatif ile kullanıcılarınıza farklı bir deneyim yaşatabilirsiniz.
Ayrıca whos.amung.us ya da StatCounter gibi sadece grafik ile çalışan hit sayan servislerde buna benzer bir yöntem ile bu işlemleri gerçekleştirmektedir. Yani yine bu yöntem ile kendi özel resimli sayaçlarınızı da yapabilirsiniz.
Bir başka serüvende görüşmek üzere!
Yazılanlar ilgini çektiyse, yenilerinden haberdar olmak için e-mail bültenine abone olabilirsin.
Güzel bir anlatım ve mantıklı bir iş. 🙂
Çok yaratıcı aslında ama gelen maillerdeki resimleri direk yüklemiyor hotmail, gmail gibi servisler. Kullanıcının “resimleri göster” seçeneğine tıklaması gerekmez mi? Çoğu bilgisiz kullanıcı yapmayabilir bunu galiba.
evet, bu yöntemi alternatif olarak kullanmak en mantıklısı. yani linkden önce aktivasyon maili içinde “hesabınızın aktif olması için resmi görüntülemeniz yeterli” diyebilirsin.
Ama şöyle bi sorun olabilir, mesela ben başkasının mailiyle bi siteye üye olsam, o maile aktivasyon mesajı gidecek maili alan dikkat etmeden resmi göster derse kendi mail adresini başkası kullanmış olacak.
ne alaka? aynısı normal aktivasyon maili içinde geçerli, bu yöntem sadece bir alternatif. tam bir paranoyaksın hakan 😀
normalinde link var resimleri göster demek ayrı bişey ama maile aktivasyonu iptal etme linki eklenirse sorun olmaz gibi aktifleşse bile hemen tıklayıp işlemi geri alabilir.
(sensin la paranoyak :p)
Hakan doğru söylüyor, benim mail adresimle bir başkasının üye olduğunu farkettiğimde onaylama bağlantısına tıklamıyorum. Ama bu sistemde ben istemeden benim mail adresim onaylanmış oluyor. Bu sıkıntı dışında gayet mükemmel bir sistem olmuş, tebrikler.
evet, ama genel olarak aktivasyon maillerinde bir de iptal linki bulunur. bu ve bunun gibi yöntemler ile bu olayların önüne geçilebilir.
mailde html kullanılıyor, iframe koymak yasakmı
Guzel dusunulmus bir olay tebrikler musa , yanliz hakanin dedigide bir olasilik benim mailim ile benim isdigvem bire sitey uye olunabilir bu uyeligi ben yanlislikla onaylayabilirim .
güzel bir yöntem olmuş, mail okundu okunmadı mevzusunu bu yolla analiz ediyorlar. ve diğer tıklamaları felan filan
maili açar açmaz aktivasyon sakıncalı olabilir. bir kişi maili açmakla onaylama işlemini yapmış olmamalı. mailde bir açıklama metni ve onaylıyorsa onay linki iptal içinde iptal linki olması gerekir. ancak bu yöntem birçok şey için işime yarayacak çok teşekkürler faydalı bilgi.
Açar açmaz aktivasyon onaylanmıyor zaten resimleri göster dememiz lazım ama kullanıcı buna dikkat etmeden direk resimleri göster derse aktivasyon onaylanacak.
Ama tabi bi iptal link koyulup sorunu halledilir.
Arkadaşların da dediği gibi resimleri göster seçilmezse çalışmayacaktır ve adam üye olurken başkasının mailini yazmışsa karşı tarafta saflığından resimleri göster demişse o adamın mailiyle istemeden üye olunmuş olacak.Bence aktivasyon linki herzaman en sağlamıdır.
Bu metod daha çok newsletterlarda kullanılıyor hocam. Bu sayede maili kaç kişinin okuduğu da tespit edilmiş oluyor. Faydalı bir paylaşım olmuş.
öneri ve değerli yorumların için teşekkürler.
Mailimi başkası kullanırsa böyle olur şöyle olur diye yorum yapan arkadaşlara..
Arkadaşımız yöntem göstermiş.. önemli olan yöntemi bilim farklı alanlarda kullanmabilmeyi sağlamak.. Teşekkürler Musa Kardeş.. Sayende php ye giriş yaptım. 😉
Bizim sitemiz hiç mail atmıyor, yani aktivasyon linki göndermiyor, bunun için sanırım php kodlarında bir şeyler yazmak gerekiyor. Elinde bu platform olan var mı? Çok makbule geçer yardımcı olabilirseniz.
whos.amung.us da kod eklerken sadece resim eklenmiyor javascript kodu da ekleniyor 🙂
Teşekkürler güzel bir fikir.
Çok mantıklıı 😀 Teşekkürler!
Bilgi ichin tesekkurler 🙂
Aşağıdaki linkten nasıl yapılacağına ve ilgili kodlara dair bilgi edinebilirsiniz.
http://www.ercanakar.org/php-mysql-aktivasyon.html