Mengapa mutt terus menanyakan nama pengguna dan kata sandi imap?

13

Menghapus variabel konfigurasi mutt imap_user, imap_pass(dan mungkin preconnect, imap_authenticatorsjuga) melalui account-hook . "unset ... "panggilan, tampaknya merupakan praktik umum, jika bukan keharusan, untuk menangani beberapa akun imap (lihat Mengelola beberapa akun IMAP / POP (OPTIONAL) , Mutt imap beberapa akun , mutt : gmail IMAP tidak responsif , file konfigurasi terkait-kait akun di funtoo.org ).

Saat ini saya hanya menangani satu akun melalui IMAP. Paket-paket untuk penanganan banyak akun membuat saya mengikuti instruksi yang ditemukan di tautan terakhir yang disebutkan di atas ( contoh konfigurasi mutt seseorang ). Karena itu, dengan cara yang sama, saya menggunakan yang berikut:

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}"

Ini disimpan dalam file terpisah (bernama account_hooks) dan bersumber dari dalam muttrc. Untuk alasan yang saya tidak mengerti, mutt terus menanyakan nama pengguna dan kata sandi . Namun, jika variabel imap_userdan imap_passdiatur langsung dalam muttrc, mis

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}"

semuanya bekerja dengan baik. The account_hooksfile yang pertama bersumber dan tidak ada lainnya account-hook . "unset ..."panggilan (s) yang ada (s) di tempat lain.

Perbarui , folder-hooksFile tersebut (dan dulu, saya pikir) sebagai berikut:

#--------------------------------------------------------------------------
# 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"':

Mengapa, file account_hooks yang terpisah , tidak memberi makan dengan benar variabel yang diminati dalam kasus ini (mis. Imap_user dan imap_pass )?

Nikos Alexandris
sumber
Jika Anda masih tertarik dengan jawaban, saya ingin melihat folder-hookbaris yang ada di Anda .muttrc. Lalu saya bisa menarik beberapa kesimpulan dan menawarkan solusi lengkap.
lord.garbage
1
@rauner, sangat terlambat dan sibuk, permintaan maaf. Saya belum menemukan waktu untuk lebih banyak bereksperimen dengan ini, karena saya tidak membutuhkannya. Saya harus melacak kembali folder-hookpengaturan yang saya gunakan pada saat itu, saya kira saya punya sebagai cadangan.
Nikos Alexandris
dapatkah Anda mengirim file debug dari 'mutt -d 5'?
asdmin
@ Asdmin untuk saat ini, jawabannya adalah DEBUG was not defined during compilation. Ignored.. Setelah saya menemukan waktu, saya akan mengkompilasi ulang dan mengirim kembali.
Nikos Alexandris
@kyrias thnx untuk diedit
Nikos Alexandris

Jawaban:

3

Anda dapat mengatur nama pengguna dan kata sandi secara langsung, tetapi itu tidak berfungsi ketika Anda menggunakan account-hook, jadi mungkin account-hooktidak berfungsi.

Sebuah account-hookterdiri dari regexp untuk kotak pesan, dan perintah-perintah tersebut yang harus dieksekusi jika kotak pesan sesuai dengan regexp .

Karena perintah ( set imap_user, set imap_pass) tidak dieksekusi, kami dapat mengasumsikan bahwa regexptidak cocok dengan kotak surat Anda.

Anda menggunakan 'imaps: //mail.domain.net: 993 / INBOX /' yang sangat spesifik. Mungkin kotak surat Anda dinamai sedikit berbeda.

Apakah ini satu-satunya akun email yang mail.domain.netAnda gunakan? Jika demikian, mengurangi regexp untuk 'mail.domain.net'harus cukup untuk mencocokkan kotak surat Anda.

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
sumber
Saya kembali mengerjakan ini. Kemungkinan besar interpretasi Anda benar. Mudah-mudahan saya akan segera memverifikasi ini. Terima kasih.
Nikos Alexandris
Jika keduanya set imap_userdan set imap_passtidak dieksekusi, mengapa saya meminta kata sandi Password for [email protected]:? Persis nama pengguna dan domain yang ditentukan account-hookdalam account-hooksfile?
Nikos Alexandris
Saya sudah memperbaikinya! Saya pikir saya tidak ada untuk menyediakan variabel ${my_password}dengan benar smtp_pass. Itu ${password}...: - /
Nikos Alexandris
Mengenai komentar terakhir saya, setelah beberapa pengeditan eksperimental, tampaknya saya salah menggunakan "${password}", bukan "${my_password}". The account-hooksberkas tampaknya bekerja untuk setidaknya 2 acounts, sekarang, benar. Dan sepertiga lainnya yang terjebak dengan masalah lain, yaitu SSL failed: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unsupported protocol. Tetapi itu tidak secara langsung berkaitan dengan Pertanyaan yang dipertanyakan dan dijawab di sini. Jadi, tidak termasuk "kesalahan ketik", masalahnya, pada awalnya, memang regexptidak cocok dengan kotak surat yang dimaksud.
Nikos Alexandris