ომედია სტუდია

ბლოგი ელფოსტის მახინჯი მისამართები

Rocko
3 თებერვალი, 2010  •  20 კომენტარი  •  წაკითხულია 7116-ჯერ

ბევრჯერ უკითხავთ ხოლმე ჩემთვის ნაცნობებს, ზოგს ასეთი უცნაური ელფოსტა რატომ აქვსო? ალბათ თქვენც შეგინიშნავთ, რომ ხშირად სხვადასხვა ფორუმებზე, ბლოგებში ან სხვა საიტებზე ხალხი საკუთარი ელფოსტის მისამართს „დამახინჯებულად“ წერს ხოლმე. მაგალითად, ასე: my[@]email.com ან ასე: my_აქქეიცითრაც_email.com

თუ არ იცით გეტყვით, რომ ამის მიზეზი მარტივია — მათ არ სურთ საკუთარი ელფოსტის მისამართები სპამერებს ჩაუვარდეთ ხელში. სპამერებს, ანუ იმ ხალხს, ვინც არასასურველ, სარეკლამო წერილებს აგზავნიან ჩვენ ინბოქსებში. სპამერები კი, როგორც წესი, ელფოსტის მისამართებს ავტომატურად აგროვებენ.

არსებობს სპეციალური პროგრამები, ე.წ. „ბოტები“, რომლებიც დაბოდიალობენ სხვადასხვა საიტებზე, მიყვებიან ბმულიდან ბმულს და სადაც კი ელფოსტას წააწყდებიან, თავიანთ ბაზაში ინახავენ. სპამერი კი, გაუშვებს ხოლმე მსგავს ბოტს და რამდენიმე საათში ელფოსტის ასეულობით მისამართს იგდებს ხელში; რომელთა პატრონებსაც მოგვიანებით ან პენისის გადიდებას შესთავაზებენ, ან შვეიცარულ საათებს 20 დოლარად :)

ის მომხმარებლები კი, ვინც ასე ამახინჯებენ საკუთარ მისამართებს, სწორედ ამ სპამ-ბოტებისგან იცავენ თავს. პროგრამა ხომ ადამიანი არ არის, წინასწარ განსაზღვრული პრინციპით მოქმედებს. ეძებს ტექსტს, რომელიც მის კონკრეტულ შაბლონს ემთხვევა, მაგალითად ასეთს:
[a-z0-9]+[@]+[a-z0-9]+[.]+[a-z]
ანუ, ისინი ეძებენ ტექსტის ნაგლეჯს, სადაც მიყოლებით შეხვდებათ ლათინური ანბანის ასოები ან ციფრები (ანუ, სახელი), შემდეგ @ ნიშანი, შემდეგ — ისევ ლათინური ანბანის ასოები ან ციფრები (ანუ, დომენი) და ბოლოს წერტილი და დომენის ზონა (.ge, .com...) მაშინ კი, როდესაც ელფოსტის მისამართში სხვა სიმბოლოები ერევა, ეს ბოტები ვეღარ ცნობენ მას და გვერდს უვლიან. ადამიანი კი, ვისაც მიწერეს ეს მისამართი, (როგორც წესი) მოაზროვნე არსებაა და ხვდება ჩანაფიქრს :)

თუმცა, ყველა ვერ ხვდება ხოლმე. და ეს პირველ რიგში გამოუცდელ ინტერნეტ-მომხმარებლებს ეხებათ. სწორედ ამიტომ, მე პირადად პატივს არ ვცემ კომპანიას, რომელიც საკუთარ საიტზე მასთან დასაკავშირებელ მისამართს ასეთი დამახინჯებული ფორმით აქვეყნებს :) ან კიდევ, უფრო უარესი — სურათად აქვს ჩასმული ელფოსტის მისამართი.

პირველი მეთოდის (ანუ, დამახინჯებულად დაწერის) მინუსი იმაში მდგომარეობს, რომ ძალიან ბევრი მომხმარებელი უბრალოდ ვერ ხვდება რა ჩაიფიქრა ტექსტის ავტორმა და ცდილობს წერილი დამახინჯებულ მისამართზე გააგზავნოს ხოლმე. აბა დაფიქრდით, რამდენი დამწყები მიხვდება, რომ contact[@]company.ge-დან კვადრატული ფრჩხილები უნდა მოაცილოს?

მეორე, საკმაოდ გავრცელებული მეთოდის (ელფოსტის მისამართის სურათად ჩასმის) მთავარი უარყოფითი კი ის არის, რომ ასეთი ელფოსტის დაკოპირება უბრალოდ შეუძლებელია. და მომხმარებელს მისი ჯერ დამახსოვრება, შემდეგ კი ხელით აკრეფა მოუწევს წერილის გაგზავნისას. და ასეთ დროს ამ სურათზე mailto: ბმულის მიბმა გამოსავალი არ არის, რადგან ჯერ ერთი, ვებმეილის ეპოქაში ვცხოვრობთ და უმრავლესობა დესკტოპ-კლიენტებს აღარ ხმარობს ელფოსტისთვის; და მეორეც — თუ mailto:-ს შემდეგ ღიად დაწერთ მისამართს, მაშინ რაღა აზრი აქვს ამ ბმულის სურათზე მიმაგრებას? :)

ბევრი რომ არ გავაგრძელო, ამ პრობლემის მრავალი დელიკატური გადაწყვეტა მოიფიქრეს მსოფლიოს დეველოპერებმა. ჩემი ფავორიტი კი დამახინჯებული ელფოსტის მისამართის დინამიურად გასწორების პრინციპია. აი მისი ერთ-ერთი ყველაზე მოხერხებული რეალიზაცია jQuery-ს ბაზაზე:

 
 
$(document).ready(function(){
    // ჩამოვიაროთ დოკუმენტის ყველა del ტეგი
    $("del").each(function(){
        var $thisDel = $(this);
        var $parentA = $thisDel.closest("a");
        var $childA =  $("a", $thisDel);
 
        // ვანაცვლებთ ასტერიკს del ტეგის შიგთავსში და ვაუქმებთ გადახაზვას
        $thisDel.text( $thisDel.text().replace("*", "@") ).css("text-decoration", "none");
 
        if($childA.length > 0) {
            // თუ ყავს del ტეგს შვილობილი a ტეგი
            $childA.attr("href", $childA.attr("href").replace("*", "@") );
        }
 
        if($parentA.length > 0) {
            // თუ del ტეგის მშობელი a ტეგია
            $parentA.attr("href", $parentA.attr("href").replace("*", "@") );
        }
    });
}
 
 

პრინციპი მდგომარეობს შემდეგში:
საიტის რედაქტორი ნებისმიერ ადგილზე, სადაც სურს ელფოსტის მისამართის დაწერა, წერს მისამართს დამახინჯებულად, ასეთი ფორმით: contact*company.ge, ოღონდ შემდეგ ამ ტექსტს აფორმატირებს გადახაზულად, ანუ ათავსებს <del> ტეგში. კოდის ეს ნაგლეჯი კი, მომხმარებელთან გვერდის ჩატვირთვისას, ნახულობს ყველა <del> ტეგის შიგთავსს და თუ სადმე შეხვდება ასტერიკი (*), ანაცვლებს მას ეთ-ნიშნით (@).

<del> ტეგი არჩეული გვაქვს იმ მიზეზის გამო, რომ მისი გამოყენება საიტის ტიპიური რედაქტორისგან, ვისაც როგორც წესი, html-ის არაფერი გაეგება, მოითხოვს მინიმალურ ძალისხმევას — გადახაზული ტექსტის სტილი ხომ ნებისმიერ WYSIWYG რედაქტორს აქვს, სქელი, დახრილი და ხაზგასმული სტილების გვერდით. თანაც, ეს ყველაზე იშვიათად გამოყენებადი ტეგია.
სხვა შემთხვევებში, ბუნებრივია, უფრო მოქნილი გადაწყვეტაც შეიძლება გამოიყენოთ, მაგალითად, დამახინჯებული ელფოსტის შემცველი ტეგის კლასის მიხედვით მოძებნა ან სხვა ვარიაციები ამ თემაზე...

დავუბრუნდეთ ამ პატარა კოდს:
გარდა იმისა, რომ იგი ასწორებს დამახინჯებებს <del> ტეგში, იგი ასევე ეძებს ბმულის ტეგებსაც, <del>-ის შვილებში ან მის მშობლად და ასწორებს ამ ბმულების href ატრიბუტების მნიშვნელობებსაც. (ეს იმ შემთხვევისთვის, თუ რედაქტორმა მაინც გადაწყვიტა ელფოსტის მისამართისთვის mailto: ბმულის მიბმა).
შეცვლილ <del> ტეგს კი იქვე უყენდება სტლის text-decoration პარამეტრი none-ზე, რათა თუ გარე CSS-ში არ არის გათვალისწინებული, ჩვენი ელფოსტა გადახაზული არ დარჩეს.
(გთხოვთ შეუქოთ jQuery-ს მოქნილობა :D)

ესეც ასე. სადაც კი საიტის რედაქტორს დაჭირდება ელფოსტის მითითება, იგი დაწერს მას ასტერიკით „ეთ“-ის მაგივრად და მოათავსებს <del> ტეგში (თუ უნდა, mailto:-საც კი მიუთითებს, აქაც ასტერიკით);
მომხმარებელი ბედნიერი იქნება — ელფოსტას სწორად წაიკითხავს, დააკოპირებს, ამობეჭდავს და კედელზე გაიკრავს;
სპამ-ბოტი კი უბედური — ისინი ხომ JavaScript-ს არ ამუშავებენ და, შესაბამისად, ასტერიკიანი ტექსტი შერჩებათ ხელში :)

P.S. შეიძლება იფიქროთ, რომ ზედმეტი თავის ტკივილია, მაგრამ ყოველთვის გახსოვდეთ, რომ ყველა მომხმარებელი დეველოპერი არ არის და მათთვის ცხოვრების გაადვილება სწორედ ჩვენი — დეველოპერების მოვალეობაა :)
კარგ საიტს კი სწორედ ასეთი დეტალების ერთობლიობა ქმნის, რომელიც ჩვენ ასე ძალიან გვიყვარს:)

P.P.S. რათქმაუნდა, მთელი ეს ქიმია საჭირო არ არის, თუ კომპანიას ძლიერი სპამ-ფილტრი აქვს დაყენებული და სპამის უბრალოდ არ ეშინია. :)

ტეგები: ელფოსტა usability სპამი სპამბოტები jquery javascript

20 კომენტარი:

  • 2 მარტი, 2010 - 04:42 Landish:
    ო, როკო, რამდენი ხანია აქ პოსტი არ დადებულა :D
    გაზაფხულმა გამოგაფხიზლათ? :D

    (გთხოვთ შეუქოთ jQuery-ს მოქნილობა :D)


    ვუქებ(თ) ნამდვილად :D

    შესანიშნავი და საკმაოდ საინტერესო პოსტია...

    just, ერთი შეკითხვა, HTML-ს აქვს (http://www.degraeve.com/reference/specialcharacters.php) ასეთი Special Character-ი, &#64;, რომელსაც "ეთ"-ის ფუქნცია აკისრია, ეგ რომ გამოვიყენოთ, ეფექტი არანაირი ექნება? მეილი ისევ დაისპამება? : )
  • 2 მარტი, 2010 - 12:02 Rocko:
    ოო, ეგ საინტერესოა...

    ადრე იყო მეთოდი, როცა მთლიან მისამართს შუაზე გლეჯდნენ ხოლმე სხვადასხვა ტეგებში.
    მაგალითად ასე:

    rocko<span>@</span><strong>.omedia</strong>.ge

    მაგრამ მერე დაიკიდეს. როგორც აღმოჩნდა, ზოგი სპამ-ბოტი ან html-ს მთლიანად პარსავდა ან ჩვეულებრივად არენდერებდა და შემდეგ ეძებდა მეილებს.

    ახლა რა დონეზეა წასული მსოფლიო სპამერების ტექნოლოგია არ ვიცი :))

    just, ერთი შეკითხვა, HTML-ს აქვს (http://www.degraeve.com/reference/specialcharacters.php) ასეთი Special Character-ი, &#64;, რომელსაც "ეთ"-ის ფუქნცია აკისრია, ეგ რომ გამოვიყენოთ, ეფექტი არანაირი ექნება? მეილი ისევ დაისპამება? : )

  • 7 მარტი, 2010 - 16:55 zghuladze:
    კარგი გადაწყვეტაა, გმადლობთ
  • 9 მარტი, 2010 - 06:27 komisia:
    ვახ, რა კაი რამე ყოფილა და არ ვიცოდი ^^
  • 9 მარტი, 2010 - 07:38 George:
    საინტერესოა :)
    მაგრამ მე სპამერები არ მაწუხებენ :D
  • 9 მარტი, 2010 - 17:46 თხლაშო:
    მშვენიერი :) მემგონი ლადოს ვარიანტიც მუშაობს .... როგორ დავტესტო უბრალოდ წარმოდგენა არ მაქვს :D

    ვინმე სპამერი არ გვყავს სანაცნობოში? :D:D
  • 1 მაისი, 2010 - 19:04 loler:
    როგორ უნდა დატესტო? გააჩნია ბოტს რა პრინციპით აგებენ... შეიძლება ერთმა ბოტმა დაგისპამოს და მეორემ ვერა :) აწი ამათ: [@], [at],[dot] გაფილტვრასაც მოიფიქრბდნენ სპამერები, თორე უკვე ყველა ეგრე წერს :D
  • 3 მაისი, 2010 - 20:05 დათო:
    ვაა რა მაგრები ხართ თქვენ, მე ეგ არ ვიცოდი :)

    მარა JQuery მე როგორც ვიცი სხვა რამეს უზრუნვეყოფს, ეგ <form-ში არ გამოიყენება?
  • 14 მაისი, 2010 - 13:26 ToMa:

    მე პირადად პატივს არ ვცემ კომპანიას, რომელიც საკუთარ საიტზე მასთან დასაკავშირებელ მისამართს ასეთი დამახინჯებული ფორმით აქვეყნებს :) ან კიდევ, უფრო უარესი — სურათად აქვს ჩასმული ელფოსტის მისამართი.



    http://davituri.com/ :D
  • 25 მაისი, 2010 - 04:22 თათია:
    საინტერესო პოსტი იყო უბრალოდ შემეცნებითი თვალსაზრისით ჩემთვის.
  • 2 ივნისი, 2010 - 21:53 Dr.Pepper:
    ძაან მაგრები ხართ როკო საღოლ
    ლანდიშ +1
    კარგი კითხვა იყო
  • 3 ივნისი, 2010 - 01:01 mailto:rules:

    mailto: ბმულის მიბმა გამოსავალი არ არის, რადგან ჯერ ერთი, ვებმეილის ეპოქაში ვცხოვრობთ და უმრავლესობა დესკტოპ-კლიენტებს აღარ ხმარობს ელფოსტისთვის

    RTFM Rocko :-D

    ზოგი სპამ-ბოტი ... ჩვეულებრივად არენდერებდა და შემდეგ ეძებდა მეილებს

    jQuery :-D
  • 15 სექტემბერი, 2010 - 22:11 Syd:
    გაცილებით მარტივი გამოსავალიც არსებობს, ისე..
    <a href="mailto:spam@yahoo.com" onmouseover="javascript:this.href='mailto:viking.syd' + '@' + 'gmail.com'"> კონტაქტი </a>
    აი ასეთი, მაგალითად.
  • 20 ოქტომბერი, 2010 - 01:48 ToMa:

    გაცილებით მარტივი გამოსავალიც არსებობს, ისე..
    <a href="mailto:spam@yahoo.com" onmouseover="javascript:this.href='mailto:viking.syd' + '@' + 'gmail.com'"> კონტაქტი </a>
    აი ასეთი, მაგალითად.



    საინტერესოა :)
  • 1 თებერვალი, 2011 - 00:45 გამქ:
    ყველაფერი კარგია ამ ყვითელი ბეცქგრაუნდის გარდა.....
  • 16 აპრილი, 2011 - 11:43 X-spamer:
    მშვენიერია.
  • 26 ივლისი, 2011 - 15:20 gziro:
    ვაა, საინტერესო მეთოდია, მაგრამ ვინიცის ამ პოსტს სწორედ ახლა რომელიმე სპამერი კითხულობს და თავის ბოტს ზოგიერთი კერძო შემთხვევის აპროგრამებს :) იმის თქმა მინდა, რომ მეთოდი რაც უფრო გავრცელდება და გამოყენებადი გახდება, მისი ეფექტურობა მით უფრო შემცირდება. გაუმჯობესდება სკრიფტი - გაუმჯობესდება ბოტი. ასე რომ გამოსავალი მემგონი სადღაც შორსაა...
    პ.ს. მისამართის დამახინჯება ჯერჯერობით ეფექტურია, მაგრამ რასაც ადამიანის ლოგიკა ხვდება, მაგდენის ვერა, მაგრამ me[@]domain.com -ის მსგავსი და ცოტა რთული შემთხვევებისთვის შესაძლებელია ბოტისთვის "ლოგიკური მსჯელობის" ჩადება (ჯერჯერობით სპამერები ამისთვის თავს არ იწუხებენ, ისედაც ბევრი "კლიენტი" ჰყავთ :) )

    <a href="mailto:spam@yahoo.com" onmouseover="javascript:this.href='mailto:viking.syd' + '@' + 'gmail.com'"> კონტაქტი </a>


    ესეც მომეწონა :)
  • 26 ივლისი, 2011 - 15:32 gziro:
    ჰო მართლა, მომხმარებლისთვის სრული კომფორტის შექმნა კი კარგია, მაგრამ, ჰომ შეიძლება ბოტი კოდში კი არა გამოსახულ გვერდში "იქექებოდეს". ანუ ბაზური HTML, JS, PHP, გათვალისწინებული იყოს?.. არც ისე რთულია ;)
  • 10 აგვისტო, 2011 - 11:57 ანი:
    დზალიან კარგ კომენტარებს აკეტებტ
  • 10 ოქტომბერი, 2011 - 05:30 იკა:
    მე პირადად სურათად მირჩევნია ვარენდერო.
    PHP მიკეთებს მაგ სურათს. კერძოდ GD ბილბიოთეკა. ყველაზე "ნაღდი" ეგ მგონია.

    და საერთოდ, საიტზე მეილი "კი უნდა იდოს" მაგრამ მე ყოველთვის კონტაქტის გვერდზე გადავდივარ და გასაგზავნ ფორმას ვიყენებ. იქედან შეიძლება "noreply" გაუკეთო რო "თქვენ გააგზავნეთ ელ.ფოსტა ამა და ამ მისამართზე, დიდი მადლობა :)"

კომენტარის დამატება:



დაშვებულია მხოლოდ <blockquote> ტეგი.

ელფოსტა არც გამოქვეყნდება და არც დაისპამება, მხოლოდ გრავატარებისთვისაა საჭირო :)

მონიშნული ტექსტის ციტირება

იგზავნება ...

გმადლობ, კომენტარი დამატებულია.

ამის ქვევით ნამდვილად აღარაფერია, სიტყვას გაძლევთ! :D
Omedia Studio