Edukira salto egin | Salto egin nabigazioara

Tresna pertsonalak

Eibarko peoria, San Blasa baino hobia
Hemen zaude: Hasiera / Blogak / e-gorblog / Nola hobetu zure COREBlog bloga II: Kontaktu orria spam-a ekiditeko

Nola hobetu zure COREBlog bloga II: Kontaktu orria spam-a ekiditeko

e-gor 2005/02/02 15:36
eibar.org eta goiena.net-eko blogetan aplikatzeko

Gure blogean guri idazteko <a href="mailto:emaila@domeinua.com">emaila@domeinua.com</a> motako esteka bat jartzen badugu, ziur egon gaitezke handik gutxira gure postontzian spam-a jasotzen hasiko garela. Irakurri hemen hori nola ekidin kontaktu orri baten bidez.

Spam-a posta elektronikoa duen eta interneten ibiltzen den ia edozeinek jasaten duen lakra da. Gure helbidea spammer-en eskuetara iritsiz gero, akabo! Baina nola lortzen du jendaila horrek gure helbidea?

Gizatxar horiek robotak dituzte uneoro interneta arakatzen (ez robotak zentzu hertsian ulertuta, programa automatikoak esan nahi da) mailto erreferentzien eta @ zeinuaren bila, eta horrela lortzen dituzte helbideak. Horregatik ez da ideia ona gure blogean gurekin kontaktatzeko mailto motako esteka bat jartzea.

Eta nola eman diezaiokegu gure blogaren irakurleari gurekin kontaktatzeko aukera, hori erabili gabe? Kontaktu orri baten bidez. Jarraian azalduko dut nola egin kontaktu orri bat Coreblog erabiltzen duten blogetan (Eibar.org-en ostatatutako edozeinetan, beraz).

Hasteko, gure bloga aldatzeko pantailan sartuko gara gure klabearekin. Hor Mail Host elementu berri bat sortuko dugu eta "MailHost" izena jarri, beste balioak defektuzko balioan utzita.

Gero sortu DTMLMethod elementu berri bat, "kontaktatu" izenarekin, eta bertan eduki hau idatzi:

<dtml-var standard_html_header>
<h3>Kontaktatu</h3>
<form method="post" action="kontaktatu2">
<table>
    <tr>
        <td align="right" valign="top">Izena:</td>
        <td><input type="text" name="izena" value="" size="40"></td>
    </tr>
    <tr>
        <td align="right" valign="top">Posta elektronikoa:</td>
        <td><input type="text" name="emaila" value="" size="40"></td>
    </tr>     <tr>         <td align="right" valign="top">Gaia:</td>
        <td><input type="text" name="gaia" value="" size="40"></td>
    </tr>
    <tr>
        <td align="right" valign="top">Esatekoa:</td>
        <td><textarea name="edukia" rows="10" cols="40"></textarea></td>
    </tr>
    <tr>
        <td></td>
        <td valign="top"><input type="submit" value="Bidali"></td>
    </tr>
</table>
</form>
<dtml-var standard_html_footer>

Ondoren "kontaktatu2" izeneko beste DTMLMethod bat sortu, barruan hau idatziz:

<dtml-var standard_html_header>
<dtml-call "kontaktatu3(izena,emaila,gaia,edukia)">
Zure mezua bidali da<br />
Jarraitzeko, egin klik <a href="<dtml-var blog_url>">hemen</a>.
<dtml-var standard_html_footer>

Jarraian "kontaktatu3" izeneko Script (Python) bat sortu. Parametroetan "izena,emaila,gaia,edukia" jarri eta edukian ondokoa:

try:
    mailhost=getattr(context,context.superValues('Mail Host')[0].id)
except:
    raise AttributeError, "Mail Host object cant be found."
to_addr = guremaila@guredomeinua.com
mMsg = """To: %s
From: %s
Mime-Version: 1.0
Content-Type: text/plain;
blogetik bidalitako mezua
Bidaltzailea: %s [%s]
Gaia: %s
%s""" % (to_addr , emaila , izena, emaila, gaia, edukia)
mTo = to_addr
mFrom = emaila
mSubj = gaia
mailhost.send(mMsg, mTo, mFrom, mSubj)

Eta listo! Orain gure orri nagusian kontaktu orri horretarako linka jartzea besterik ez da falta.

Hala ere, hau ez da nahikoa. Honekin guri spam-a ez iristea lortuko dugu, baina gure blogera erantzunak idazten dituen jendea spammer-en esku uzten jarraitzen dugu. Izan ere, Coreblog-ek duen (nire ustez) akats bat medio, gure blogera erantzunak idazten dituen jendearen posta helbideak mailto erreferentziekin erakusten dira... eta webgune serioek jada ez dute horrelakorik egiten.

Hori konpontzeko bi gauza egin ditzakegu:

  • Aldaketa txiki bat egin e-maila ez erakusteko
  • Horrez gain, blogaren irakurleek erantzun duen jendearekin kontaktatu dezaten ahalbidetu kontaktu orriaren bidez

Lehenengoa egitea oso sinplea da. Ireki "comment_body" izeneko metodoa eta <div class="comments-post"><dtml-var "gettext('Posted by:')"><b> jartzen duen tokiaren ondoren eta </b> aurretik datorrena honegatik ordeztu:

<dtml-try>
    <dtml-if "_.len(url)>0 or (REQUEST.form.has_key('url') and _.len(REQUEST.form.has_key('url'))>0)">
        <a href="<dtml-if "REQUEST.form.has_key('url')"><dtml-var "removeHTML(REQUEST.form['url'])"><dtml-else><dtml-var url missing=""></dtml-if>"><dtml-if "REQUEST.form.has_key('author')"><dtml-var "removeHTML(REQUEST.form['author'])"><dtml-else><dtml-var author missing=""></dtml-if></a>
    <dtml-else>
         <dtml-if "REQUEST.form.has_key('author')"><dtml-var "removeHTML(REQUEST.form['author'])"><dtml-else><dtml-var author missing=""></dtml-if>
    </dtml-if>
<dtml-except>
    <dtml-if "REQUEST.form.has_key('author')"><dtml-var "removeHTML(REQUEST.form['author'])"><dtml-else><dtml-var author missing=""></dtml-if>
</dtml-try>

Bigarrena egitea konplikatuxeagoa da. Horretarako kontaktu orria erabili behar da, baina kontaktu orriari jakinarazi behar zaio nori bidali behar dion emaila, helbidea estekan erakutsi gabe, enkriptatuta. Aurrez aipatutako kontaktu orriko metodoak berridatzi behar dira eta beste metodo batzuk sortu. Jarraian azalduko dut prozesu guztia.

Hasteko, "comment_body" metodoan, aurrekoa jarri beharrean beste hau jarriko dugu:

<dtml-try>
    <dtml-if "_.len(url)>0 or (REQUEST.form.has_key('url') and _.len(REQUEST.form.has_key('url'))>0)">
        <a href="<dtml-if "REQUEST.form.has_key('url')"><dtml-var "removeHTML(REQUEST.form['url'])"><dtml-else><dtml-var url missing=""></dtml-if>"><dtml-if "REQUEST.form.has_key('author')"><dtml-var "removeHTML(REQUEST.form['author'])"><dtml-else><dtml-var author missing=""></dtml-if></a>
    <dtml-elif "_.len(email)>0 or (REQUEST.form.has_key('email') and _.len(REQUEST.form.has_key('email'))>0)">
        <a href="<dtml-var blog_url>/kontaktatu?norekin=<dtml-if "REQUEST.form.has_key('author')"><dtml-var "removeHTML(REQUEST.form['author'])"><dtml-else><dtml-var author missing=""></dtml-if>&emailanori=<dtml-if "REQUEST.form.has_key('email')"><dtml-var "enkriptatu(removeHTML(REQUEST.form['email']))"><dtml-else><dtml-var "enkriptatu(email)" missing=""></dtml-if>"><dtml-if "REQUEST.form.has_key('author')"><dtml-var "removeHTML(REQUEST.form['author'])"><dtml-else><dtml-var author missing=""></dtml-if></a>
    <dtml-else>
         <dtml-if "REQUEST.form.has_key('author')"><dtml-var "removeHTML(REQUEST.form['author'])"><dtml-else><dtml-var author missing=""></dtml-if>
    </dtml-if>
<dtml-except>
    <dtml-if "REQUEST.form.has_key('author')"><dtml-var "removeHTML(REQUEST.form['author'])"><dtml-else><dtml-var author missing=""></dtml-if>
</dtml-try>

Gero "enkriptatu" izeneko Script (Python) bat sortuko dugu, "emaila" parametroa hartzen duena eta hau daukana barruan:

klabea="87hugf9iv"
enkriptatua=""
for ind in range(len(emaila)):
    enkriptatua=enkriptatua+str(100+ord(emaila[ind])+ord(klabea[ind % len(klabea)]))
return enkriptatua

Klabea nahi duzuna eta nahi duzun luzerakoa jar dezakezu. Beste script bat egin beharko dugu "dekriptatu" izenekoa, "enkriptatua" parametroa jaso eta eduki hau duena:

klabea="87hugf9iv"
emaila=""
for ind in range(len(enkriptatua)/3):
    emaila=emaila+chr(int(enkriptatua[ind*3:ind*3+3])-100-ord(klabea[ind % len(klabea)]))
return emaila

Klabeak aurreko metodoan idatzi dugunaren berdina izan behar du. Eta bukatzeko, lehen sortu ditugun "kontaktatu", "kontaktatu2" eta "kontaktatu3" elementuak aldatu, honela:

kontaktatu:

<dtml-var standard_html_header>
<h3>Kontaktatu <dtml-if norekin><dtml-var norekin>(r)ekin<dtml-else>blogaren egilearekin</dtml-if></h3>
<form method="post" action="kontaktatu2">
<input type="hidden" name="norekin" value="<dtml-if norekin><dtml-var norekin><dtml-else>blogaren egilea</dtml-if>">
<input type="hidden" name="emailanori" value="<dtml-if emailanori><dtml-var emailanori><dtml-else><dtml-var "enkriptatu('guremaila@guredomeinua.com')"></dtml-if>">
<table>
    <tr>         <td align="right" valign="top">Izena:</td>
        <td><input type="text" name="izena" value="" size="40"></td>
    </tr>
    <tr>
        <td align="right" valign="top">Posta elektronikoa:</td>
        <td><input type="text" name="emaila" value="" size="40"></td>
    </tr>
    <tr>
        <td align="right" valign="top">Gaia:</td>
        <td><input type="text" name="gaia" value="" size="40"></td>
    </tr>
    <tr>
        <td align="right" valign="top">Esatekoa:</td>
        <td><textarea name="edukia" rows="10" cols="40"></textarea></td>
    </tr>
    <tr>
        <td></td>
        <td valign="top"><input type="submit" value="Bidali"></td>
    </tr>
</table>
</form>
<dtml-var standard_html_footer>

kontaktatu2:

<dtml-var standard_html_header>
<dtml-call "kontaktatu3(norekin,dekriptatu(emailanori),izena,emaila,gaia,edukia)">
Zure mezua bidali da<br />
Jarraitzeko, egin klik <a href="<dtml-var blog_url>">hemen</a>.
<dtml-var standard_html_footer>

kontaktatu3:

Parametroak: norekin,norekinemaila,izena,emaila,gaia,edukia

Edukia:

<try:
    mailhost=getattr(context,context.superValues('Mail Host')[0].id)
except:
    raise AttributeError, "Mail Host object cant be found."
to_addr = norekinemaila
mMsg = """To: %s
From: %s
Mime-Version: 1.0
Content-Type: text/plain;
blogetik bidalitako mezua
Bidaltzailea: %s [%s]
Gaia: %s %s""" % (to_addr , emaila , izena, emaila, gaia, edukia)
mTo = to_addr
mFrom = emaila
mSubj = gaia
mailhost.send(mMsg, mTo, mFrom, mSubj)

Eta kitto!

Honekin ziurtatuta dugu spammer-ek ez dutela lortuko gure posta helbiderik ez guri erantzuten diguten jendearenik ere. Hala ere, ez da guztiz spama ekiditen. Nik herenegun nire posta helbidean spam-a jaso nuen, blogeko kontaktu orriaren bidez bidalia! Edozein modutan, spammer-ari jende mordo baten kontaktu orriak betetzea askoz zailagoa egiten zaio jende pila bati emaila bidaltzea baino, beraz uste dut (eta espero dut!) asko ez zaidala iritsiko... Baina nork daki, spammer-ak jartzen dizkiegun zailtasunak gainditzen joango dira eta agian laster kontaktu orrien bidez ere erraz bidaliko dute...

Aurreko artikuluak:

etiketak: ,
e-gor
e-gor dio:
2005/02/09 10:38

Arrazoia duzu, script-ak ez dira ongi agertzen testu egituratuaren renderizazioaren erruz.

Lehen kasuan, nik has_key nuen idatzita beti, baina batzutan lerro berean beste _ (underscore) bat agertzen da, orduan testu egituratu gisa interpretatzen du eta azpimarratuta bueltatzen, underscore sinboloak kenduta.

Bigarrenean, ind3 jartzen duen bi tokietan ind*3 behar du. Gertatu dena da bi asteriskoen artean dagoena kurtsibaz idatzi eta asteriskoak kendu dituela.

Eskerrik asko, Mikel. Orain zuzenketak eginda daude. Bertatik berriz kopiatuta, ondo ibili beharko lirateke.

Eta pozten naiz norbait aldaketa hau inplementatzen ari dela jakitean. Izan ere, spama oso arazo larria da. Nik lehengo lantokiko helbidea kontaminatuta neukan eta zabor-mezu piloa iristen zitzaizkidan (lehen foroek-eta ez zituzten neurri egokiak hartzen). Lantoki berriko helbideak urte eta erdi dauka eta ez zait spamik iristen, geroztik bai nik eta baita webgune gehienek ere neurriak hartzen ditugulako. Eta asko fastidiatuko lidake orain spama iristen hastea eibar.org-eko blog baten erantzuna eman dudalako. Beno, hau ez zait niri gertatuko nik erantzutean posta helbideaz gain blogaren url-a ere ematen dudalako eta egonez gero hori erakusten delako, baina beste askori gerta dakieke... Ohartarazi nuen horren inguruan sustatun ere, spam-ari buruzko artikuluari erantzunez, baina oraingoz zu zara bakarra (nik dakidala) zerbaitetan ari dena...

erral
erral dio:
2005/02/09 13:16

Orain bai, orain denak ongi funtzionatu du.

Eskerrik asko, e-gor

erral
erral dio:
2005/02/08 15:33

Aupa e-gor, pare bat komentario:

1- Helbideetara contact egiteko comment_body-n egiteko diozun aldaketan arazo pare bat daude haskey jartzen duelako has_key beharrean, eta neri behintzat errorea ematen dit. Beno, ez du errorea ematen baina 'except'-eko atala exekutatzen da.

2- Dekriptatuko begizta barruko sententzian erroreren bat dago ind3 aldagaia erabiltzen delako. ind jarri dut bere ordez baina chr() arg not in range(256) jaso dut.

Agur bat,

Mikel

Iruzkina gehitu

Erantzuna formulario hau betez utzi dezakezu. Formatua testu arruntarena da. Web eta e-posta helbideak automatikoki klikagarri agertuko dira.

Galdera: Zenbat dira hogei ken bi? (idatzi zenbakiz)
Erantzuna:
e-gorblog

e-gorblog

Egunez, Igor Leturia Azkarate pertsona arrunta da. Errenterian bizi den arrasatearra, 8etatik 17etara Elhuyarren lan egiten du eta arratsaldeak neskalagunarekin eta bere bi umeekin pasatzen ditu.

Baina gaua iritsi eta umeak lotara joaten direnean, e-gor bihurtzen da, interneteko bere alter-egoa, ziberespazioko informatikaririk komikizaleena eta komikizalerik informatikariena! Bere superbotereekin (interneteko kable-konexioa, bloglines, informatika aldizkariak, gadget-ak, komiki-bilduma, Errenteriko liburutegiko komikien atala eta batez ere bere jakinmin aseezina) eta bere superlaguntzaileak ondoan dituela (Patxi Lurra, DabilenHarria...), euskaldunon teknofobiaren eta komikiei buruzko aurreiritzien aurka burrukatzen du etengabe! Hemen duzu bere bloga: e-gorblog!

Bai, hor goiko aurkezpena superheroi batena da (ezin aproposagoa honelako blog batentzat, ezta?). Superheroia banintz zein izango nintzatekeen jakiteko the Superhero Personality Test egin nuen eta hona emaitzak:

You are Spider-Man
You are intelligent, witty, a bit geeky and have great power and responsibility.

Spider-Man
80%
Superman
70%
Green Lantern
65%
Robin
65%
The Flash
60%
Supergirl
55%
Hulk
55%
Iron Man
45%
Wonder Woman
35%
Catwoman
25%
Batman
0%
Lizentzia

Creative Commons-en baimena
Blog honetako edukia, Igor Leturiak eta beste kolaboratzaile batzuek egiten dutena, Creative Commons Aitortu-PartekatuBerdin 3.0 Unported baimen baten mende dago (irudiak salbu).

Harpidetza
Erantzunen harpidetza
Artxiboa
2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019
Artikulu aipagarriak

MythTV sorta
2004/11

"Pololoak" sorta
2004/11-12 - 2006/10-12 - 2007/02-03

Monoblogoa
2005/01/11

"Persepolis", xalotasunaren sakontasuna
2005/01/25

Elgetako Blogs&Beers 2005: nire inpresioa eta moblogging kontuak
2005/04/18

Firefox eta bere plugin zoragarriak
2005/05/11

"El País"-en komiki bilduma
2005/05/15

Euskarazko bi blog berri (bai, beste bi, baina hauek bereziak dira!)
2005/05/25

"Watchmen" sorta
2005/09-11 - 2006/10 - 2007/10 - 2008/07

"La cárcel de papel"-eko "Mis tebeos favoritos" saila I: 1etik 20ra
2005/11/08

"Goienkaria"-n agertu naiz
2005/12/08

Komikiak eta euskal rock-a
2005/12/14

Ruben Arozena "Ruben" komikigilea hil da
2006/01/02

Zope-rako DTML Calendar Tag produktua, euskaraz
2006/02/01

"Joyas Literarias Juveniles" bilduma, osorik eMule-n
2006/08/05

Argazkigintza eta DRM-a
2006/10/09

Paul Auster eta Euskararen Herria
2006/10/29

Angoulême sorta
2007/01-02

Gaur duela 25 urte nire bizitza aldatu zen
2007/04/23

Hergé-ren defentsan
2007/05/22

Ubuntu-ren bertsio berria, hobekuntza askorekin
2007/07/02

OLPC sorta
2007/12 - 2008/01

Guillermo Zubiaga, Marvel-eko komikilari euskalduna
2008/02/05

Asus EEE PC, ordenagailu txiki eta merkeen hurrengo sorta
2008/03/11

Agur, Ipurbeltz, agur... :-(
2008/08/04

"Café Budapest", gizatasuna eta bizikidetzaren aldeko aldarria
2008/08/25

"Arturo Erregea" serie mitikoa, Euskal Encodings-en! (beste askorekin batera)
2008/09/17

"Gazteak", beste serie mitiko bat euskaraz eskuragai!
2008/10/14

Pottokiek 50 urte!
2008/10/22

Europan ere OLPC-ren XO ordenagailuak erosteko aukera!
2008/11/12

Microsoft-en web zerbitzuetako gehienak, euskaraz!
2008/12/04

"Heroes"-en 2. denboraldia: ETB kirtenkeria errepikatzera, eta Euskal Encodings konpontzera
2009/01/23

I. Euskal OLPC Party-a, apirilaren 23an Donostiako Doka kafe antzokian
2009/04/16

Elkarrizketa egin didate 7K-n
2009/06/03

Azpiriren Spectrum-entzako jokoen azalak liburu batean
2009/10/06

Asterix, heroi garaitua
2009/10/29

"Ihes ederra", euskarazko komikigintzaren heldutasunaren konfirmazioa
2009/11/13

Pololoak 3: The making of
2009/11/22

5 urte 5!
2009/12/15

Nobela grafikoa, komikien prestigiorako ala mespretxurako?
2009/12/20

"Pololoak 3 - Atxeritoko balada", trilogiaren amaiera borobila
2010/01/13

Sinclair ZX Spectrum bat oparitu didate!
2010/01/19

Zergatik ez dudan liburu elektronikorik erosiko (gauzak aldatzen ez diren artean)
2010/01/27

Errealitate areagotua: munduaren pertzepzioa aberasten
2010/02/09

e-gorblog, "Nick dut nik" telebista saioan
2010/05/20

Sarearen neutraltasunari erasoak: Interneten izaera arriskuan
2010/06/02

"Avatar, azken aire maisua" osoa eta "Heroiak"-en lehen bi denboraldiak, Euskal Encodings-en
2010/07/22

Sistema eragileen guda berria
2010/12/14

Anubis 3.0 albumarentzat 3D animazio ederra
2010/12/27

Telebistaren benetako iraultza hemen da, eta ez da LTDa
2011/01/10

"Asterix galiarra" eta "Urrezko igitaia" berrargitaratu ditu Salvatek
2011/01/13

Euskarazko komikigintza digitalizazioaren aurrean
2011/01/27

"Ihes ederra"ren gaztelaniazko eta katalanezko bertsioak eta "Alokairuan", kalean
2011/02/20

Star Wars jatorrizko trilogia, euskaraz
2011/03/21

Sare sozialetan preso
2011/04/06

Zer dudan Steve Jobsen, edo Appleren, aurka
2011/10/14

Gaur 100 urte Adèle Blanc-Sec-en abenturak hasi zirela
2011/11/04

Euskarazko 8 komiki berri
2011/12/02

Social networks killed the RSS star?
2012/06/10