Deutsch English
Dein Feedback:
Hat die Seite Deine Erwartung erfüllt? vote3 Ja
vote2 Teilweise
vote1 Nein
Noch ein Kommentar?

Nur falls, Du eine Antwort erwartest, Deine E-Mailadresse

Gegebenenfalls noch Dein Name

Do not change this:
Feedback
Suchen

Mutt und Slrn

Eine Schnelleinführung
06-08-2005 13.09

Einführung

Mutt und Slrn sind zwei schlanke Konsolenprogramme zum Mail- bzw. Newslesen. Beide Programme werden jeweils über eine zentrale systemweite Konfigurationsdatei (unter /etc/) und eine lokale benutzerbezogene (im Homeverzeichnis) eingerichtet.
06-08-2005 13.09

Mutt

Der Mailreader Mutt gefällt mir besonders wegen seiner mächtigen Konfigurationsmöglichkeiten. Auf der Homepage gibt es u.a. das Handbuch, Konfigurationsbeispiele und Screenshots. Zusätzlich gibt es auf Pro-Linux eine Einführung in die Mutt Konfiguration.

Mutt Screenshot

Ein Screenshot von meinem Mutt (pager Menü):
Mutt Screenshot

Mutt Menüs

MenüBeschreibung
genericKein wirkliches Menü, passt auf alle Menüs bis auf pager und editor
indexListe der E-Mails in einer Mailbox
pagerEine E-Mail ansehen
browserListe der Mailboxen

Mutt Konfigurationsdatei

Einige (hoffentlich hilfreiche) Optionen aus meiner Mutt-Konfigurationsdatei. Nähere Erklärungen zu den einzelnen Optionen bietet das Referenz Kapitel im Mutt Handbuch.
  • Wohin sollen Adressen gespeichert werden:
    set alias_file="~/my_aliases"
  • Eine weitere Konfigurationsdatei einlesen (hier unser Adressbuch):
    source ~/mutt/my_aliases
  • Statt der E-Mailadressen die Spitznamen aus dem Adressbuch anzeigen:
    set reverse_alias
  • Die Einträge im Browser nicht umsortieren:
    set sort_browser=unsorted
  • Beim Betrachten einer E-Mail das obere Drittel des Fensters dazu benutzen, um den Index mit den anderen E-Mails anzuzeigen:
    set pager_index_lines=10
  • Das Ende einer E-Mail durch ~ Zeichen markieren:
    set tilde
  • E-Mails behalten den Status N auch wenn man die Mailbox in der sie liegen besucht hat:
    unset mark_old
  • Smileys wie :-) am Anfang einer Zeile nicht versehentlich als zusätzliche Quoteebene interpretieren:
    set smileys="(>From )|(:[-^]?[][)(><}{|/DP])"
  • Beim verschicken von Mails versuchen nicht nur das From: sondern auch noch das Envelope From zu setzten:
    set envelope_from
  • Im Index Menü werden folgende Spalten angezeigt:
    NachrichtennummerNachrichtenstatusDatumSenderGrößeSubjekt
    und das Datum wie in [Mon, 31.03.2003 22:09] dargestellt:
    set index_format="%4C %Z %D %-20.20F (%4c) %s"
    set date_format="[%a, %d.%m.%Y %H:%M]"
  • Zeichensätze die verwendet werden sollen (in aufsteigender Reihenfolge):
    set send_charset="us-ascii:iso-8859-1:iso-8859-15:utf-8"
  • Standardabsenderadresse und Alternativadressen. Normalerweise werden E-Mails mit der Standardabsenderadresse versehen. Wenn man aber auf eine E-Mail antwortet, die an eine der Alternativadressen geschickt wurde, wird diese als Absenderadresse verwendet.
    set from="john@example.com"
    set reverse_name
    set alternates=(doe@example.com|john_doe@example.net|john_doe@example.com)
    #CVS:
    #alternates doe@example.com
    #alternates john_doe@example.net
    #alternates john_doe@example.com
  • Es gibt nur einen Editor ;-)
    set editor="/usr/bin/xemacs %s -f post-delete-quoted-signatures"
  • Nachrichten werden nur dann als zusammengehörig erkannt wenn die In-Reply-To und References Header dies belegen.
    set strict_threads
    unset collapse_unread
  • Nicht versuchen die Absenderadresse um die aktuelle Domain zu ergänzen.
    unset use_domain
  • Keine Bcc: Header in die E-Mail einfügen (angeblich entfernt Exim diese nicht zuverlässig):
    unset write_bcc
  • Die automatische Erkennung des Rechnernamens übergehen:
    set hostname="workstation18.example.com"
  • Mutt Hooks

    Mit Hooks kann man Konfigurationen abhängig von Bedingungen umsetzten lassen:
    • In allen Ordnern bis auf den Spam Ordner die Mails nach Threads sortieren; den Spam Ordner nach dem Datum der Einlieferung der Mails sortieren:
      folder-hook .       set sort="threads"
      folder-hook 'spam' set sort="date-received"
    • Für einige Empfänger möglichst "Outlook kompatible" PGP Verschlüsselung verwenden:
      send-hook .                       "unset pgp_create_traditional;unset pgp_outlook_compat"
      send-hook '~t noob@example\.net$|~t luser@example\.com$' "set pgp_create_traditional; set pgp_outlook_compat"
    • Für eine Absenderadresse eine andere Signatur benutzen:
      send-hook .           "set  signature=~/.signature"
      send-hook '~f john@example\.com' "set signature=~/.signature_john"
    • Nur für einen Empfänger einen X-Header setzen (hier die Anfrage nach einer Empfangsbestätigung):
      send-hook .                       "unmy_hdr  Disposition-Notification-To:"
      send-hook '~t john@example\.com$|~t doe@example\.org$' "my_hdr Disposition-Notification-To: X Y <john_doe@example.net>"
    • Festlegen welcher Order vorgeschlagen werden soll wenn eine E-Mail gespeichert wird. Dabei wird XY_Mails beim Betreff XY verwendet, spam wenn es einen X-Spam-Level: *** Header mit mindestens drei * gibt und default sonst:
      save-hook '~h ^X-Spam-Level:\ \\*{3,}' 'spam'
      save-hook '~s XY' 'XY_Mails'
      save-hook . 'default'
    • Neu geschriebene E-Mails werden im Ordner outbox abgelegt, E-Mails an einen bestimmten Empfänger werden im Ordner outbox_a:
      set            record='outbox'
      fcc-hook '~t john@example\.com$' 'outbox_a'
  • Einen Header X-Operating-System: Debian GNU/X.X (Kernel X.X.X) einfügen:
    my_hdr X-Operating-System: Debian GNU/`uname -s` `cat /etc/debian_version` (Kernel `uname -r`)
  • HTML direkt im pager anzeigen lassen (z.B. mit links -dump '%s' in der mailcap den Textanteil extrahieren):
    auto_view text/html
  • Mailinglisten deren Beiträge man erhält:
    subscribe \
    example-mailings@example.com \
    newsletter@example.org
  • Liste aller Mailboxen:
    mailboxes               \
    /home/tgunkel/Mail/mbox \
    imaps://doe@example.org/INBOX \
    pop://john@example.com
  • Nur einige Header (dafür aber in einer vorgegebenen Reihenfolge) anzeigen lassen (und zwar auch im Editor):
    ignore *
    unignore Date: From: To: Cc: Bcc: Subject: Mail-Followup-To: Reply-To: User-Agent: X-Mailer: X-Spam-Status: Disposition-Notification-To: X-Diagnostic:
    hdr_order Date: From: To: Cc: Bcc: Subject: Mail-Followup-To: Reply-To: User-Agent: X-Mailer: X-Spam-Status: Disposition-Notification-To:
    set edit_headers
  • Einige Header einfärben:
    color header brightblue white ^From:
    color header brightblue white ^To:
    color header brightblue white ^Cc:
    color header brightblue white ^Bcc:
    color header brightblue white ^Subject:
    color header brightblue white ^Date:
    color header brightblue white ^User-Agent:
    color header brightblue white ^X-Mailer:
    color header brightblue white ^Mail-Followup-To:
    color header brightblue white ^Reply-To:
    color header brightred white ^Disposition-Notification-To:
    color header green white ^Received
    color header black white ^Sender:
    color header black white ^X-Mailing-List:
    color header black white ^List-
  • Regelmäßig nach neuen E-Mails in den Mailboxen suchen:
    set check_new
    set beep_new
    set mail_check=3
    unset imap_passive
    set pop_checkinterval=60
    set timeout=60
  • E-Mails in POP3 Fächern nicht löschen nachdem sie gelesen wurden:
    unset pop_delete
  • Passwörter für Imap Fächer festlegen:
    set imap_authenticators="login"
    account-hook . 'unset imap_pass'
    account-hook imaps://john@example.com 'set imap_pass=secret1'
    account-hook imaps://frank@example.org 'set imap_pass=secret2'
  • Autorisierungsverfahren für POP3 festlegen:
    account-hook .             'set pop_authenticators="apop:user"'
    account-hook pop://.*@example.com 'set pop_authenticators="user"'
  • Einige Tasten mit praktischen Funktionen belegen:
    macro  pager    ';'   "<exit><tag-prefix>"                               "q+ ;"
    macro pager q "<exit>" "Leaves pager to index view"
    macro index q "<sync-mailbox><change-folder>?<toggle-mailboxes>" "Leaves Index to folder list"
    macro browser q "<exit><quit>" "Exit mutt"
    macro browser <Tab> "<toggle-mailboxes><check-new>" "Check New"
    macro generic <f1> "!zless /usr/share/doc/mutt/manual.txt.gz\n" "Show Mutt documentation"
    macro index <f1> "!zless /usr/share/doc/mutt/manual.txt.gz\n" "Show Mutt documentation"
    macro pager <f1> "!zless /usr/share/doc/mutt/manual.txt.gz\n" "Show Mutt documentation"
    bind generic \\ search-next
  • Auf PGP E-Mails mit PGP E-Mails reagieren:
    set    pgp_replyencrypt
    set pgp_replysign
    set pgp_replysignencrypted
    unset pgp_show_unusable
  • Dateianhänge mit weiterleiten:
    set mime_forward=ask-yes
  • GNU-PGP einbinden:
    set pgp_clearsign_command=   "gpg --no-verbose --batch --output - --passphrase-fd 0 --armor --textmode --clearsign %?a?-u %a? %f"
    set pgp_decode_command= "gpg %?p?--passphrase-fd 0? --no-verbose --batch --output - %f"
    set pgp_decrypt_command= "gpg --passphrase-fd 0 --no-verbose --batch --output - %f"
    set pgp_encrypt_only_command="/usr/lib/mutt/pgpewrap gpg -v --batch --output - --encrypt --textmode --armor --always-trust -- -r %r -- %f"
    set pgp_encrypt_sign_command="/usr/lib/mutt/pgpewrap gpg --passphrase-fd 0 -v --batch --output - --encrypt --sign %?a?-u %a? --armor --always-trust -- -r %r -- %f"
    set pgp_export_command= "gpg --no-verbose --export --armor %r"
    set pgp_getkeys_command= ""
    set pgp_import_command= "gpg --no-verbose --import -v %f"
    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_sign_command= "gpg --no-verbose --batch --output - --passphrase-fd 0 --armor --detach-sign --textmode %?a?-u %a? %f"
    set pgp_verify_command= "gpg --no-verbose --batch --output - --verify %s %f"
    set pgp_verify_key_command= "gpg --no-verbose --batch --fingerprint --check-sigs %r"
  • Mutt SMIME

    Um Mutt für S/MIME einzurichten habe ich unter anderem dieses S/MIME Mutt Howto benutzt.
    • Als erstes einen Platz festlegen an dem die Zertifikate und die geheimen Schlüssel abgespeichert werden sollen.
      set smime_certificates="~/.smime/certificates"
      set smime_keys="~/.smime/keys"
      Diese Ordner muessen existieren und in beiden muss eine (leere) Datei
      .index
      erzeugt werden. Der Befehl
      smime_keys init
      erledigt das (angeblich?).
    • Jetzt legt man noch fest in welcher Datei die root Zertifikate abgelegt werden sollen:
      set smime_ca_location="~/mutt/.smime/ca-bundle.crt"
      Diese kann man z.B. mit der Datei initialisieren, die man von der eigenen CA erhalten hat. Es gibt aber auch ausgewählte Listen wie z.B. das Paket ca-certificates für Debian. Neue Root Zertifikate können mit dem Befehl
      smime_keys
      importieren werden.
    • Jetzt braucht man nur noch das eigene Schlüsselpaar. Gegebenenfalls kann man es sich aus der Mozilla-Suite exportieren lassen. Wenn man das Schlüsselpaar in der Datei foo.p12 abgespeichert hat muss man nur den Befehl
      smime_keys add_p12 foo.p12
      ausführen um es zu importieren. Der Zugriff auf den geheimen Schlüssel ist normalerweise durch ein Passwort geschützt, welches man beim importieren auch gleich ändern kann.
    • Folgende Mutt S/MIME Optionen sind vermutlich schon in der Mutt beiliegenden Konfigurationsdateien aufgeführt. Gegebenfalls reicht es also diese zu finden und einzubinden.
      # These are used to extract a certificate from a message.
      # First generate a PKCS#7 structure from the message.
      set smime_pk7out_command="openssl smime -verify -in %f -noverify -pk7out"

      # Extract the included certificate(s) from a PKCS#7 structure.
      set smime_get_cert_command="openssl pkcs7 -print_certs -in %f"

      # Extract the signer's certificate only from a S/MIME signature (sender verification)
      set smime_get_signer_cert_command="openssl smime -verify -in %f -noverify -signer %c -out /dev/null"

      # This is used to get the email address the certificate was issued to.
      set smime_get_cert_email_command="openssl x509 -in %f -noout -email"

      # Add a certificate to the database using smime_keysng.
      set smime_import_cert_command="smime_keysng add_cert %f"

      ## Sction B: Outgoing messages

      # Algorithm to use for encryption.
      # valid choices are rc2-40, rc2-64, rc2-128, des, des3
      set smime_encrypt_with="des3"

      # Encrypt a message. Input file is a MIME entity.
      set smime_encrypt_command="openssl smime -encrypt -%a -outform DER -in %f %c"

      # Sign.
      set smime_sign_command="openssl smime -sign -signer %c -inkey %k -passin stdin -in %f -certfile %i -outform DER"

      ##Section C: Incoming messages

      # Decrypt a message. Output is a MIME entity.
      set smime_decrypt_command="openssl smime -decrypt -passin stdin -inform DER -in %f -inkey %k -recip %c"

      # Verify a signature of type multipart/signed
      set smime_verify_command="openssl smime -verify -inform DER -in %s %C -content %f"

      # Verify a signature of type application/x-pkcs7-mime
      set smime_verify_opaque_command="openssl smime -verify -inform DER -in %s %C"
    • Eigentlich reicht das um mit S/MIME loszulegen, allerdings hat Mutt zur Zeit einen Fehler der es verhindert dass man seinen S/MIME Schlüssel interaktiv auswählen kann. Deshalb sollte man seinen mutt mitteilen welcher Schlüssel der eigene ist damit er nie fragen muss:
      # The (default) keyfile for signing/decrypting.  Uncomment the following
      # line and replace the keyid with your own.
      #set smime_default_key="12345678.0"
29-06-2006 22.16

Slrn

Der Newsreader Slrn erlaubt es (nicht zuletzt aufgrund seines Scoring Fähigkeiten) eine große Anzahl Postings zielsicher in kurzer Zeit zu verarbeiten. Auf der Homepage gibt es ein Handbuch sowie im Dokumentationsbereich u.a. eine Schnelleinführung und eine Erläuterung des Scorings. Screenshots gibt es dort natürlich auch.
Zusätzlich Makros unter anderem (GNU-)PGP und Header abhängig von der aktuellen Gruppe ändern.

Slrn Screenshot

Ein Screenshot von meinem slrn:
Slrn Screenshot

Slrn Konfigurationsdatei

Dazu passende Zeilen aus der Konfigurationsdatei.
06-08-2005 13.09
Powered by PHP Created with Xemacs Valid XHTML 1.0! Valid CSS!