Archiv

Archiv für den Monat September 2013

Updated 2017-03-06: Now properly handles oldmail files to avoid multiple downloads of old mail when calling different sets.

Faced with a growing number of mailboxes to fetch messages from, I devised a little script to help me easily manage lots of accounts with getmail. It was inspired by this post from Charles Cazabon, the developer of getmail.

The advantage of this solution is that you need to create, name and manage getmail’s rcfiles for different mailboxes in one place only, without modfying other scripts, crontabs or whatever.

First off, this is the folder structure I created. It may remind you of the old /etc/rc.d/ folder structures that were common for system start scripts before we had upstart and all this modern whoop-de-do:

.getmailsets
├── set-all
│   ├── rc.blog
│   ├── rc.freemail
│   ├── rc.provider
│   ├── rc.uni
│   └── rc.work
├── set-often
│   ├── rc.provider -> ../set-all/rc.provider
│   ├── rc.uni -> ../set-all/rc.uni
│   └── rc.work -> ../set-all/rc.work
├── set-rare
│   ├── rc.freemail -> ../set-all/rc.freemail
│   └── rc.blog -> ../set-all/rc.blog
└── set-important
    ├── rc.uni -> ../set-all/rc.uni
    └── rc.work -> ../set-all/rc.work

.getmail/ -> .getmailsets/set-all/

All the getmail-typical rcfiles live in the .getmailsets/set-all/ folder, which is symlinked to .getmail/. This ensures that things will work like any normal getmail setup whenever you don’t use the sets.

Specific sets of rcfiles are defined by folders with a corresponding name and contain links to the actual rcfiles in the „all“ set.

This is the script that puts this structure to use. I call it checkmail:

#!/bin/bash

RCARGS=""
RCPATH=/home/myself/.getmailsets
RCSET=$1  # first argument names the set,
shift     # then gets deleted

for F in $RCPATH/set-$RCSET/rc.*; do
  RCARGS="$RCARGS --rcfile $(basename $F)"  # prepares --rcfile args
done

exec getmail $@ --getmaildir $RCPATH/set-all/ $RCARGS
                # make sure getmail always uses same oldmail-*
           # $@ holds all the (remaining) arguments to the script.

You use checkmail by calling it with the set name as the first argument, and any arguments you want to pass on to getmail, like in these examples:

$ checkmail all -q
$ checkmail important -v
$ checkmail rare -q -d

And these calls, of course, are what you want to place in your scripts, shortcuts and whatnot. You can then manage the set contents or rename the rcfiles in your .getmailsets without changing any of the scripts. How about, for example, a button on your desktop that runs:

$ ssh mailserver "checkmail important -v"

The script is also ideal, of course, for your crontabs. Here’s an example of my configuration:

*/5  0-3,9-23  * * * checkmail often -q
  0      8-23  * * * checkmail rare -q

Since $HOME/.getmail/ is symlinked to .getmailsets/set-all/, you can also call getmail for any single mailbox like your ordinarily would:

$ getmail -r rc.work
$ getmail -vr rc.uni

Nach einem Bericht des Hamburger Abendblatts soll es in der Hamburger Innenstadt bald „Internet für alle und überall“ geben. Zahlreiche Medien kopieren die Geschichte unkritisch, die SPD feiert die Ankündigung kräftig ab, und sich selbst gleich mit.

Warum das Angebot aus Kundensicht alles andere als frei und universell verfügbar ist, wird bei der Elbmelancholie ausführlich beschrieben: Es geht um Telekom-Hotspots, die nur eine Stunde kostenlos genutzt werden können, und dann nur mit Zwangsregistrierung, und (dank Störerhaftung) Pauschalüberwachung der Nutzer.

Um sich in diesem zweifelhaften Glanz doch noch irgendwie zu sonnen, jubelt der SPD-Netzpolitiker Hansjörg Schmidt auf seiner Homepage, dass man „einen sehr großen Erfolg vermelden“ könne. Vorgezeigt wird statt echter Veränderungen (die nur auf Bundesebene möglich sind) immer wieder eine Bundesratsinitiative der Hamburger SPD.

Diese Initiative der SPD wurde bereits direkt nach ihrer Vorstellung vor etwas über einem Jahr von Fachleuten kritisiert, unter anderem von der Piratenpartei Hamburg und der und der Digitalen Gesellschaft. Sie stellten klar, dass die SPD-Initiative nur kommerziellen Anbietern hilft und ihnen Zensur- und Erfassungstechnik vorschreibt, um sich von der Haftung bei Urheberrechtsverstößen freizukaufen. Privatleute mit offenen WLANs und Initiativen wie Freifunk, die bewusst auf das Identifizieren ihrer Nutzer und das Sperren von Inhalten verzichten, sollen weiterhin schutzlos der Abmahnmafia ausgesetzt bleiben. Inzwischen ist die Initiative gescheitert.

Fassen wir zusammen:

  • Die SPD bringt eine erfolglose Bundesratsinitiative ein, die kommerzielle Anbieter mit Erfassungs- und Filtertechnik von der Haftung befreit, Privatnutzern und Freifunk-Initiativen aber kein Stück weiterhilft.
  • Die Drosselkom kündigt an, kostenpflichtige Hotspots mit Zwangsregistrierung in Hamburg zu installieren.
  • SPD-Netzpolitiker sprechen von einem „sehr großen Erfolg“. Hä?

In seinem Blog weist Hansjörg Schmidt übrigens als Verteidigung gegen die o.g. Kritik darauf hin, dass der Freifunk Hamburg zu einer Expertenanhörung in der Bürgerschaft eingeladen war. War er auch: von der Linksfraktion. (Nachtrag: Das ist nicht richtig – Hansjörg Schmidt hat als Ausschussvorsitzender die Sachverständigen eingeladen.)