1

Я хочу использовать клиент 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 (почти нереально).

Соответствующая часть ~/.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 "my_email_address@gmail.com") 
(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 "my_email_address@gmail.com")
(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? Заранее благодарю за любую помощь!

2 ответа2

1

Эта проблема может быть решена через wl-strict-diff-folders . Здесь указывается список папок, для которых Wanderlust будет использовать более медленный, но более точный метод подсчета сообщений. Например:

;; Check these folders for new mail
(setq wl-biff-check-folder-list 
  '("%INBOX:\"user@gmail.com\"/clear@imap.gmail.com:993"
    "%INBOX:\"user@other.domain\"/clear@imapserver.other.domain:993"))

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

Обратите внимание, что имена папок должны точно совпадать с именами папок в ~/.wl-folders , иначе обновление счетчиков в представлении папок не будет работать.

0

Так как Google Mail не поддерживает флаг \Recent -Flag, Wanderlust не может определить, является ли почта новой. Другие почтовые клиенты, вероятно, отслеживают новое состояние для себя и не полагаются на флаг \Recent -flag (что не так круто, потому что состояние не сохраняется на стороне сервера).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .