【问题标题】:Emacs: manage email passwords in GnusEmacs:在 Gnus 中管理电子邮件密码
【发布时间】:2012-04-10 02:13:41
【问题描述】:

我现在的主要问题是在gnus.el 我有几个邮件源设置如下:

(setq mail-sources
  '((pop :server "server.org"
     :port 995
     :user "user@server.org"
     :password "pAssWorD")

我不想将密码存储在这样的纯文本文件中。我想要的是:

  1. 将 Gnus 邮件源的密码存储在具有严格权限并使用 gpg 加密的单独文件中。
  2. 使用 Emacs 时,输入一次密码,然后在提取邮件时自动使用这些密码。

最惯用/最有效的方法是什么?

我还对有关 Emacs 中密码管理的任何一般想法感兴趣,无论是将它们存储在加密文件中的某个位置,还是让它们为特定的 Emacs 包进行管理。

Emacs 版本:24.0.97

【问题讨论】:

  • 你可以把它们放在~/.authinfo文件里并加密。 gnus 只在您第一次解密时询问您的密码。
  • @kindahero:要自动加密/解密,您只需将其重命名为.authinfo.gpg

标签: emacs passwords gnus


【解决方案1】:

我无法使 .authinfo 文件与 POP3 一起使用,所以我关注了 Keeping your secrets secret 博客帖子(感谢 phils 的链接)。我在加载路径中创建了三个文件。秘密.el:

(load-library "secrets.el.gpg")
(provide 'secrets)

secrets.el.gpg:

(setq password-alist
      '((:mbox1 . "pAsSwOrD")
        (:mbox2 . "correct horse battery staple")
        (:mbox3 . "qwfpgj")))

mail.el:

(defun load-mail-passwords ()
  "Load passwords for mail sources from secrets.el.gpg"
  (require 'secrets)
  (setq mail-sources
    `((pop :server "pop.server.org"
           :port 995
           :user "user@server.org"
           :password ,(rest (assoc :mbox1 password-alist)))
      ))
  (setq smtpmail-auth-credentials `(("smtp.server.org" "465" "user@server.org"
                                     ,(rest (assoc :mbox1 password-alist))))))
(add-hook 'gnus-load-hook 'load-mail-passwords)

我还把(load "~/.emacs.d/mail.el") 放到了我的初始化文件中,因为由于某种原因我在加载路径中的~/.emacs.d/ 文件夹没有被自动加载。

反引号类似于撇号(引号),但它允许使用逗号不引用某些表达式。 (rest (assoc :keyword alist))组合是获取关联列表中点对的第二部分。

【讨论】:

  • 只是一个关于这个的问题。运行load-mail-passwords 后,如果您评估C-h v password-alist,它会返回密码吗?我用这种方法看到的问题是密码最终存储在变量中。
  • 没错,它们最终出现在一个变量中。我只想到2个补救措施。 1:不再需要密码后的(setq password-alist nil)。 2:创建像(with-password ...)这样的特殊形式,临时使用密码。你怎么看?
猜你喜欢
  • 2014-08-22
  • 2011-07-27
  • 2013-12-23
  • 2010-11-06
  • 2015-02-17
  • 2016-11-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-15
相关资源
最近更新 更多