MuttMehrereAccounts

Aus DebianforumWiki
Zur Navigation springen Zur Suche springen

Mutt mit mehreren Accounts

Diese Seite beschreibt eine Konfiguration für Mutt, bei der man zwischen mehreren Accounts wechseln kann.

Die Konfiguration besteht aus 3 Teilen:

  1. Einem Tastaturmacro für Mutt, dass ein Shell Script aufruft, über das der Account ausgewählt wird
  2. Das Shell Script zum Wechseln der Accounts
  3. Separaten Konfigurationsdateien für die einzelnen Accounts

In den folgenden Scripten habe ich meine Konfigurationen zu mutt in ~/.stefan/.mutt.d/ abgelegt.

Das Tastaturmacro für Mutt

Mittels der folgenden Konfiguration in meiner .muttrc ermögliche ich den Aufruf des Menüs mittels F8:

macro index <f8> "<enter-command>source '~/.stefan/.mutt.d/.common/select_server.sh |'<return>"

Das Shell Script zum Wechseln der Accounts

Das oben konfigurierte Bash-Script select_server.sh zum Wechseln der Accounts sieht folgendermassen aus:

#!/bin/bash

function change_mailbox() {
    printf "push '<sync-mailbox><enter-command>source ~/.stefan/.mutt.d/%s/muttrc<enter><change-folder>!<enter>'" $1
}


PS3='Please enter your choice: '
options=("account1" "account2" "account3")
select opt in "${options[@]}" "Cancel"
do
    case $opt in
        "account1")
            MAILBOX="account1"
            break
            ;;
        "account2")
            MAILBOX="account2"
            break
            ;;
        "account3")
            MAILBOX="account3"
            break
            ;;
        "Cancel")
            MAILBOX=""
            break
            ;;
        *) echo invalid option;;
    esac
done >&2

if [ ! -z "$MAILBOX" ]; then
    change_mailbox $MAILBOX
else
    # In case the user selected 'Cancel' nothing should happen.
    printf ""
fi

Der Output dieses Scripts wird von Mutt als Macro ausgeführt. Daher darf nur der Mutt Behehl nach stdout geschreiben werden. Aus diesem Grunde wird das über select erzeugte Menü nach stderr umgelenkt.

Konfigurationsdateien für die einzelnen Accounts

Für jeden Account habe ich ein Verzeichnis unter .stefan/.mutt.d/ in der eine muttrc Datei liegt, die den folgenden Aufbau hat.

set from = <mein-account>@<server>
set realname = "<mein realname>"
set imap_user = <mein-account>@<server>
set imap_pass = `<account-passwort über pass auslesen>`
set folder = imaps://<imap-server>
set record = imaps://<imap-server>/Sent
set spoolfile = +INBOX
mailboxes = +INBOX
set sort = reverse-date-sent
set mbox_type = Maildir
set move=no
set mime_forward=ask-yes
set mail_check=300
auto_view text/html

set sendmail="/usr/bin/msmtp -a <account>"
set smtp_url = ""

exec first-entry