Dlaczego mutt wciąż pyta o nazwę użytkownika i hasło imap?

13

Zmienne wyłączania Mutt w konfiguracji imap_user, imap_pass(a może preconnect, imap_authenticatorsjak dobrze) poprzez account-hook . "unset ... "rozmowy, wydaje się być powszechną praktyką, jeśli nie jest to konieczne, do obsługi wielu kont IMAP (patrz Zarządzanie wieloma kontami IMAP / POP (opcjonalnie) , Mutt IMAP wielu kont , kundel : gmail IMAP nie odpowiada , plik konfiguracyjny związany z hakiem konta na funtoo.org ).

Obecnie obsługuję tylko jedno konto przez IMAP. Plany obsługi wielu kont prowadzą mnie do instrukcji zawartych w ostatnim z wyżej wymienionych linków ( czyjś przykład konfiguracji mutta ). Dlatego w podobny sposób zastosowałem następujące:

account-hook . 'unset imap_user; unset imap_pass; unset tunnel'
account-hook 'imaps://mail.domain.net:993/INBOX/' "set [email protected]"
account-hook 'imaps://mail.domain.net:993/INBOX/' "set imap_pass=${my_password}"

Jest to przechowywane w osobnym pliku (o nazwie account_hooks) i pozyskiwane od wewnątrz muttrc. Z powodów, których nie rozumiem, mutt wciąż pyta o nazwę użytkownika i hasło . Jeśli jednak zmienne imap_useri imap_passsą ustawione bezpośrednio muttrc, np

set my_password="`gpg --decrypt ~/.mutt/password.gpg`"
set imap_authenticators='login'
set imap_login = '[email protected]'
set imap_user = '[email protected]'
set imap_pass ="${my_password}"

wszystko dziala. account_hooksPlik jest pierwszy pozyskiwane i żadne inne account-hook . "unset ..."połączenia (s) istnieje (s) nigdzie indziej.

Aktualizacja , folder-hooksplik jest (i, jak sądzę), następująco:

#--------------------------------------------------------------------------
# Folders and hooks
#--------------------------------------------------------------------------
# folder-hook 'imaps://UserName%[email protected]:993/'
set folder = "~/.maildir"       # IMAP: local, using offlineimap -- folder="imaps://mail.domain.net:993/INBOX/"
source ~/.mutt/mailboxes        # source automatically generated mailboxes
set spoolfile = "+INBOX"        # spoolfile='imaps://mail.domain.net:993/'
set postponed = "+INBOX/Drafts"

# Sending -----------------------------------------------------------------
set smtp_url="smtp://[email protected]@mail.domain.net:587/"
set smtp_pass=${my_password}
set record = "+INBOX/Sent"
set copy=yes

# Index format ----------------------------------------------------------------
folder-hook *[sS]ent* 'set sort=threads'
folder-hook *[sS]ent* 'set sort_browser=reverse-date'
folder-hook *[sS]ent* 'set sort_aux=reverse-last-date-received'
folder-hook *[sS]ent* 'set index_format="%2C | %Z [%d] %-30.30t (%-4.4c) %s"'
folder-hook ! *[sS]ent* 'set index_format="%2C | %Z [%d] %-30.30F (%-4.4c) %s"':

Dlaczego osobny plik account_hooks nie podaje poprawnie zmiennych będących przedmiotem zainteresowania (tj. Imap_user i imap_pass )?

Nikos Alexandris
źródło
Jeśli nadal jesteś zainteresowany odpowiedzią, chciałbym zobaczyć folder-hooktwoje linie .muttrc. Następnie mogę wyciągnąć wnioski i zaoferować kompletne rozwiązanie.
lord.garbage
1
@brauner, tak późno i zajęty, przeprasza. Nie znalazłem czasu na eksperymentowanie z tym, ponieważ nie potrzebowałem tego. Muszę prześledzić folder-hookustawienia, których użyłem w tym czasie, myślę, że mam kopię zapasową.
Nikos Alexandris
czy możesz opublikować plik debugowania z 'mutt -d 5'?
asdmin
@asdmin na razie odpowiedź brzmi DEBUG was not defined during compilation. Ignored.. Kiedy znajdę trochę czasu, ponownie skompiluję i wyśle ​​z powrotem.
Nikos Alexandris
@kyrias thnx za edycję
Nikos Alexandris

Odpowiedzi:

3

Możesz ustawić nazwę użytkownika i hasło bezpośrednio, ale nie działa, gdy używasz account-hook, więc prawdopodobnie account-hooknie działa.

account-hookSkłada się z regexp do skrzynek pocztowych, a tych poleceń, które powinny być wykonywane, gdy skrzynka pocztowa dopasowuje regexp .

Ponieważ polecenia ( set imap_user, set imap_pass) nie są wykonywane, możemy założyć, że regexpnie pasują one do twoich skrzynek pocztowych.

Używasz „imaps: //mail.domain.net: 993 / INBOX /”, co jest bardzo specyficzne. Prawdopodobnie twoje skrzynki pocztowe mają nieco inne nazwy.

Czy to jedyne konto pocztowe, mail.domain.netktórego używasz? Jeśli tak, zmniejszenie wyrażenia regularnego do 'mail.domain.net'powinno wystarczyć do dopasowania do skrzynek pocztowych.

account-hook . 'unset imap_user; unset imap_pass; unset tunnel
account-hook mail.domain.net "set [email protected]"
account-hook mail.domain.net "set imap_pass=${my_password}"
Thomas Weinbrenner
źródło
Wróciłem, żeby to rozpracować. Najprawdopodobniej twoja interpretacja jest słuszna. Mam nadzieję, że wkrótce to zweryfikuję. Dziękuję Ci.
Nikos Alexandris
Jeśli oba set imap_useri set imap_passnie są wykonywane, dlaczego jestem proszony o podanie hasła do Password for [email protected]:wtedy? Dokładnie identyfikator użytkownika i domena ustawione account-hookw account-hookspliku?
Nikos Alexandris
Mam to naprawione! Myślę, że brakowało mi ${my_password}poprawnego podania smtp_passzmiennej. To było ${password}...: - /
Nikos Alexandris
Jeśli chodzi o mój ostatni komentarz, po wielu eksperymentalnych edycjach wydaje się, że niewłaściwie użyłem go "${password}"zamiast "${my_password}". account-hooksPlik wydaje się działać przez co najmniej 2 acounts, teraz prawidłowo. I jeszcze trzeci, w przypadku którego utknął w innym problemie, a mianowicie SSL failed: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unsupported protocol. Nie ma to jednak bezpośredniego związku z pytaniem, na które tutaj udzielono odpowiedzi. Tak więc, z wyłączeniem „literówek”, problem początkowo polegał na tym, że rzeczywiście regexpnie pasował do skrzynki (skrzynek) pocztowych.
Nikos Alexandris