Gnus auth,用户名添加到域名前面

Gnus auth,用户名添加到域名前面

我正在尝试解决 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: "

相关内容