Comment gérer plusieurs comptes IMAP avec mutt

11

J'adore mutt, et la version mutt fournie avec Ubuntu est géniale (elle a même une version corrigée), la seule mise en garde que j'ai trouvée jusqu'à présent, c'est que je n'avais pas été en mesure de gérer plusieurs comptes imap en même temps.

Actuellement, ma configuration mutt ressemble à ceci:

#$HOME/.mutt/muttrc
=== Accounts  ====

set my_decrypt=`gpg -o $HOME/.mutt/accounts/passwd.gpg.tmp -d $HOME/.mutt/accounts/passwd.gpg`

set my_first_mail_passwd=`awk '/[email protected]:/ {print $2}' $HOME/.mutt/accounts/passwd.gpg.tmp`

set my_second_mail_passwd=`awk '/[email protected]:/ {print $2}' $HOME/.mutt/accounts/passwd.gpg.tmp`

set my_rm=`rm -f $HOME/.mutt/accounts/passwd.gpg.tmp`

source $HOME/.mutt/accounts/[email protected]/[email protected]

//source $HOME/.mutt/accounts/[email protected]/[email protected]

Ce qui signifie qu'un fichier password.gpg est décrypté à la volée (où vivent mes mots de passe de messagerie) l'utilise pour définir des variables et supprimé, un profil par défaut est également obtenu, il ressemble à ceci:

#$HOME/.mutt/accounts/[email protected]/[email protected]
set folder           = "imaps://imap.foo.com"

set spoolfile        = "imaps://imap.foo.com/INBOX"

set header_cache     = "$HOME/.mutt/cache/[email protected]"

set message_cachedir = "$HOME/.mutt/cache/[email protected]"

set imap_user        = "[email protected]"

set imap_pass        = $my_first_mail_passwd

set smtp_url         = "smtp://[email protected]"

set smtp_pass        = $my_first_mail_passwd

En utilisant cela, je ne peux utiliser que le compte configuré dans le profil par défaut .., j'ai entendu dire que les crochets de dossier peuvent être utilisés mais je ne sais pas comment les utiliser, et je ne sais pas non plus si c'est ce que je recherche, je voudrais juste pouvoir trouver différents profils en fonction de l'e-mail que je voudrais lire .., Toute méthode de suggestion est la bienvenue .., je préférerais une configuration qui ne dépend pas sur les programmes externes qui ne font pas partie d'une installation Ubuntu par défaut.

Javier López
la source

Réponses:

14

Même s'il y a quelques guides utiles sur ce site et celui-ci , j'ai pensé que je voudrais juste vous montrer ma solution en cours de fonctionnement. Vous remarquerez peut-être qu'il est similaire aux guides susmentionnés, mais avec des ajouts et des différences: j'ai trouvé qu'il était possible de ne pas utiliser account-hooksou folder-hooksdans certains cas. Voir le wiki Mutt pour une autre approche de la configuration.

Je publierai les éléments de la configuration, puis je publierai l'intégralité de mon contenu .muttrcafin que vous puissiez voir comment tout s'emboîte.

Il est plus facile d'entrer les paramètres de vos deux comptes dans des fichiers séparés et de les enregistrer dans le ~/.muttdossier. Par exemple, vos deux comptes pourraient être appelés account.gmail1et account.gmail2. Créez donc deux fichiers texte avec ces noms et suivez ce modèle ci-dessous pour le contenu; ils doivent être tous les deux identiques en dehors de la user@pièce; remplacez simplement toutes les occurrences de cela par votre véritable e-mail (par exemple mik123@) dans les deux fichiers.

set imap_user = "[email protected]"
set imap_pass = ""
set from = "[email protected]"
set realname = "user"
set hostname = gmail.com
set folder = "imaps://[email protected]:993"
set spoolfile = "imaps://[email protected]/INBOX"
set postponed = "imaps://[email protected]/[Gmail]/Drafts"
set record = "imaps://[email protected]/[Gmail]/Sent Mail"
set smtp_url = "smtp://[email protected]:587"
set smtp_pass = ""
  • Notez que j'ai laissé le mot de passe vide ( ""), ce qui signifie que vous serez invité à le saisir, et c'est ce que je préfère, mais vous pouvez intégrer votre propre solution si vous ne voulez pas avoir à continuer à saisir le mot de passe.

  • Si vous voulez qu'un compte par défaut soit chargé au démarrage, vous pouvez utiliser .muttrcune ligne similaire à celle-ci, spécifiez simplement votre propre fichier de configuration.

    source "~/.mutt/account.gmail1"

  • Pour basculer entre les comptes, placez un raccourci dans votre .muttrcréférence à l'emplacement et au nom réels de vos configurations de compte:

    macro index <f4> '<sync-mailbox><enter-command>source ~/.mutt/account.gmail1<enter><change-folder>!<enter>'
    macro index <f5> '<sync-mailbox><enter-command>source ~/.mutt/account.gmail2<enter><change-folder>!<enter>'

  • Vous pourrez basculer entre les dossiers des deux comptes avec des commandes de pager telles que

    macro index,pager ga "<change-folder>=[Gmail]/All Mail<enter>" "Go to all mail"

qui sont définis dans votre .muttrc; ceux-ci fonctionneront toujours pour chaque compte (voir mon ci-joint .muttrc).

  • J'ai testé ces paramètres particuliers avec les paramètres généraux supplémentaires dans mon.muttrc , afin que vous puissiez utiliser ce fichier et / ou l'assembler avec le vôtre, cela dépend de vous.

Maintenant, chargez simplement le muttterminal et vous devriez pouvoir charger un compte, puis passer à l'autre en utilisant votre raccourci. My .muttrcest collé ici si vous avez besoin d'un exemple fonctionnel de configuration.

Voir le bon article sur ce site sur Mutt et le wiki Mutt pour d'autres moyens de configuration mutttels que l'utilisation folder-hookspour associer des paramètres à différentes boîtes aux lettres, qui est également expliqué ici .


la source
wowow, incroyable !, merci beaucoup mec, ma pleine ~ / .mutt / muttrc conf: paste.ubuntu.com/1487277
Javier López
"Le collage que vous recherchez n'existe pas actuellement.", Peut-être que pastebin n'est pas le meilleur endroit pour stocker des choses à long terme. Puis-je suggérer un résumé à la place?
Intents
Vous avez raison @intentss, ma configuration est maintenant également disponible sur: github.com/chilicuil/dotfiles/blob/master/.mutt/muttrc , puisque user76204 a répondu que cela venait de fonctionner parfaitement, j'ai intégré gpg dans la solution, cependant
Javier López
2

Vous pouvez utiliser plusieurs fichiers de configuration. Par exemple, vous pouvez exécuter:

  • mutt -F .muttrc-yahoo sur /dev/pts/1
  • mutt -F .muttrc-gmail sur /dev/pts/2
leopoldotosi
la source
0

Il y a aussi un bon résumé / howto ici (GitHub). Cela pourrait être un peu plus facile à suivre ou non.

Répertoires et fichiers

~ /
| ── .mutt /
| ├── account.com.gmail.foo
| ├── account.com.gmail.bar
| ├── com.gmail.foo/
| └── com.gmail.bar/
└── .muttrc
~/.muttrc  
# Crochets de dossier
hook de dossier 'account.com.gmail.foo' 'source ~ / .mutt / account.com.gmail.foo'
hook de dossier 'account.com.gmail.bar' 'source ~ / .mutt / account.com.gmail.bar'

# Compte par défaut
source ~ / .mutt / account.com.gmail.foo         

# Macros pour changer de compte
index de macro 'source ~ / .mutt / account.com.gmail.foo!'
index de macro 'source ~ / .mutt / account.com.gmail.bar!'

# Récupérer le raccourci de messagerie
lier index G imap-fetch-mail
~/.mutt/account.com.gmail.foo
définir imap_user = "[email protected]"                       
définir imap_pass = ""                                    
set smtp_url = "smtp: //[email protected]: 587 /"       
définir smtp_pass = ""                                    
défini à partir de = "[email protected]"                            
set realname = "Foo"                                  
set folder = "imaps: //imap.gmail.com: 993"                     
set spoolfile = "+ INBOX"                                      
set postponed = "+ [Gmail] / Brouillons"                             
set header_cache = ~ / .mutt / com.gmail.foo / cache / headers            
définir message_cachedir = ~ / .mutt / com.gmail.foo / cache / corps         
set certificate_file = ~ / .mutt / com.gmail.foo / certificats
~/.mutt/account.com.gmail.bar  
définir imap_user = "[email protected]"                       
définir imap_pass = ""                                    
set smtp_url = "smtp: //[email protected]: 587 /"       
définir smtp_pass = ""                                    
défini à partir de = "[email protected]"                            
set realname = "Bar"                                  
set folder = "imaps: //imap.gmail.com: 993"                     
set spoolfile = "+ INBOX"                                      
set postponed = "+ [Gmail] / Brouillons"                             
set header_cache = ~ / .mutt / com.gmail.bar / cache / headers            
définir message_cachedir = ~ / .mutt / com.gmail.bar / cache / corps         
définir le fichier de certificats = ~ / .mutt / com.gmail.bar / certificats
SD Allen
la source