Чтобы добавлять сообщения и комментарии, .

@Whitesquall:
Whitesquall

blog.binchen.org

(setq gnus-posting-styles
'((".*"
(name "My Name"
(address "username@gmail.com"
(organization "")
(signature-file "~/.signature")
("X-Troll" "Emacs is better than Vi")
)))))

@Whitesquall:
Whitesquall

`K o' (gnus-article-save-part) — save attachment. Запомни уже!

@Whitesquall:
Whitesquall

Решился попробовать спустя пару лет всё-таки забирать почту через OfflineIMAP, заодно вспомнил, что остановило меня в прошлый раз — возня с паролями в открытом виде. Изучив документацию к нему был приятно удивлён, он умеет команду IDLE между синками, теперь осталось сообразить автоматические уведомления. А вот Gnus почему-то не может сразу получить кол-во сообщений в группах nnmaildir-бэкэнда, только после нажатия `M-g'. Осталось допилить работу с чем-нибудь вроде gnome-keyring и offlineimap.el для удобной работы из Emacs'а.

@provaton:
provaton

По совету жуйка попробовал емакс с оффлайн-имапом. Уже было обрадовался — так нет, гнус не может теперь собрать нормально треды. Скорей всего из-за того, что Sent в отдельной группе и он не может построить цепочку по айди сообщения, и делает фолбек к группировке по сабжекту, что плохо работает с учетом того, что у меня в контактах многие с сабжектом не заморачиваются. Блин.

@provaton:
provaton

Gnus, родной ты мой, как же так? Откуда ж ты взял такие жуткие цифры? Кто тебя вообще учил с имапом работать? img694.imageshack.us

@Whitesquall:
Whitesquall

Gnus'овский nnimap не умеет работать с несколькими аккаунтами на одном сервере. А так уж повелось, что у меня активно используется несколько гмыльников. Для себя я по кусочкам собрал такой выход из ситуации:

;; Настраиваем imap в конфиге Gnus'а.
(setq gnus-secondary-select-methods
'((nnimap "gmail1"
(nnimap-address "imap.gmail-alias1.com")
(nnimap-server-port 993)
(nnimap-stream ssl)
(nnimap-authinfo-file "~/.emacs.d/authinfo.gpg")
(nnir-search-engine imap))
(nnimap "gmail2"
(nnimap-address "imap.gmail-alias2.com")
(nnimap-server-port 993)
(nnimap-stream ssl)
(nnimap-authinfo-file "~/.emacs.d/authinfo.gpg"))))


В ~/.emacs.d/authinfo.gpg пишем следующие строчки:

machine imap.gmail-alias1.com login mylogin1@gmail.com password "mypassword1" port 993
machine imap.gmail-alias2.com login mylogin2@gmail.com password "mypassword2" port 993


Настройки для отправки сообщений. Воспользуемся ido для запроса у юзера, от кого будем отправлять сообщение.

(require 'smtpmail)
(defun my/private-gnus-prompt-address ()
(interactive)

;; Список, который будет выдаваться в запросе юзеру
(setq my/mails-list (list "mylogin1" "mylogin2"))

;; Запрашиваем у пользователя, от кого будем отправлять сообщение
(setq local-mail-address
(ido-completing-read
"From: "
my/mails-list nil
nil nil nil "mylogin1"))

(cond
((string= local-mail-address "mylogin1")
(setq message-send-mail-function 'smtpmail-send-it
user-mail-address "mylogin1@gmail.com"
user-full-name "Username"
smtpmail-default-smtp-server "smtp.gmail.com"
smtpmail-smtp-server "smtp.gmail.com"
smtpmail-smtp-service 587
smtpmail-starttls-credentials '(("smtp.gmail.com" 587 nil nil))
smtpmail-auth-credentials '(("smtp.gmail.com" 587 "mylogin1@gmail.com" "mypassword1"))))

((string= local-mail-address "mylogin2")
(setq message-send-mail-function 'smtpmail-send-it
user-mail-address "mylogin2@gmail.com"
user-full-name "Username"
smtpmail-default-smtp-server "smtp.gmail.com"
smtpmail-smtp-server "smtp.gmail.com"
smtpmail-smtp-service 587
smtpmail-starttls-credentials '(("smtp.gmail.com" 587 nil nil))
smtpmail-auth-credentials '(("smtp.gmail.com" 587 "mylogin2@gmail.com" "mypassword2"))))

(t
(message "Wrong field From: "))))

(add-hook 'message-send-hook 'my/private-gnus-prompt-address)

(setq
;; Убираем поле "From" при написании нового почтового сообщения
message-required-mail-headers
'(Subject Date (optional . In-Reply-To) Message-ID (optional . User-Agent))


Потом необходимо добавить соответствующие записи в файл /etc/hosts для новорожденных имён:
173.194.69.108 imap.gmail-alias1.com
173.194.69.108 imap.gmail-alias2.com

Айпишник лучше проверить для своего провайдера через 'nslookup imap.gmail.com'. Были один раз траблы из-за этого — уехал в другой край нашей великой и могучей страны, не смог проверить почту. Долго пытался понять, в чём же дело, плевался на тамошнего местного провайдера уже. Потом сообразил, разрешил имя — айпишник другой совсем. Сменил — всё заработало.

@Whitesquall:
Whitesquall

Одна из убойнейших фичей Gnus'а на мой взгляд — это скоринг (scoring). Если кратко, то он позволяет выставлять очки каждому сообщению, основываясь на ваших предпочтениях, и отмечать неинтересные сообщения по мнению скоринга как прочитанные. Но это было бы очередной бесполезной штукой, если пришлось бы помечать руками каждые сообщение, автора, тему (что, в принципе, не возбраняется). Потому конечно же существует адаптивный скоринг, который сам автоматически обучается. Всё, что требуется от вас — читать сообщения и киллять неинтересные (хоткей на 'k' в summary буфере). Самое трудное наверно — это подобрать баллы для параметров. Я свои когда-то откуда-то честно скопипастил:

;; Scoring settings.
(setq gnus-use-adaptive-scoring '(word line))

(setq gnus-default-adaptive-score-alist
'((gnus-unread-mark)
(gnus-ticked-mark (from 4))
(gnus-dormant-mark (from 5))
(gnus-del-mark (from -4) (subject -1))
(gnus-read-mark (from 4) (subject 2))
(gnus-expirable-mark (from -1) (subject -1))
(gnus-killed-mark (from -1) (subject -3))
(gnus-kill-file-mark)
(gnus-ancient-mark)
(gnus-low-score-mark)
(gnus-catchup-mark (from -1) (subject -1))))

(setq gnus-default-adaptive-word-score-alist
`((,gnus-read-mark . 30)
(,gnus-catchup-mark . -10)
(,gnus-killed-mark . -20)
(,gnus-del-mark . -15)))

(add-hook 'message-sent-hook 'gnus-score-followup-thread)

@Whitesquall:
Whitesquall

Стал чаще юзать другую машину. Стало актуально синхронизировать как-то между собой настройки Gnus'а. Похоже, что нашёл решение: emacswiki.org

@a13:
a13

не, не нравится мне сабж, пойду обратно на wanderlust

@a13:
a13

Решил ещё раз попробовать поковырять гнусь.
Как лучше пользоваться imap-ом (гугл и корпоративный аутглюковский) — offlineimap, nnimap или что-то ещё?

@bioh:
bioh

Гнус действительно стоит того, чтобы вникать и разбираться с ним? Для человека, который не очень интенсивно пользуется почтой.