- при ответе создаётся сообщение, адресованное автору поста, а не в список.
- при цитировании используется неудобный формат текста перед цитатой оригинального поста — там присутствует email автора, но отсутствует часовой пояс цитируемого
Короче, назрел переход на локальный почтовик, что и было проделано в течении пары дней. Эта заметка написана, так сказать, по горячему следу. Она собрала в себе все проблемы, с которыми я столкнулся. В основном это какие-то мелочи, детали, которых я не знал, но которые оказались важными. Я постарался по возможности превратить пост в гайд, так что будет много ссылок и текста.
Итак, я выбрал популярную и многими обкатанную конфигурацию:
fetchmail
→ procmail
→ mutt
→ msmtp
. О том, как её настраивать, читайте в Gentoo wiki (для настройки msmtp
придётся заглянуть в английскую версию). Чтобы лучше понять процесс обработки почты в *nix, советую почитать MailConcept — «A short introduction to the notorious MxA bunch». А чтобы понять наконец, как всё это конфигурировать применительно к GMail, взгляните на «Using Mutt with Gmail».Теперь обратим внимание на некоторые моменты, которые помешали мне быстро и качественно всё отконфигурировать.
Во-первых, я возомнил себя шибко умным, а автора последнего гайда — не сведущим в моих задачах, и потому опцию
no keep
в настройках fetchmail
сменил на keep
(мотивируя это тем, что я не хочу удалять почту с сервера). Но помощь гугла внятно утверждает, что ничего с моими письмами не произойдёт — получая от клиента команду удалить письмо, GMail предпринимает действие, заданное пользователем (их четыре — можно оставить копию во Входящих, пометить письмо как прочитанное, архивировать или удалить с сервера). По этой причине я долго не мог получить все письма — у меня их около полторы тысячи штук, а POP никак не хочет отдавать больше 460-488-ти за раз. Закончилось всё известной мерой — я попал в Lockdown in section 4 на период около шести часов. Эта блокировка распространяется только на POP и IMAP — доступ к веб-интерфейсу остаётся, так что можете не волноваться: что бы ни случилось, почта у вас будет :)Второй ошибкой было использование ящика типа mbox (все письма в одном файле). Когда я наконец-то пришёл к выводу, что пора бы перестать качать письма с GMail, а юзать локальную копию, оказалось, что предложенный мне рецепт:
find $MAILDIR -type f | while read mail; do procmail < "$mail"; done
работает только с ящиками типа Maildir (в ящике есть три поддиректории — cur, new и tmp; каждое письмо лежит в отдельном файле). Пришлось в срочном порядке искать способ сконвертировать mbox в maildir, который и нашёлся в лице mb2md. Правда, в конечном итоге я все равно качал всё заново — но уже в maildir ящик…Ещё одно важное замечание касается опции
fetchmail
'а sslfingerprint
. По всему интернету приводятся хитрые рецепты вроде скачивания откуда-то SSL сертификата (или поиск оного в недрах ca-certificates
) и последующего вычисления отпечатка. Но можно пойти простым путём: указать заведомо неправильный отпечаток, после чего запустить fetchmail
с опцией --verbose
и посмотреть на вывод. В нём вы найдёте отпечаток, который выслал сервер — его-то и следует указать в конфиге.Дальше по плану у нас
mutt
. Вобщем-то, кое-какую рабочую конфигурацию можно набросать уже после прочтения гентушной вики, но я бы посоветовал взглянуть также на «Настройку Mutt для чайника». После этого у вас будет довольно юзабельный почтовик — можете начинать тестить.Впрочем, предела совершенству нет, и я рискну рассказать о том, что я добавил в
.muttrc
сверх уже упомянутых в статьях настроек.Первым дополнением стала адресная книга. Прикрутить такое мирское благо помогла статья Дмитрия Аленичева «Настройка почтовой системы в Linux» — там упомянута замечательная тулза по имени
abook
, реализующая весь необходимый функционал. Для того, чтобы управлять этим чудом прямо из mutt, нужно добавить в конфиг последнего две строки:# Use abook with Mutt
# Q to search
# a to add sender to abook
set query_command="abook --mutt-query '%s'"
macro index,pager a "|abook --add-email\n" 'add sender to abook'
Комментарии, как мне кажется, исчерпывающи.# Q to search
# a to add sender to abook
set query_command="abook --mutt-query '%s'"
macro index,pager a "|abook --add-email\n" 'add sender to abook'
Вторым важным дополнением стала реализация работы с рассылками (ведь именно они и сподвигли меня на переход к локальному почтовику). Итак, в первую очередь надо приучить
mutt
отвечать не собственно автору поста, а прямиком в список рассылки:set followup_to = yes
set honor_followup_to = yes
Во-вторых, следует объяснить почтовику, на какие рассылки я подписан:set honor_followup_to = yes
subscribe e-mail_рассылки
И последнее, чем я особо горжусь — локальные копии отсылаемых сообщений будут ложиться в ящики, соответствующие рассылке:# дефолтный ящик
set record = "+inbox"
# выбираем ящик в зависимости от рассылки
fcc-save-hook ~Cадрессрассылки ящик
Прекрасно, не правда ли? ☺set record = "+inbox"
# выбираем ящик в зависимости от рассылки
fcc-save-hook ~Cадрессрассылки ящик
Кстати, вернусь немного назад и расскажу про сортировку рассылок в
procmail
. К этой задаче есть несколько подходов: некоторые советуют писать правила, используя ^TO_
, а некоторые настаивают на использовании более рассылко-специфичных полей. Наиболее полное описание проблемы и её решений дано здесь. На тему работы с рассылками в mutt
также написана неплохая статья «Using Mutt to send emails to mailing lists» — советую почитать и её тоже.С
msmtp
— последним звеном нашей почтовой цепочки — проблем вообще никаких: всё просто работает; так что о нём я писать не буду вообще ничего ;)Happy
mutt
ing, procmail
ing и всего такого прочего!
Копируете статью — поставьте ссылку!
19 комментариев:
Список рассылки Debian??
Слишком много там упертых Одминов. Было дело, пытался читать, общаться.
В итоге просто отписался. Делать там нечего. А уж ради "такой" рассылки менять клиенты... Извините меня.
Хм… А я читаю и пишу с огромным удовольствием.
А в чём выражается упёртость админов, если не секрет?
Как раз в следовании стандартам.
Давно уже все рассылки используют модифицированную версию стандарта при отправлении сообщений в рассылки, тут же четкое следование.
Удобство использования в расчет не берется. Делается не для людей, а для бумажки.
Про ответы на вопросы я вообще молчу. Задавать вопросы там очень сложно.
Интересно… А о каком стандарте (и какой модифицированной версии) речь? Можно ссылки или хотя бы названия?
Касательно ответов буду возражать. Я лично задал несколько вопросов — на все ответили в течении пары часов. Всё корректно и очень приятно.
И, наверное, мне стоит уточнить, что я говорю о debian-user — она самая активная из тех, на которые я подписан. А ты о какой?
Точное название рассылки не помню уже. Точно скажу только одно, она была русскоязычная.
Стандарт использования использования заголовков почтовых сообщений.
> Стандарт использования использования заголовков почтовых сообщений.
Стало быть, речь об List-id, X-mailing-list и прочих? Хм… Меня не раздражает совершенно — написал в procmail правила с использованием List-id и забыл. Если подпишусь ещё на что-то и там будут использоваться другие поля, напишу соответствующие правила. Какая разница, если всё работает?
достаточно интересный вариант использование offlineIMAP вместо связки "fetchmail → procmail". С его помощью можно получить полную offline копию ящика и простую синхронизацию, что позволяет во-первых получать доступ к почте при отсутствии интернет соединения, во-вторых получать доступ к той же почте, когда есть соединение, но нету самого mutt.
+ можно ещё использовать для поска mairix
тут инфа
IMAP? Да, думал о нём — как-никак, возможностей больше, чем у POP; с другой стороны, я пока что не чувствую, чтобы новая система меня ограничивала — так что всё в порядке.
Спасибо за mairix — вики mutt'а уже читаю, но до историй пользователей ещё не дошёл.
Сам о таком подумывал тока в связке imap + getmail - слышал что fetchmail письма иногда теряет.
Вопрос однако: а как с теми кто присылает вместо нормальных писем html и картинки всякие - есть способ это всё безгеморойно глядеть или придётся сохранять и смотреть отдельно?
Да, способ есть. Читайте «Настройку mutt для чайника» — там в конце написано про .mailcap, в котором можно сопоставить каждому MIME-типу свой просмотрщик. Пропишешь для text/html iceweasel — и будет тебе счастье :)
Я, правда, использую w3c и доволен — на картинки все равно пофиг, ради них и в веб-интерфейс можно залогиниться.
Мой ~/.mailcap:
text/html; w3m -T text/html %s; needsterminal;
Попробуйте, попробуйте IMAP. POP3 совсем не заточен под хранение почты на сервере, тем более в таких количествах, как на GMail. POP3 позволяет лишь запросить список сообщений и выкачивать их поштучно (и удалять). IMAP же именно и создан для синхронизации удалённого почтового ящика, со всей его структурой (папками и состоянием писем) и локального. В обе стороны. Без потерь писем и без повторных скачиваний. В качестве бонуса при использовании IMAP сохраняется доступ к меткам и фильтру спама GMail. Ещё преимущество в том, что клиенты можно безболезненно менять и читать почту с разных машин. Я, например, использую и Thunderbird, и mutt, и вебинтерфейс. И все они дружно работают с одним и тем же ящиком.
Об OfflineIMAP. Последний раз, когда я его пробовал, года два назад, наблюдал проблемы с кодировками. Проект сейчас сопровождается минимально (фиксятся баги, но развития не планируется). Кстати, сам автор OfflineIMAP сейчас использует Thunderbird 3 на большинстве своих машин.
> text/html; w3m -T text/html %s; needsterminal;
бывает полезно добавить w3m -O utf-8 -I %{charset}
т.к. некоторые почтовики (web интерфейс gmail) любят указывать кодировку только в описании Content-Type вложения, из-за этого w3m может не угадать кодировку.
у меня стоит
> text/html; w3m -O utf8 -I %{charset} -dump %s; copiousoutput; description=HTML Text; nametemplate=%s.html
хотя это возможно излишне.
> Об OfflineIMAP. Последний раз, когда я его пробовал, года два назад, наблюдал проблемы с кодировками.
у меня были проблемы с кодировками названий папок, и была решена переключением на английский интерфейс, хотя есть и более адекватные решения
Сергей. вы меня таки убедили — как только найду достаточно времени, настрою себе IMAP.
qnikst, спасибо за совет — хоть я пока и не сталкивался с некорректно отображаемым html, поправлю свой .mailcap
> 1. при ответе создаётся сообщение, адресованное автору поста, а не в список.
Проблема решается ровно тремя щелчками мышки во вкладке Labs.
> 2. при цитировании используется неудобный формат текста перед цитатой оригинального поста — там присутствует email автора, но отсутствует часовой пояс цитируемого
Я точно не знаю, как это вылечить, но думаю, что несложно сделать, используя Greasemonkey (если вы пользуетесь firefoxом)
lizardie, а поточнее можно касательно Labs? Признаю́, что это для меня потёмки.
А вот утяжелять и так неповоротливого огнелиса лишними дополнениями нет никакого желания…
ну, в gmail'е в верхней панели справа есть иконка, типа лабораторной колбы - там много разных дополнительных настроек - "crazy experimental stuff", как они их называют.
Внизу страницы есть пара ссылок, где можно предложить то, чего тебе в гмайле не хватает, или самому написать.
М, ясно. Я когда-то заглядывал в Лабораторию, увидел там длиннющий список и ужаснулся. Не знал, что там есть кнопка для того, чтобы предложить идею. Надо будет попользоваться. Спасибо!
Как-то слишком наворочено все. А зачем столько плясок с бубном если можно использовать какойнить thunderbird и запросто настроить его на ответ в подходящем формате? И почту IMAPом прямо по папкам 1 в 1 синхронизировать. Несколько не unix-way, но в конечном итоге почта попадет в те же mailbox files по сути.
Плясок с бубном? Мне нравится узнавать что-то новое, так что я не рассматриваю всё это как скучный и нудный процесс.
Почта у меня уже синхронизируется по IMAP — недавно настроил.
Отправить комментарий
Примечание. Отправлять комментарии могут только участники этого блога.