Emailing mit Mutt

Hi,

ich bin zZ dabei mir Mutt etwas anzuschaun, da ich unbedingt die Möglichkeit haben will über SSH auf meine Kiste zu gehen und Mails zu checken. Ich hab allerdings ein paar Fragen:

1. Wie holt ihr die Mails ab? Benutzt ihr Mutt selbst um die Mail über POP bzw IMAP anzuholen oder ein anderes Tool wie fetchmail? Fetchmail hätte den Vorteil, dass man die Mails lokal abspeichert und so mit backup-en kann. Allerdings kriegt man dann neue Mails na nicht unbedingt zeitnah mit oder?

2. Wie handelt ihr mehrere Email Accounts mit Mutt? Dazu hab ich http://wiki.mutt.org/?MuttGuide/UseIMAP gefunden, aber das mit diesen Hooks raff ich nicht. Ist auch nirgends erklärt soweit ich weiss. Wo schreib ich diese Hook hin? Und was mach ich damit bzw wie führe ich sie aus?

3. Wenn ich die in Mutt eingebaute SMTP Funktion benutzte, muss ich entweder mein SMTP Passwort jedes Mal eingeben oder ich hab es in Klartext in der .muttrc. Wie macht man/ihr das?

Naja das wärs erstmal ^^

cu
serow
 
Ich hole meine Mails mit fetchmail ab und sortiere die dann mit procmail in unterschiedliche Mailboxen (also z.B. diverse verschiedene Mailinglisten in unterschiedliche Boxen). Das funktioniert auch relativ zeitnah, fetchmail holt alle 5 Minuten meine Mails ab (ich hab dafür einen Wrapper, der mir fetchmail und mutt startet). Das Problem mit dem SMTP "löse" ich indem ich meine muttrc 600 chmodde. Das ist zwar keine Lösung, wenn mir jemand in die Box einbricht, aber das ist ja auch bei anderen Mailern so.
Wenn du möchstest, kann ich ja meine Konfiguration posten (z.b. hat Maildir + procmail ein wenig gedauert).

Edit: Mails werden btw. durch procmail mit bogofilter auf Spamhaftigkeit geprüft und auf korrekte GPG signaturen geprüft.
 
Original von Serow
1. Wie holt ihr die Mails ab? Benutzt ihr Mutt selbst um die Mail über POP bzw IMAP anzuholen oder ein anderes Tool wie fetchmail? Fetchmail hätte den Vorteil, dass man die Mails lokal abspeichert und so mit backup-en kann. Allerdings kriegt man dann neue Mails na nicht unbedingt zeitnah mit oder?

Ich nehme dazu offlineimap: http://software.complete.org/software/projects/show/offlineimap

Original von Serow
2. Wie handelt ihr mehrere Email Accounts mit Mutt? Dazu hab ich http://wiki.mutt.org/?MuttGuide/UseIMAP gefunden, aber das mit diesen Hooks raff ich nicht. Ist auch nirgends erklärt soweit ich weiss. Wo schreib ich diese Hook hin? Und was mach ich damit bzw wie führe ich sie aus?

Hier mal ein Beispiel: Du hast einen Ordner acc1 für deinen ersten Account und acc2 für den zweiten. Dann könntest du das folgendermaßen machen(Ich verwende msmtp zum versenden, da man damit versch. Accounts besser verwalten kann):
Code:
folder-hook . unmy_hdr From
folder-hook . "set sendmail = 'msmtp'" # standardwert
folder-hook acc1 "set sendmail = 'msmtp -a account1'"
folder-hook acc1 my_hdr From: acc1@foo.bar
folder-hook acc2 "set sendmail = 'msmtp -a account12"
folder-hook acc2 my_hdr From: acc2@foo.bar

3. Wenn ich die in Mutt eingebaute SMTP Funktion benutzte, muss ich entweder mein SMTP Passwort jedes Mal eingeben oder ich hab es in Klartext in der .muttrc. Wie macht man/ihr das?

Du könntest das Passwort in einer anderen Datei speichern, diese dann z.B. in einen Truecrypt-Container oder so legen. In der .muttrc source'st du dann diese Datei, was dann nur klappt wenn der Container an der richtigen Stelle gemountet ist.
 
Okay, ich poste mal meine Konfiguration:

Fetchmail:
Code:
set daemon 300

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

poll mail.intepi.net
    port 995
    user "gbe"
    pass "snafu23"
    ssl
In der ersten Zeile wird dabei festgelegt, mit welchem Intervall fetchmail nach neuen Mails gucken soll (also 300 Sekunden = 5 Minuten). Procmail wird als MDA festgelegt, da damit halt die Mails sortiert und verarbeitet (z.B. auf Spam gecheckt) werden.

Procmail:
Code:
STORE=/usr/bin/rcvstore
SHELL=/bin/bash
MAILDIR=$HOME/Mail

:0fw
    | bogofilter -u -e -p

:0
    * ^X-Bogosity: Spam, tests=bogofilter
    | $STORE +spam-bogofilter

:0
    * ^X-Bogosity: Unsure, tests=bogofilter
    | $STORE +unsure-bogofilter

:0
    * ^(TO.*awesome\-devel@naquadah\.org.*)
    | $STORE +awesome-devel

:0
    * ^(TO.*awesome@naquadah\.org.*)
    | $STORE +awesome

:0
    * ^(TO.*chaos\-paderborn.*|From:.*[Ii]ntern.*|Subject:.*C3PB\-Intern.*)
    | $STORE +c3pb

:0
    * Subject:.*THWPB.*
    | $STORE +thw

:0
    * ^(TO:.*dev@suckless\.org|From:.*dev.*@suckless\.org.*)
    | $STORE +suckless-dev

:0
    * ^(TO:.*hackable1\-user@lists\.hackable1\.org|From:.hackable1\-user@lists\.hackable1\.org)
    | $STORE +hackable1

:0
    * ^TO:.*hardware@lists\.openmoko\.org
    | $STORE +openmoko-hardware

:0
    * ^From:.*dilbert.*
    | $STORE +dilbert

:0
    * ^From:.*gentoo.*
    | $STORE +gentoo-forum

:0
    * ^From:.*notify@hackerboard.de
    | $STORE +hackerboard

:0
    *
    | $STORE +inbox

Die erste Regel leitet dabei alles durch den Bogofilter. Regel #2 und #3 sortieren unsichere und spam Mails, die von Bogofilter markiert wurden, in die entsprechenden Mailboxen. Der Rest ist grösstenteils ein Filter für die einzelnen Mailinglisten. Der letzte Filter wirkt als ein "catch-all", das eben alle Sachen erwischt, die vorher nicht aussortiert wurden. Ohne verschwinden die Mails ins Nirvana. rcvstore ist dabei das Maildir-Spezifische Speicherprogramm (ich bin von Claws-Mail auf Mutt umgestiegen und wollte meinen alten Maildir mit alten Mails erhalten).

Und zu guter letzt die .muttrc:
Code:
set realname="Gregor Best"
set from="gbe@intepi.net"
set sort=threads
set mailcap_path="~/.mutt/mailcap"
set beep_new
set edit_headers
set pager_stop

# {{{ account and spoolfiles
set spoolfile="~/Mail/"
set record="~/Mail/sent"
set postponed="~/Mail/postponed"

set smtp_url=smtps://gbe:snafu23@mail.intepi.net:465
# }}}
# {{{ mailing lists
subscribe awesome@naquadah.org awesome-devel@naquadah.org
subscribe intern@chaos-paderborn.de
subscribe dev@suckless.org
subscribe hackable1-user@lists.hackable1.org
subscribe hardware@lists.openmoko.org
# }}}
# {{{ mailbox setup
mailboxes =awesome
mailboxes =awesome-devel
mailboxes =suckless-dev
mailboxes =hackable1
mailboxes =openmoko-hardware
mailboxes =c3pb
mailboxes =thw
mailboxes =dilbert
mailboxes =gentoo-forum
mailboxes =hackerboard
mailboxes =inbox
mailboxes =sent
mailboxes =test
mailboxes =unsure-bogofilter
mailboxes =spam-bogofilter
# }}}
# {{{ bogofilter macros
macro index,pager S "<pipe-entry>bogofilter -s" "mark message as Spam"
macro index,pager H "<pipe-entry>bogofilter -n" "mark message as Ham"
# }}}
# {{{ headers
ignore *
unignore Subject
unignore To
unignore From
unignore Date
unignore CC
hdr_order Date: From: To: CC: Subject:
# }}}
# {{{ gpg setup
set pgp_decode_command="gpg %?p?--passphrase-fd 0? --no-verbose --batch --output - %f"
set pgp_verify_command="gpg --no-verbose --batch --output - --verify %s %f"
set pgp_decrypt_command="gpg --passphrase-fd 0 --no-verbose --batch --output - %f"
set pgp_sign_command="gpg --no-verbose --batch --output - --passphrase-fd 0 --armor --detach-sign --textmode %?a?-u %a? %f"
set pgp_clearsign_command="gpg --no-verbose --batch --output - --passphrase-fd 0 --armor --textmode --clearsign %?a?-u %a? %f"
set pgp_encrypt_only_command="pgpewrap gpg --batch --quiet --no-verbose --output - --encrypt --textmode --armor --always-trust --encrypt-to 0xDB9F9A7C -- -r %r -- %f"
set pgp_encrypt_sign_command="pgpewrap gpg --passphrase-fd 0 --batch --quiet --no-verbose --textmode --output - --encrypt --sign %?a?-u %a? --armor --always-trust --encrypt-to 0xDB9F9A7C -- -r %r -- %f"
set pgp_import_command="gpg --no-verbose --import -v %f"
set pgp_export_command="gpg --no-verbose --export --armor %r"
set pgp_verify_key_command="gpg --no-verbose --batch --fingerprint --check-sigs %r"
set pgp_list_pubring_command="gpg --no-verbose --batch --with-colons --list-keys %r"
set pgp_list_secring_command="gpg --no-verbose --batch --with-colons --list-secret-keys %r"
set pgp_autosign=yes
set pgp_sign_as=0xDB9F9A7C
set pgp_replyencrypt=yes
set pgp_timeout=600
set pgp_good_sign="^gpg: Good signature from"
# }}}
# {{{ colors
color header        yellow          black Subject:
color header        brightcyan      black .
color body          brightyellow    black [_a-z\.\$A-Z0-9-]+@[a-zA-Z0-9\./\-]+
color body          yellow          black (http|ftp)://[_a-zA-Z0-9\./~\-]+
color quoted        green           black
color signature     brightblue      black
color attachment    yellow          black
color tree          red             black
color indicator     black           cyan
color status        yellow          blue
color tilde         blue            black
color normal        default         default
color index         brightgreen     default '~N'
# }}}
# {{{ keybindings
bind index,pager N next-unread
# }}}
Dabei sind vor allem die Mailinglisten-Einträge wichtig, die ermöglichen mit "L" im index ein List-Reply, also eine Antwort an die Mailingliste, die der jeweiligen Mailbox zugeordnet ist. Das GPG Zeugs kannst du eigentlich 1:1 übernehmen (ich habs aus fefe seiner .muttrc, genau wie die Farben), du musst nur deine Key-ID ändern. Praktisch ist auch das Keybinding, damit kannst du im Mail-Viewer und im Index direkt zur nächsten ungelesenen Mail springen. Die Bogofilter Macros wirken auch im Viewer und im Index, damit markierst du halt bequem Mails als Ham/Spam (z.b. um fehlgeleitete Mails aus dem Spamordner zu befreien oder um Mails aus unsure-bogofilter endgültig zum Spam zu machen). Die beep-new Einstellung oben sorgt für ein Piepen bei neuen Mails, was bei urxvt dazu führt, dass das Terminal seinen Urgency-Hint setzt, man also sofort erkennt, wenn neue Mails da sind.

(Das Passwort hab ich natürlich geändert :P)
 
Original von Serow
1. Wie holt ihr die Mails ab? Benutzt ihr Mutt selbst um die Mail über POP bzw IMAP anzuholen oder ein anderes Tool wie fetchmail? Fetchmail hätte den Vorteil, dass man die Mails lokal abspeichert und so mit backup-en kann. Allerdings kriegt man dann neue Mails na nicht unbedingt zeitnah mit oder?

mit offlineimap. ich habe meine kompletten maildirs lokal auf der platte, und lass die alle 15 minuten syncen.

2. Wie handelt ihr mehrere Email Accounts mit Mutt? Dazu hab ich http://wiki.mutt.org/?MuttGuide/UseIMAP gefunden, aber das mit diesen Hooks raff ich nicht. Ist auch nirgends erklärt soweit ich weiss. Wo schreib ich diese Hook hin? Und was mach ich damit bzw wie führe ich sie aus?

ich habe immer zwei mutts offen, da mir der rest viel zu umständlich ist.

3. Wenn ich die in Mutt eingebaute SMTP Funktion benutzte, muss ich entweder mein SMTP Passwort jedes Mal eingeben oder ich hab es in Klartext in der .muttrc. Wie macht man/ihr das?

schonmal drüber nachgedacht, einen lokalen smtp zu installieren? bei mir rennt lokal exim, welcher mails an meinen externen postfix weiterreicht. find ich recht benutzbar, da man sich um nichts weiter gedanken machen muß.
 
Hi, danke schonmal für die Antworten!

schonmal drüber nachgedacht, einen lokalen smtp zu installieren? bei mir rennt lokal exim, welcher mails an meinen externen postfix weiterreicht. find ich recht benutzbar, da man sich um nichts weiter gedanken machen muß.
Naja exim muss sich ja auch irgendwie gegenüber meinem SMTP authentifizieren oder? Hab hier lokal nen postfix laufen um mit dem VMware vCenter Mails schicken zu können, da das vCenter sich nicht authentifizieren kann. Oder ist das ne ganz andere Geschichte?

2 mutt ist auch net witzige Lösung :D
 
dafür gibt es (für exim) die datei /etc/exim4/passwd.client mit diesem inhalt:
host:user:password

was das für ne kiste ist, ist ja grundsätzlich egal.
 
Original von xeno
dafür gibt es (für exim) die datei /etc/exim4/passwd.client mit diesem inhalt:
host:user:password

was das für ne kiste ist, ist ja grundsätzlich egal.

Sein ursprüngliches Problem war ja, dass er die Daten nicht im Klartext auf der Festplatte haben möchte, wenn ich ihn recht verstanden habe und das bliebe durch einen lokalen smtp server ja unverändert. In dem Fall würde wirklich nur eine komplett verschlüsselte Partition oder irgendeine Form von Containern was bringen. encfs sieht auch recht interessant aus und könnte evtl. dafür verwendet werden.
 
Ja genau das war der Punkt. Aber bevor ich sonen Aufstand mit truecrypt oder encfs mache reicht mir erstmal ein einfaches

Code:
chmod 600 .muttrc

:P

cu
serow
 
Zurück
Oben