MuttMehrereAccounts
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:
- Einem Tastaturmacro für Mutt, dass ein Shell Script aufruft, über das der Account ausgewählt wird
- Das Shell Script zum Wechseln der Accounts
- 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