
我正在嘗試解決 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)))
所以看來改變這一點的唯一方法是重新定義函數並將提示修改為 just "IMAP password for %u: "
。