与 Gmail 帐户一起使用时,Wanderlust 不会更新新邮件计数器

与 Gmail 帐户一起使用时,Wanderlust 不会更新新邮件计数器

我想使用 Wanderlust IMAP 客户端在 Emacs 中阅读我的电子邮件。

但是,当配置为与 Gmail 帐户一起使用时,它无法正确更新新邮件数量。Wanderlust 的通知 (ws-biff-*) 系统依赖于此 - 只有在有新邮件时我才会收到通知。

例如,在文件夹视图中:

...
    %INBOX:0/217/49684
...

当我收到新消息时我应该收到以下内容:

...
    %INBOX:1/218/49684
...

然而,我看到的是以下内容:

...
    %INBOX:0/218/49684
...

Wanderlust 的所有其他功能都运行良好,我非常希望它能够正确处理通知。

我使用 el-get 安装了它。Emacs 版本是 24.2.1。Wanderlust 版本是 2.15.9 (Almost Unreal)。

~/.emacs.d/init.el 的相关部分:

;; wanderlust
(autoload 'wl "wl" "Wanderlust" t)
(autoload 'wl-draft "wl-draft" "Write draft with Wanderlust." t)
(autoload 'wl-user-agent-compose "wl-draft" nil t)

〜/.wl:

;; IMAP
(setq elmo-imap4-default-server "imap.gmail.com")
(setq elmo-imap4-default-user "[email protected]") 
(setq elmo-imap4-default-authenticate-type 'clear) 
(setq elmo-imap4-default-port '993)
(setq elmo-imap4-default-stream-type 'ssl)

(setq elmo-imap4-set-seen-flag-explicitly t)

;; SMTP
(setq wl-smtp-connection-type 'starttls)
(setq wl-smtp-posting-port 587)
(setq wl-smtp-authenticate-type "plain")
(setq wl-smtp-posting-user "[email protected]")
(setq wl-smtp-posting-server "smtp.gmail.com")
(setq wl-local-domain "gmail.com")
(setq wl-icon-directory "~/.emacs.d/el-get/wanderlust/etc/icons")
(setq wl-default-folder "%inbox")
(setq wl-default-spec "%")
(setq wl-draft-folder "%[Gmail]/Drafts") ; Gmail IMAP
(setq wl-trash-folder "%[Gmail]/Trash")

(setq wl-folder-check-async t) 

(setq elmo-imap4-use-modified-utf7 t)

(if (boundp 'mail-user-agent)
    (setq mail-user-agent 'wl-user-agent))
(if (fboundp 'define-mail-user-agent)
    (define-mail-user-agent
      'wl-user-agent
      'wl-user-agent-compose
      'wl-draft-send
      'wl-draft-kill
      'mail-send-hook))
(require 'tls)
(setq elmo-network-stream-type-alist '(("!" . (ssl ssl open-tls-stream))))

;; ignore  all fields
(setq wl-message-ignored-field-list '("^.*:"))
;; ..but these five
(setq wl-message-visible-field-list
      '("^To:"
        "^Cc:"
        "^From:"
        "^Subject:"
        "^Date:"))

(setq wl-message-sort-field-list
      '("^From:"
        "^Subject:"
        "^Date:"
        "^To:"
        "^Cc:"))
(setq wl-biff-check-folder-list '("%[Gmail]/Important" "%Workrelatedstuff"))
(setq wl-show-plug-status-on-modeline t)

(add-hook 'wl-biff-notify-hook
          (lambda (message &optional header)
            (message
             (format "New mail: %s. %s"
                     header
                     (substring message 0 (min 30 (length message)))))))

~/.folders 只是:

%/

我应该如何配置它才能与 Gmail 正常配合使用?提前感谢大家的帮助!

答案1

由于 Google Mail 不支持\Recent-Flag,Wanderlust 无法区分邮件是否是新的。其他邮件客户端可能会自行跟踪新邮件状态,而不依赖于 -flag \Recent(这不太好,因为服务器端无法保存状态)。

答案2

可以通过 解决此问题wl-strict-diff-folders。这将指定 Wanderlust 将使用速度较慢但更准确的方法来计算邮件数量的文件夹列表。例如:

;; Check these folders for new mail
(setq wl-biff-check-folder-list 
  '("%INBOX:\"[email protected]\"/[email protected]:993"
    "%INBOX:\"[email protected]\"/[email protected]:993"))

;; Use strict diff so wl-biff works with Gmail and others
(setq wl-strict-diff-folders wl-biff-check-folder-list)

请注意,文件夹名称必须与~/.wl-folders 确切地否则更新文件夹视图中的计数将不起作用。

相关内容