Mailing mit Linux

Hi,

da ich seit Jahren absolut keine Ordnung in meinem Mails habe wollte ich mich jetzt mal mit dem Thema etwas beschäftigen. Ich wollte gerne meine Mails periodisch runterladen lassen und in Mailboxen vorsortieren.
Dazu habe ich mir fetchmail so eingerichtet, dass es procmail aufruft:

.fetchmailrc
Code:
poll imap.1und1.de with proto IMAP user '*****@**********' there with password '********' is 'mathias' here options keep fetchall ssl mda '/usr/bin/procmail'

Das keep behalte ich erstmal aus Sicherheitsgründen.

.procmailrc
Code:
PATH=$HOME/bin:/usr/bin:/bin:/usr/local/bin:.
MAILDIR=$HOME/Mail 
DEFAULT=/var/spool/mail/mathias
LOGFILE=$MAILDIR/procmail.log
VERBOSE=off

:0 H
        * ^From:.*mr-x@y.de
        mr-x

:0 H
        * ^From:.*mr-y@wiso.uni-erlangen.de
        mr-y

:0 H
        * ^From:.*mr-y@live.de
        mr-y

# ...

# drop the rest into the default mailbox
:0 H
        * .*
        default

Da ich alles in ~/Mail haben wollte habe ich die letzte Regel so gewählt, dass alles in der "default" mailbox landet.

Ich habe aber noch ein paar Probleme:

1) Als Mail Client würde ich gerne mutt verwenden, der sagt mir aber, dass ~/Mail/default keine Mailbox ist:

/home/mathias/Mail/default is not a mailbox.

Den Mutt habe ich so eingerichtet, dass er das default File als spool file nimmt:

Code:
set spoolfile=~/Mail/default
set folder = ~/Mail
mailboxes =mr-x
mailboxes =mr-y

2) Abgesehen davon speichert procmail das Zeug ja in diesem berkley mbox Format, das ja alle Mails einer Mailbox in einer Datei abspeichert. Das hätte ich gerne im Maildir Format welches Ordner und einzelne Files benutzt damit man auch mal nach Infos grep-en kann. Wie kann ich procmail das beibringen?

3) Angenommen ich wäre soweit, dass das alles läuft, denn fehlt ja noch Mails versenden. Was kann ich dazu nehmen? Ich benutze immer Postfix um SMTP smarthosts aufzusetzen, aber dann würde ja alles was nach localhost:25 geschickt wird über meinen Mail-Account bei 1und1 rausgehen. Da gibts irgendwie noch Aufklärungsbedarf ...


cu
serow
 
Ich habe denke ich mal so ein Setup wie du es dir wuenscht, also Mail aus verschiedenen Quellen (darunter einmal IMAP) mit fetchmail abholen, durch procmail sortieren lassen und in einem Maildir speichern. Mir sind ein paar Unterschiede zu deinen Konfigurationsdateien aufgefallen, aber wahrscheinlich sind das alles nur kosmetische Sachen. Ich poste einfach mal die relevanten Teile meiner Konfiguration:

fetchmailrc:
Code:
set daemon 300

defaults
    proto pop3
    mda "/usr/bin/procmail -d %s"

poll imap.imaphost.de
    port 993
    proto imap
    user "foo@imaphost.de"
    ssl
    pass "foobar"

procmailrc:
Code:
SHELL=/bin/bash
MAILDIR=$HOME/Mail

:0fw
    | bogofilter -e -p

:0
    * ^X-Bogosity: Spam, tests=bogofilter
    $MAILDIR/spam-bogofilter/

:0
    * ^X-Bogosity: Unsure, tests=bogofilter
    $MAILDIR/unsure-bogofilter/

:0
    * Subject:.*(\[studierende\-informatik\]|\[alle\-imt\-studierende\]).*
    $MAILDIR/uni/

:0
    * ^List\-Id:.*rbfsmi.*
    $MAILDIR/rbfsmi/

# Do a catch-all so no mail goes to /dev/null
:0
    *
    $MAILDIR/inbox/

Wichtig ist hierbei denke ich das '/' am Ende der Mailboxpfade (ich weisz, dass ich das da mit einer bestimmten Absicht hingemacht habe, kann mich aber leider nur noch dunkel daran erinnern).

muttrc:
Code:
set from="gbe@ring0.de"
set sendmail="/usr/bin/msmtp"

set spoolfile="~/Mail/"
set folder="~/Mail/"
set mbox_type=maildir
set record="~/Mail/sent"
set postponed="~/Mail/postponed"

mailboxes =rbfsmi =uni
mailboxes =unsure-bogofilter =spam-bogofilter

macro index,pager S "<pipe-entry>bogofilter -Ns" "mark message as Spam"
macro index,pager H "<pipe-entry>bogofilter -Sn" "mark message as Ham"

Dabei ist das
Code:
 set mbox_type=maildir
wichtig.

Als SMTP Mailer verwende ich msmtp, wie man in der muttrc sehen kann. Das benoetigt allerdings einen externen SMTP Server. Meine msmtprc sieht so aus:

Code:
defaults
    auth login

account default
    host localhost
    port 5025
    from foo@bar.com
    user foo@bar.com
    password foobar

Host und Port sehen dabei so merkwuerdig aus, weil ich SMTP ueber SSH Tunnele, allerdings sollte das fuer dein Setup erstmal egal sein.
 
Zuletzt bearbeitet:
Hi,

vielen Dank für deinen Beitrag. Danach hatte ichs in 5min soweit, dass es lief. Das mit SMTP habe ich jetzt einfach so gelöst, dass ich den 1und1 SMTP weiterbenutze. Spricht ja eigentlich nichts dagegen ... Echt verrückt, dass ein Slash am Ende das Format bestimmt ... und ich suche die ganze Zeit vergeblich in der man page nach einer format Option oder sowas :D

Was mit noch aufgefallen ist ist der Name der Mail Dateien: "1270967544.24266_0.mini:2,S". Da hängt der Name von dem Rechner dran der die Mail da abgelegt hat. Hat das irgendwelche Auswirkungen? Angenommen ich würde meinen ~/Mail Ordner auf nen anderen Rechner umziehen der anders heisst. Würde das irgendwie für Verwirrungen sorgen?

Zu deiner fetchmailrc:
Code:
set daemon 300

defaults
    proto pop3
    mda "/usr/bin/procmail -d %s"

poll imap.imaphost.de
    port 993
    proto imap
    user "foo@imaphost.de"
    ssl
    pass "foobar"

Für was genau steht denn das %s? Das ist ja eine globale fetchmailrc und du hast keinen "is" User angegeben. Was passiert hier genau?

Was ist eigentlich mit Mailboxen, die auf dem IMAP Server schon existieren? Wenn ich mich beispielsweise mit meinem Handy zu dem IMAP Account verbinde sehe ich da einiges an Mailboxen (meistens zwei vom Sinn her identische, einmal mit deutschem und einmal mit englischem Namen). Sind die von Fetchmail jetzt schon gepullt worden? Wie geht man / gehst du damit um?

cu
serow
 
Hmm, das ist ein Ueberbleibsel aus der Zeit, als die fetchmailrc noch global war. Mittlerweile liegt sie in ~, also sollte das egal sein.

Beim Maildir ist ja das feine, das jede Mail auch den Rechnernamen enthaelt, so dasz man maildirs zwischen verschiedenen Rechnern synchronisieren kann und trotzdem auf beiden Maschinen neue Mails abholen kann ohne die alten zu ueberschreiben. Die Mails werden von Mutt immer verarbeitet, egal welchen Hostnamen sie enthalten.

IMAP ist fuer mich eher ein glorifiziertes POP3, von daher benutze ich auch eigentlich keine Features, die das hat, wirklich. Wenn ich meine Mails zentral auf einem Server speichern will, nehme ich maildir+sshfs :P Dasz ich ueberhaupt IMAP verwende liegt einfach daran, dasz das auf dem Server, den ich mir mit ein paar Freunden teile, schon eingerichtet war und ich aus Faulheit keinen POP Server aufziehen wollte :)
 
Hi,

Beim Maildir ist ja das feine, das jede Mail auch den Rechnernamen enthaelt, so dasz man maildirs zwischen verschiedenen Rechnern synchronisieren kann und trotzdem auf beiden Maschinen neue Mails abholen kann ohne die alten zu ueberschreiben. Die Mails werden von Mutt immer verarbeitet, egal welchen Hostnamen sie enthalten.

it's not a bug, it's a feature ... verstehe.

Was passiert denn wenn ich jetzt auf meinem Laptop das gleiche Setup habe. Angenommen es kommt ne neue Mail: Einer wird zuerst fetchmail aufrufen. Wenn er mit der keep Option arbeitet bleibt die Mail zumindest mal auf dem IMAP vorhanden. Wird sie dort irgendwie markiert, sodass der zweite Rechner die Mail überspringt?

Kanns grad nicht testen weil kein zweiter Rechner da ist. Deswegen der theoretische Ansatz. Außerdem gehts wohl schneller so ;)

cu
serow
 
Gute Frage, aber ich nehme an, dasz die Mail einfach als 'gelesen' markiert wird. Das wuerde mich aber ehrlich gesagt auch interessieren... Und btw, selbst wenn im Maildir Format der Hostname nicht enthalten waere, wuerden Mails dennoch doppelt abgeholt, weil fetchmail garnicht weisz, dass procmail die EMails in einem Maildir speichert (oder dasz procmail die ueberhaupt speichert), also koennte es garnicht pruefen, welche EMails schon abgeholt wurden.
 
Zurück
Oben