[Postfixbuch-users] doppelte Mails ???

lexa lexa at acpweb.de
Mo Nov 27 17:47:02 CET 2006


> Andreas Winkelmann schrieb:
> >
> > ... Vermutlich speicherst Du sie da mehrmals.
> >
> Wenn dem so ist, dann lasse ich mich sehr! gern korrigieren. Hier ist
> mein noch nicht
> sehr optimiertes Testscript (Bin noch Sieve Anfänger):
> 
> require "fileinto";
> 
> if address :matches ["from","to","cc"] "*suse.*"
> {
>       fileinto "suse";
> }
> elsif address :matches ["from","to","cc"] "*kde.org*"
> {
>       fileinto "kde";
> }
> [...]


OT ;-)

ich weiss nicht, mir gefallen diese vielen "elsif" nicht. Geschmacks-
sache? Ist jedenfalls schwer lesbar und dadurch fehlerträchtig.
Ausserdem fehlen "stop" und "keep" Anweisung(en), die die Lesbarkeit
und Performance verbessern.

Meine sieve Scripte sind nach folgendem Schema aufgebaut, nur als
Anregung:

-------------------------------
# in sich geschlossenes "if", man erkennt genau wo's aufhört, vor
# allem, wenn man viele Match-Zeilen hat:
if header :contains "from"
   [
      "@mysql.com",
      "infocenter at borland.com"
   ]
{
   fileinto "pub.Newsletter";
   stop;
}

# alle weiteren ...
if anyof
   (
      header :regex "To"
      [
         "spamtrap\@(.*)"
      ],
      header :regex "Subject"
      [
         "^\\*\\*\\*SPAM\\(+(.*)",             #beginnt mit "***SPAM(" 
         "(^Re:.+news|^Re:.+your|new$|^re$)"
      ]
   )
{
   discard;  # Mail löschen
   stop;
}

# die letzte Anweisung
else { keep; }
-------------------------------

"stop" weist Sieve an, an dieser Stelle aufzuhören. Ansonsten macht
er weiter im Code, was aber überflüssig ist, weil die erwünschte
Aktion bereits erledigt ist.

PS: Die ultimative Sieve-Doku habe ich aber leider auch noch nicht
gefunden.


Gruss - Axel



elsif address :matches ["from","to","cc"] "*@gnome*.org*"
> {
>       fileinto "gnome";
> }
> elsif address :matches ["sender","to"] "*postfixbuch-users*"
> {
>       fileinto "postfix";
> }
> elsif address :matches ["sender","to"] "*blfs*@linuxfromscratch.org*"
> {
>       if address :matches ["sender","to"] "*blfs-book*"
>       {
>             fileinto "blfs.book";
>       }
>       elsif address :matches ["sender","to"] "*blfs-dev*"
>       {
>             fileinto "blfs.dev";
>       }
>       elsif address :matches ["sender","to"] "*blfs-support*"
>       {
>             fileinto "blfs.support";
>       }
>       else
>       {
>             fileinto "blfs";
>       }
> }
> elsif address :matches ["sender","to"] "*lfs*@linuxfromscratch.org*"
> {
>       if address :matches ["sender","to"] "*lfs-announce*"
>       {
>             fileinto "lfs.announce";
>       }
>       elsif address :matches ["sender","to"] "*lfs-book*"
>       {
>             fileinto "lfs.book";
>       }
>       elsif address :matches ["sender","to"] "*lfs-dev*"
>       {
>             fileinto "lfs.dev";
>       }
>       elsif address :matches ["sender","to"] "*lfs-support*"
>       {
>             fileinto "lfs.support";
>       }
>       else
>       {
>             fileinto "lfs";
>       }
> }
> elsif address :matches "from" "*@nulltarif.de"
> {
>       fileinto "nulltarif";
> }
> elsif address :matches "from" ["*handy.de", 
> "newsletter at mail.idgcom.de"]
> {
>       fileinto "news";
> }
> elsif address :matches "from" "*cinestar.de"
> {
>       fileinto "kino";
> }
> elsif address :matches "from" ["*winload.de*",
> "*@listsrv.idginteractive.de*"]
> {
>       fileinto "computer";
> }
> elsif address :matches ["from", "to"] ["*lyris*@mailliste.de*",
> "*devolo-news*@mailliste.de*"]
> {
>       fileinto "developer";
> }
> 
> Mfg Thomas.
> 
> -- 
> _______________________________________________
> Postfixbuch-users mailingliste
> Heinlein Professional Linux Support GmbH
> 
> Postfixbuch-users at listi.jpberlin.de
> http://listi.jpberlin.de/mailman/listinfo/postfixbuch-users
> 
> 




Mehr Informationen über die Mailingliste Postfixbuch-users