
私は、Gnus がユーザー名の入力を要求し、それを IMAP ドメインの先頭に追加する、つまりプロンプトで入力されたユーザー名を Gnus が に作成するのを防ぐという問題を解決しようとしてい[email protected]
ます[email protected]@mail.bar.com
。
私がオンラインで読んだすべてのガイドでは、ログイン資格情報の設定について次のように指定されています。
~/.authinfoに次のような行を追加します。
machine imap.gmail.com login [email protected] password your-password port 993
続いて、次のような文字列を追加しました。
machine mail.foo.com login [email protected] port 993
これにより、適切な動作 (パスワードのみのプロンプト) が得られますが、ユーザー名全体がマシン アドレスの先頭に追加されます。さらに悪いことに、何かを変更してログインを繰り返すと、エラーが発生しますWrong type argument: wholenump, nil
。
私のgnus.el
ファイルには、IMAP に関して次の内容が含まれています。
; IMAP
(setq gnus-select-method
'(nnimap "mymail"
(nnimap-address "mail.bar.com")
(nnimap-server-port 993)
(nnimap-stream ssl)))
答え1
プロンプトはソースにハードコードされています ( nnimap.el
)。
(defun nnimap-credentials (address ports user)
(let* ((auth-source-creation-prompts
'((user . "IMAP user at %h: ")
(secret . "IMAP password for %u@%h: ")))
(found (nth 0 (auth-source-search :max 1
:host address
:port ports
:user user
:require '(:user :secret)
:create t))))
(if found
(list (plist-get found :user)
(let ((secret (plist-get found :secret)))
(if (functionp secret)
(funcall secret)
secret))
(plist-get found :save-function))
nil)))
したがって、これを変更する唯一の方法は、関数を再定義し、プロンプトを だけに変更することのようです"IMAP password for %u: "
。