Ä <[EMAIL PROTECTED]>:

>  La problemo estas ke oni sendadas al mi mesaÄojn kun aldonaÄoj *.exe
>  140 aÅ 150 Kb grandaj. Mi ne volas elÅuti ilin por poste forviÅi per
>  procmail. Äu iel, sen peti iun ajn al servilo por instalado de
>  programon en la servilo, mi povus fari, ke procmail agu en servilo
>  antaÅ elÅuto de mesaÄoj? Äu vere per fetchmail ne eblas? Äu per getmail
>  eblas?

Tio dependas de la retservo, Äu oni povas ruli iujn filtrilojn en la
servilo. Multaj homoj havas aliron nur per POP3. Tamen, via problemo
Åajnas esti la viruso Swen, kiu estas facile rekonebla per la ÄapaÄo.
Vi eble povas adapti la kunsenditan Perl-programeton, kiun mi uzas por
forigi Äiujn mesaÄojn kun la menciita granda kaj aÅ majuskla SUBJECT
aÅ manko de mencio pri "rano" en la ÄapaÄo. (Evidente vi ÅanÄu la
vorton "rano".)

>  Dua problemo: Mi povis krei regulojn por procmail, sed nur reguloj por
>  vorto en kampoj de sendanto kaj temo de mesaÄo. Mi serÄis kaj trovis
>  ekzemplojn de reguloj por bari mesaÄojn kun aldonaÄoj (*.exe, *.bat 
>  ktp) sed provante ilin, verÅajne neniu funkciis, Äu oni donu al mi
>  efikan kaj simplan recepton por bari iun ajn mesaÄojn kun tiuj
>  aldonaÄoj? Mi akceptas aliajn, kiuj sendas aÅtomate msÄ al sendanto, al
>  popmaster ktp...

Mi pensas, ke procmail ne komprenas la MIME-strukturon de mesaÄoj, sed
Äi povas apliki regulajn esprimojn al la korpo de mesaÄo, kaj oni
povas alvoki aliajn programojn de procmailrc por fari eventualajn
komplikajn analizojn. Oni bezonas la flagojn "HB" por rigardi la
korpon.

Mi uzas procmail por forigi duoblaÄojn, Äar mi lasas mesaÄojn Äe la
servilo, kaj de tempo al tempo mi pro eraro ricevas kelkcent mesaÄojn
denove, kio povas esti tre Äena. La koncernaj reguloj en procmailrc
estas:

md5db=$MAILDIR/md5.db

LOCKFILE=$md5db$LOCKEXT

:0HB
* ? $HOME/bin/maildupe 14 "$md5db"
dupes

LOCKFILE

Kompreneble, maildupe estas alia perlaÄo.

>  Kiam mutt mem prenas mesaÄojn el servilo, estadas legebla (legas 13 el 
>  42 mesaÄoj ****** kb) Äis "42 el 42" ... kaj "Nova(j) mesaÄo(j) en
>  poÅtfako". Per fetchmail, .... Äi aÄe raportas Äio en xconsole per
>  "-v", kaj raportas malbone ankaÅ en xconsole sen "-v"... Mi sopiras
>  elÅuto per mutt mem, Äu eblas ruli elÅuto per mutt + procmail?

Mi supozas, ke ne facile.

Edmundo
#!/usr/bin/perl -w

use Mail::POP3Client;

print "SWEN-mortigilo\n";

$host = "pop.retservo.com";
$user = "uzanto";
$secs = 3600;
$logs = "log";

print "Host ($host): ";
$_ = <>; chomp $_;
$host = $_ if /./;

print "User ($user): ";
$_ = <>; chomp $_;
$user = $_ if /./;

print "Password: ";
system('/bin/stty', '-echo');
$_ = <>; chomp $_;
print "\n";
system('/bin/stty', 'echo');
$pass = $_;

print "Seconds ($secs): ";
$_ = <>; chomp $_;
$secs = $_ if /./;

print "Log file ($logs): ";
$_ = <>; chomp $_;
$logs = $_ if /./;

exit if fork();

for (;;) {
    $pop = new Mail::POP3Client(USER     => $user,
                                PASSWORD => $pass,
                                HOST     => $host);
    @size = $pop->ListArray;
    open(L, ">>$logs");
    for ($i = 1; $i <= $pop->Count(); $i++) {
        if (145000 < $size[$i] && $size[$i] < 165000) {
            @head = $pop->Head($i);
            if (grep(/^SUBJECT:/, @head) || !grep(/^\S.*rano/i, @head)) {
                $t = gmtime;
                $pop->Delete($i);
                print L "\n$t\n", join("\n", @head), "\n";
            }
        }
    }
    close(L);
    $pop->Close();

    sleep($secs);
}

Reply via email to