[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: