Emacs:在Gnus中管理电子邮件密码

时间:2012-03-26 14:51:36

标签: emacs passwords gnus

我现在的主要问题是在gnus.el我收到了几个邮件来源:

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

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

  1. 将Gnus邮件源的密码存储在具有严格权限的单独文件中,并使用gpg加密。
  2. 使用Emacs时输入密码短语一次,并在获取邮件时自动使用这些密码。
  3. 最常用/最有效的方法是什么?

    我也对Emacs中关于密码管理的任何一般想法感兴趣,无论是将它们存储在加密文件中还是将它们管理到特定的Emacs包中。

    Emacs版本:24.0.97

1 个答案:

答案 0 :(得分:1)

我无法使.authinfo文件与POP3一起使用,因此我按照Keeping your secrets secret博客帖子(感谢phils获取链接)。我在load-path中创建了三个文件。 secrets.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")放到我的init文件中,因为由于某种原因,加载路径中的~/.emacs.d/文件夹没有自动加载。

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