Re: [OT] Maildrop-Rezepte?
On 02.05.07 13:21:51, Matthias Haegele wrote:
> Hallo Ihr!
>
> Nachdem mir nun die TB-Filterung zu aufwendig wird und ich dies mittlerweile an 4 Clients fuer 1
> Account machen müsste
> möchte ich nun maildrop einsetzen.
>
> Hat da jemand vielleicht schon ein "Rezept" parat dass auf Mailinglisten greift,
> das ich dann anpassen könnte?
Das hier funktioniert hier sehr gut (allerdings hab ich reale Mailboxen
in $HOME):
# Match ML's depending on To/Cc and lookup box in the gdbm-db
gdbmopen("$MDDIR/lists.db")
foreach /^(To|Cc): .*/
{
foreach (getaddr($MATCH)) =~ /.+/
{
listbox = gdbmfetch(tolower($MATCH))
if($listbox ne "")
{
`/usr/bin/env test -d "$MAILDIR/$listbox.$CURMONTH"`
if( $RETURNCODE == 1 )
{
`$MAILDIRMAKE "$MAILDIR/$listbox.$CURMONTH"`
}
to $MAILDIR/$listbox.$CURMONTH
}
}
}
Die lists.db ist eine berkley db und wird mit folgendem Python Skript
gefuettert:
,----
| #!/usr/bin/env python
|
| import sys
| import gdbm
|
| def usage():
| print """ Usage: add_maildrop_rule.py <gdbmfile> <rule> <maildir>
|
| <gdbmfile> The gdbm database to use
| <address> The address to insert
| <maildir> This is the directory name that is used as
| base for the destination maildir;
| The given dir will be under $HOME/.Mail and
| will be appended the year and month if the
| gdbmfile==lists.db
| """
|
| def main():
| if len(sys.argv) < 4:
| usage()
| return 1
| gdbmfile=sys.argv[1]
| gdbmkey=sys.argv[2].strip("\"")
| gdbmval=sys.argv[3].strip("\"")
| if gdbmfile=="" or gdbmkey=="" or gdbmval=="":
| usage()
| return 1
| db = gdbm.open(gdbmfile, "c")
| if db.has_key(gdbmkey):
| response=raw_input("Rule already exists in Database. Overwrite?[Y/n]")
| if response.lower() == "n":
| print "Aborting"
| return 1
| db[gdbmkey] = gdbmval
| db.sync()
| print "Wrote %s=%s to %s" %(gdbmkey,gdbmval,gdbmfile)
`----
if __name__ == "__main__":
sys.exit(main())
Die Anregung kam damals von einem der anderen Maildrop User die hier
mitlesen, Name ist mir leider entfallen.
Andreas
--
Your domestic life may be harmonious.
Reply to: