mu4e 救你出 Email 的苦海

发布于 2023-05-06 12:58:09 字数 5661 浏览 110 评论 0

mu4e 是什么?

mu4e 是一个基于 emacs 的电子邮件客户端。 它完全以搜索为基础,用户界面为速度进行了优化,对很多常用操作都分配了快捷键。电子邮件可以使用org-mode来与富文本进行整合。支持电子邮件地址自动补全。异步操作,因此繁重的操作不会阻塞emacs。

其基本思路是这样的:配置一个离线IMAP客户机来使远程电子邮件服务器与本地计算机同步。mbsync和offlineimap是两个最常用的IMAP同步工具。这篇文章基于mbsync。

配置 mbsync

安装 mbsyncSSL 身份验证所需的SSL开发文件。对于基于RPM的包管理器,使用 sudo yum install openssl-devel 如果使用 dnf (例如Fedora 22+),则运行 sudo dnf install openssl-devel. 对于debian机器, sudo apt-get install libssl-dev.

安装 mbsync,可以通过 发布 tarball 安装,也可以通过 git 安装。

创建一个临时文件 .mbsyncpass ,并在其中存储纯文本密码。接下来运行 gpg2 --output .mbsyncpass.gpg --symmetric .mbsyncpass=,移动 mysyncpass.gpg~/.emacs.d 并删除 .mbsyncpass 文件。

创建临时文件 ~/.authinfo 并在其中存储以下纯文本,需要替换设置的主机、用户名、密码和端口信息:

machine mail.example.com login myusername port 587 password mypassword

使用命令 gpg2 --output ~/.authinfo.gpg --symmetric ~/.authinfo 生成加密文件. 删除 ~/.authinfo 文件。

创建一个 .mbsyncrc 文件。我把它放在 ~/.emacs.d 目录中以纳入版本控制,这样我能轻松地跨机器使用它。在工作服务器上仔细检查您希望同步的目录名(例如,它是已发送还是已发送项?),选择本地存放邮件的目录地址。我选择的是 ~/email/mysyncmail。将以下内容添加到 .mbsyncrc 文件中:

IMAPAccount uni
Host mail.example.com
User me@example.com
PassCmd "gpg2 -q --for-your-eyes-only --no-tty -d ~/.emacs.d/.mbsyncpass.gpg"
Port 993
SSLType IMAPS
AuthMechs Login
CertificateFile /etc/ssl/certs/ca-bundle.crt

IMAPStore uni-remote
Account uni

MaildirStore uni-local
Path ~/email/mbsyncmail/
Inbox ~/email/mbsyncmail/INBOX

Channel uni
Master :uni-remote:
Slave :uni-local:
Patterns "Sent Items" "INBOX" "Deleted Items"
Create Slave
Sync All
Expunge Both
SyncState *

运行 mbsync 命令来同步 IMAP 收件箱:mbsync -c ~/.emacs.d/.mbsyncrc work

配置 mu4e

安装mu4e,可以使用包管理器或者通过tarball或git安装。这里查看安装细节

然后配置mu4e。查看有关变量的 mu4e 文档。确保以下内容存储在 emacs 加载的 .el 文件中,例如 ~.emacs 文件。

(add-to-list 'load-path "~/place/to/your/mu4e")
(require 'smtpmail)

                                       ; smtp
(setq message-send-mail-function 'smtpmail-send-it
      smtpmail-starttls-credentials
      '(("mail.example.com" 587 nil nil))
      smtpmail-default-smtp-server "mail.example.com"
      smtpmail-smtp-server "mail.example.com"
      smtpmail-smtp-service 587
      smtpmail-debug-info t)

(require 'mu4e)

(setq mu4e-maildir (expand-file-name "~/email/mbsyncmail"))

(setq mu4e-drafts-folder "/Drafts")
(setq mu4e-sent-folder "/Sent Items")
(setq mu4e-trash-folder "/Trash")
(setq message-signature-file "~/.emacs.d/.signature") ; put your signature in this file

                                       ; get mail
(setq mu4e-get-mail-command "mbsync -c ~/.emacs.d/.mbsyncrc work"
      mu4e-html2text-command "w3m -T text/html"
      mu4e-update-interval 120
      mu4e-headers-auto-update t
      mu4e-compose-signature-auto-include nil)

(setq mu4e-maildir-shortcuts
      '( ("/INBOX" . ?i)
         ("/Sent Items" . ?s)
         ("/Trash" . ?t)
         ("/Drafts" . ?d)))

;; show images
(setq mu4e-show-images t)

;; use imagemagick, if available
(when (fboundp 'imagemagick-register-types)
   (imagemagick-register-types))

;; general emacs mail settings; used when composing e-mail
;; the non-mu4e-* stuff is inherited from emacs/message-mode
(setq mu4e-reply-to-address "me@example.com"
      user-mail-address "me@example.com"
      user-full-name "Rob Stewart")

;; don't save message to Sent Messages, IMAP takes care of this
                                       ; (setq mu4e-sent-messages-behavior 'delete)

;; spell check
(add-hook 'mu4e-compose-mode-hook
         (defun my-do-compose-stuff ()
            "My settings for message composition."
            (set-fill-column 72)
            (flyspell-mode)))

然后,使用 mu 索引该目录,这一步必须做:

mu index --maildir=~/email/mbsyncmail/

现在是时候试试 mu4e 了。打开 emacs,输入 M-x mu4e

查看 mu4e 快捷键

  • n/p 转到下一个,前一个消息
  • RET 在message视图中打开消息
  • s 搜索
  • j 跳转到邮件目录,例如 ji 跳转到收件箱
  • O 改变排序顺序
  • P 切换threading
  • d 标记移动到垃圾文件夹的消息
  • m 标记消息,用于移动到另一个邮件目录文件夹
  • ?,! 将消息标记为未读/已读
  • R,F,C 回复/转发/组合

mu4e 键绑定的完整列表列在 此处

选择 IMAP 离线客户端:Mbsync 对比 offlineimap

offlineimap 要更流行一些,我曾经试用了一周。 后来我尝试了 mbsync,对我来说它的效果更好。 人们选择offlineimap是因为它能够通过调用python文件提示用户输入密码,从而避免了纯文本密码存储在本地。

幸运的是,mbsync 现在 也实现了这个,也就是 .mbsyncrcPassCmd 项的作用

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

兲鉂ぱ嘚淚

暂无简介

0 文章
0 评论
23 人气
更多

推荐作者

懂王

文章 0 评论 0

清秋悲枫

文章 0 评论 0

niceone-tech

文章 0 评论 0

小伙你站住

文章 0 评论 0

刘涛

文章 0 评论 0

南街九尾狐

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文