Pythonmania.de
Script different! Mein Icon

Navigation:

 Startseite
 Python bei O'Reilly
 Python & Tkinter
 Tkinter (deutsch)
 Tkinter (english)
 ftp mit Python
 Dialogboxen
 Kapitän
 Warum Python?
 Erste Schritte
 Grafische Ausgabe
 Das Modul W
 Easy Dialogs
 Mac File Dialogs
 Apfelmännchen
 Piddle & MacOS X
 Dancing Python
 User-Agenten
 XML-RPC
 Blogger API
 Anti-Spam-Script
 Template-Engine
 Python & XML
 Python Cookbook
 Impressum
 Schockwellenreiter

Python Logo

fakeMail() in Python

Das fakeMail()-Script in Python

Python Icon Das Python-Script für die Anti-Spam-Aktion folgt weitestgehend dem gleichnamigen UserTalk-Makro. Auch die Parameterübergabe ist identisch:

Alle Parameter sind optional und mit mehr oder weniger sinnvollen Werten vorbesetzt: numberOfMails ist die Anzahl der generierten Adressen, Default is 20, trenner sind die Trennzeichen zwischen den Mails, per Default wird ein Komma und ein Leerzeichen (", ") eingefügt. Mit prefix und postfix (die per Default nichts tun), kann man eventuell die Ausgabe zwischen HTML-Kommentaren verstecken.

Doch nun der Quelltext:

import random

def makeName(n):
   s = ""
   for i in range(n):
      s = s + chr(random.randint(97, 122))
   return s

def fakeMail(nOfMails=20, breakS=", ", prefix="", postfix=""):
   tldList = ["com", "net", "org", "mil", "edu", "de", "biz", "de", "ch", "at", "ru", "de", "tv", "com", "st", "br", "fr", "de", "nl", "dk", "ar", "jp", "eu", "it", "es", "com", "us", "ca", "pl"]
   result = ""
   for i in range(nOfMails):
      nameLength = random.randint(3, 10)
      mailName = makeName(nameLength)
      serverNameLength = random.randint(4, 20)
      serverName = makeName(serverNameLength)
      tldName = random.choice(tldList)
      myMail = mailName + "@" + serverName + "." + tldName
      myMail = '<a href="mailto:' + myMail + '"><b>' + myMail + '</b></a>'
      if i == (nOfMails - 1):
         result = result + myMail
      else:
         result = result + myMail + breakS
   return prefix + result + postfix

if __name__ == "__main__":
   print fakeMail()

Als erstes wird eine Liste von Top-Level-Domains (TLDs) vereinbart. Der einfachste Weg, bestimmte Domains per Zufall häufiger auftreten zu lassen, als andere, ist, diese mehrmals in die Liste einzutragen. Ihr könnt diese Liste nach eurem Gusto ergänzen, das Skript fragt nötigenfalls die Länge der Liste ab. Oben gibt es die Funktion, die eine zufällige Email-Adresse erzeugt (makeName(n)) und schließlich wird mit Hilfe dieser Funktion die gewünschte Anzahl von Email-Adressen ausgegeben.

Links im Schockwellenreiter werden immer fett ausgegeben, wem dies nicht behagt, der kann einfach die beiden Tags <b> und </b> in der letzten Zeile, die mit myMail beginnt, löschen.

Mit Hilfe der if __name__ == "__main__":-Konstruktion läuft das Modul auch standalone und gibt den HTML-Code für 20 Email-Adressen aus, die ihr dann in Eure Webseiten kopieren könnt.

Spammer


Mein Icon © Copyright 2000 - 2002: Jörg Kantel.
Last update: 13.10.2002; 21:25:42 Uhr.
This site is edited with Radio UserLand, the first personal Web Application server for Windows and Macintosh.  Let iCab smile  Site Meter