20070629

Как перенести адресную книгу GMail (Outlook CSV) в Claws Mail (Sylpheed)

Разбирать, читать и хранить почту мне нравится в почтовой прораммке Claws Mail («Челюсти», ранее известной как Sylpheed Claws). Там у меня собирается почта и с личных ящиков, и с рабочих, и nntp-конференции на GMANE... Всё удобно, архив почты всегда под рукой, даже в оффлайн... Однако личную почту иногда я читаю и через веб-интерфейс GMail.

Недавно же заметил, что часть адресов, которые имеются у меня в адресной книге GMail, отсутствуют в адресной книге почтового клиента, и иногда это бывает неудобно. Вот я и задумал, адресную книгу GMail перенести себе в Claws Mail. Далее я опишу, как это сделал.

Итак, GMail может экспортировать адресную книгу в двух вариантах:
  • CSV для переноса в другую учётную запись GMail
  • и CSV формата Microsoft Outlook


Я выбрал последний. Получил файл, в котором адреса хранятся примерно так:
Имя Фамилия,email@address,,,,,,
по одному на строчку, в кодировке CP1251.

При этом Claws может импортировать адресные книги в следующих форматах:
  • LDIF
  • Адресная книга mutt
  • Адресная книга pine


Всё. Писать конвертер CSV2LDIF мне было лень. Методом тыка установил, что под адресной книгой mutt подразумевается файл .muttrc, в котором есть записи вида:
alias shortname email@address (Имя Фамилия)

Ну вот, собственно, и всё, сохранённый gmail.csv переводится в такой формат следующей командой:
$ cat gmail.csv | konwert cp1251-utf8 | sed '1d' | awk 'FS="," { print "alias",$2,$2,"("$1")" ; }' | sed 's/@[^ @]//' > gmail.mutt

Здесь я конвертировал (konwert cp1251-utf8) файл из кодировки CP1251 в UTF8, поскольку пользуюсь везде ru_RU.UTF-8. Это можно было сделать также с помощью iconv -f CP1251 -t UTF8. команда sed '1d' отрезала первую строчку с названиями полей, awk обработал разделённые запятыми поля и напечатал их в нужном порядке, e-mail дважды, а последний вызов sed сделал муттовские псевдонимы вида userxxx из e-mail аресов вида userxxx@server.

Всё, полученный файл gmail.mutt нормально импортируется в Claws Mail.

Единственное замечание: были повреждены все акценты над латинскими буквами, поскольку в однобайтной кодировке CP1251 они не представимы... На моё счастье, таких имён в моей адресной книге оказалось немного. Ну и разные комментарии к адресам я тоже проигнорировал ;)

Дополнение: нашёл набор скриптов для конвертации почтовых архивов и адресных книг в формат Claws, claws mail tools, который также доступен в виде отдельного пакета claws-mail-tools в Debian.