Du bist nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: WebStyleBoard. Falls dies dein erster Besuch auf dieser Seite ist, lies bitte die Hilfe durch. Dort wird dir die Bedienung dieser Seite näher erläutert. Darüber hinaus solltest du dich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutze das Registrierungsformular, um dich zu registrieren oder informiere dich ausführlich über den Registrierungsvorgang. Falls du dich bereits zu einem früheren Zeitpunkt registriert hast, kannst du dich hier anmelden.

1

Freitag, 16. Mai 2003, 10:46

Lokaler Mail-Filter

Hallo zusammen. :)

Ich bin recht neu mit Perl, aber heute habe ich es gebraucht. Mein Mail-Programm ist an einer E-Mail gescheitert und wollte nichts mehr herunterladen. Ich als mit FTP auf den Server und alle Mails als Datei gesaugt. Waren seit gestern über 70 Stück. Ein Filter wäre also angebracht gewesen:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/usr/bin/perl

$dir = "/home/memowe/public_html/memowe.de/mail";

opendir(DIR,$dir) || die "Error";

while($file = readdir(DIR)) {
        if($file =~ /\.de$/) { #nur in Mails filtern, enden alle auf .de
                open(IN,$file) || die "Fehler: konnte $file nicht öffnen.\n";
                @contents = <IN>;
                for($i=0; $i<$#contents; $i++) {
                        if($contents[$i] =~ /penis/i) {
                                system "rm", "$dir/$file";
                                print "$dir/$file deleted.\n\n";
                        }
                }
                close IN;
        }
}

closedir(DIR);


Optimierungsvorschläge?

Dankeschön. Bis spötär. :)
Mirko

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »memowe« (16. Mai 2003, 10:47)


2

Montag, 19. Mai 2003, 09:46

RE: Lokaler Mail-Filter

Hallo.

Also der Code ist für einen neuen in Perl gut :) Keine weiteren Vorschläge.

Bei einer Zeile weiß ich nicht wie die so genau ist:

system "rm", "$dir/$file";

Ich glaube die löscht die Email, oder? Mir war bis jetzt nur der Befehl unlink bekannt, aber wenns damit auch geht, ist das natürlich auch gut ;)

MfG MaMo

3

Dienstag, 20. Mai 2003, 00:14

RE: Lokaler Mail-Filter

Zitat

Original von MaMo
Also der Code ist für einen neuen in Perl gut :)

Pfuh. Danke.

Aber normalerweise ist das doch in Perl so, dass dann irgendein Crack daherkommt und das auf eine Zeile mit 42 Zeichen kürzt, die kein normalsterblicher mehr lesen kann. ;)

Zitat

Keine weiteren Vorschläge.

Keine weiteren Fragen.

Zitat

Bei einer Zeile weiß ich nicht wie die so genau ist:
system "rm", "$dir/$file";
Ich glaube die löscht die Email, oder?

u r right man. ;) Ich habe hier Perl quasi als Ersatz für ein Shellscript verwendet. bash hätte das sicherlich auch gekonnt, aber ich glaube, dass ich von Perl mehr habe, da vielseitiger. Und weil es nur ein kurz zusammengehacktes Shellscript ist, ruft es auch einfach nur Programme auf, in diesem Fall rm, was auf Unixen Dateien löscht ("remove").

Zitat

Mir war bis jetzt nur der Befehl unlink bekannt

OK, das wäre vermutlich schöner, da plattformunabhängig. :)

Mirko