Erweiterter Spamschutz für Matt’s FormMail Script

5.03.2010 | Autor: h4wk | Tags: , , , ,

Hier eine kleine Erweiterung für das FormMail Script von Matt. Mit Hilfe dieser Erweiterung kann in Formularen, die ihre eMail über dieses Perlscript verschicken, die eMailadresse “verschlüsselt” dargestellt werden. Das bedeutet das, dass im Formular statt name@domain.de einfach name [-at-]domain.de angegeben werden kann. Hierbei ist es egal was zwischen den eckigen Klammern steht, das was zwischen den eckigen Klammer steht wird herausgeschnitten und stattdessen ein ‘@’ eingesetzt.

Alle anderen Funktionen des Scripts werden nicht beeinträchtigt, sie funktionieren ganz normal weiter. Auch erkennt das Script automatisch, ob eine eMailadresse “verschlüsselt” dargestellt wurde oder nicht.

1
2
3
4
5
6
7
8
9
10
11
12
13
foreach $send_to (split(/,/,$Config{'recipient'})) {
#Ueberprueft, ob die eMailadresse vercryptet (name[-@-]domain.de uebergeben wurde und wandelt sie in name@domain.de um
        if ($send_to =~ /\[/){
            @adresse_1 = split(/\[/,$send_to);
            @adresse_2 = split(/\]/,$send_to);
            $send_to = @adresse_1[0]."@".@adresse_2[1];
        }
        foreach $recipient (@recipients) {
            if ($send_to =~ /$recipient$/i) {
                push(@send_to,$send_to); last;
            }
        }
}

Es muss folgende Stelle im Originalscript ersetzt werden:

1
2
3
4
5
6
7
foreach $send_to (split(/,/,$Config{'recipient'})) {
            foreach $recipient (@recipients) {
                if ($send_to =~ /$recipient$/i) {
                    push(@send_to,$send_to); last;
                }
            }
}

No related posts.

  1. Stfan
    März 18th, 2012 at 11:37

    Hallo, bei mir funktioniert diese Aenderung nicht, es kommt folgende Fehlermeldung:
    Internal Server Error
    The server encountered an internal error or misconfiguration and was unable to complete your request.

    Please contact the server administrator, [no address given] and inform them of the time the error occurred, and anything you might have done that may have caused the error.

    More information about this error may be available in the server error log.