[Maildrop] opbouw van maildroprc

Pagina: 1
Acties:

  • ProZa|IA
  • Registratie: Januari 2001
  • Laatst online: 15-06-2005
Hallo,

Wie kan mij helpen aan een goede duidelijke maildrop howto ?
Ik wil op een debain bak waar ook qmail draait filtering gaan toepassen maar ik begrijp niets van de man pages en wat ik bij elkaar gegoogled heb is vrijwel gelijk aan de manpages.

Wat aanvullende info ... debian, qmail (volgens de LWQ) waar voor zover ik het snap maildrop al mee geinstalleerd is. Fetchmail haalt oa. een bSMTP account leeg die ik wil filteren.

Why is called tourist season, if we can't shoot them ? specs


  • bkor
  • Registratie: November 2000
  • Niet online
De maildropfilter manpage vond ik zelf behoorlijk duidelijk. Wat wil je doen en wat lukt er niet?

Paar voorbeelden.

1e: In mijn ~/.fetchmailrc start ik maildrop met de mda optie "/usr/bin/maildrop -f %F ~/.mailfilter fetchmail". Zoals je in de maildrop manpage kunt lezen zijn de extra argumenten (de fetchmail optie) aan maildrop in maildroprc beschikbaar als $1, $2, etc.

Vervolgens controleer ik binnen ~/.mailfilter of $1 gelijk is aan "fetchmail". Zoja, dan filter ik de mail met spamassassin. Indien het een spammail betreft voegt dit programma een extra header toe. Indien deze header in de mail te vinden is, dan wordt de mail naar mijn spamfolder gestuurd.
code:
1
2
3
4
5
6
7
8
9
10
11
MAILDIR=$HOME/Mail
if ( "$1" eq "fetchmail" )
{
  xfilter "/usr/bin/spamc -f"

  # Move all spam messages to spamfolder
  if ( /^X-Spam-Flag: YES$/ )
  to $MAILDIR/spam

  to $MAILDIR/inbox
}


2e: Hier controleer ik of de mail van majordomo achtige software komt (tussen de [ en ] staan een spatie en een tabteken):
code:
1
2
3
# Check for majordomo mail
if ( /^From:.*[   ]<?([mM]ajordomo|listproc|mailman-owner|listar|[a-z0-9-]+-(request|help)|listserv|sympa)@/ && ! /^User-Agent:/ )
to $MAILDIR/majordomo


3e: Ik was gesubscribed op een mailinglist waar veel virussen naar gestuurd werden. Hierbij gebruikte ik de volgende regels om deze te filteren (tussen [ en ] weer spatie, tab). Door de :b wordt de body doorzocht. (ipv to /dev/null kan je exit gebruiken)
code:
1
2
3
4
5
6
7
# Klez
if ( /^<iframe src=(3D)?cid:.* height=(3D)?0 width=(3D)?0>$/:b )
to /dev/null

# Stupid attachments..
if ( /^[  ]+(file)?name=\"?.*\.(vbs|bat|chm|cmd|com|exe|hta|js|jse|pif|scr|shb|vbe|vbs|vbx|wsf|wsh)/:b )
to /dev/null


4e: Mail van bugzilla (oa http://bugzilla.mozilla.org/ en http://bugzilla.gnome.org/). Hierbij voeg ik een extra References header toe, waardoor Mutt de mails bijelkaar thread (zelfs indien de Summary van een bug wordt aangepast). Mails zonder bug# gaan weer via spamassassin.

Een voorbeeld subject van een bugzilla mail
Subject: [Bug 160602] Large integers, e.g. getTime(), causing crash at 0x39393929
De filter:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# Get bug# from subject..
if ( /^Subject: (New: )?\\[Bug ![0-9]+!\]/ )
{
  # Bug# is known
  bugnr=$MATCH2

  # Make sure different subjects are threaded together
  xfilter "reformail -a'References: <$bugnr@bmo>'"

  to $MAILDIR/bugzilla/$bugzilla
}

# Filter mails without a bug# to spamassassin
xfilter "/usr/bin/spamc -f"
if ( /^X-Spam-Flag: YES$/ )
{
    cc "|/usr/bin/spamassassin -r"
    to $MAILDIR/spam
}

#   deliver the email
to $MAILDIR/bugzilla/$bugzilla

[ Voor 19% gewijzigd door bkor op 14-02-2003 22:43 . Reden: spaties weggehaald ]