
Я пытаюсь решить проблему, когда 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: "
.