Это документация к пакету yandmail (версия 0.3).
     Побудительным мотивом написания данного пакета (= Yandex Mail)
явилась сложность найти нужное письмо при дискуссии со знакомым - 
дискуссия ветвилась, и было проблемой найти, о чём шла речь в самом начале.
Пока почта реализовывалась чисто почтовыми программами, проблем не было -
можно было скачать все письма, при необходимости - найти нужное 
по подстрокам и т.д. С переходом на интернет-почту такое стало 
невозможным. Попытки использовать программы, работающие по протоколам
POP3/SMTP, оказались безуспешными - они сбоили. В связи с этим
было сочтено желательным написать программы, обеспечивающие:
 - Выделение из сохранённых страниц со списками входяших или исходящих
   писем существенной информации.
 - Выделение из таких выжимок информации о переписке с конкретным
   адресатом.
 - Для сохранённых писем - модификацию даты файла и его имени (чтобы
   по имени был ясен адресат и дата письма).

     Важная проблема здесь заключается в том, что для языка HTML
(HyperText Markup Language) разрешается, чтобы открывающиеся и 
закрывающиеся тэги были несбалансированы, поэтому программа должна иметь вид
подпрограмм реакции на нахождение в анализируемом документе тех или
иных открывающихся или закрывающихся тэгов с параметрами. В данном
случае использован библиотечный модуль HTMLParser, рассчитанный
именно на такую обработку.
     В данном случае подпрограммы, ответственные за выделение 
из *.htm повторяющихся участков (в данном случае - описаний писем),
вынесены в модуль parser7.py, а специфика Yandex Mail'а -
в модуль specif.py (чтобы легче было по аналогии напсать разбор
списков писем на других почтовых серверах). Головная программа -
test7.py .
     Так из сохранённого списка писем в виде *.htm получаются
описания вида

in080228.htm
2016-02-28 09:50:08
nr = 26
aria1 = Sender: Bob
date1 = Received Jan., 30 at 18:32
prefix = Re: 
subject = майдан
firstline = Я не вправе давать тебе советы личного характера ...
.
     Далее формируются списки писем для выбранного адресата 
(см. исходники и комментарии в них). Проблема - для последнего года
на Yandex Mail'е год не указывается (!), и его приходится 
"подсказывать".
     Получается список вида:
-----
+ in080228 23 / 2016-01-31 10:10 / <Bo / Занятно...   / МВД ФРГ ...
+ in080228 26 / 2016-01-30 18:32 / <Bo / майдан       / Я не вправе ...
+ se010227 18 / 2016-01-29 21:50 / >Bo / майдан       / XXX, добрый ...
+ in090228  3 / 2016-01-29 09:37 / <Bo / майдан       / Да Игорь! Никак ...
-----
; символы '+' проставляются пользователем вместо минусов и
означают, что письмо сохранено; '<' и '>' - от адресата или адресату.
А реально список файлов (при просмотре под Far'ом etc.) выглядит
по типу
2016-01-31  10:10    1112 160131_1010Bo.ot
2016-01-30  18:32    5100 160130_1832Bo.ot
2016-01-29  21:50    4579 160129_2150Bo.to
2016-01-29  09:37    2323 160129_0937Bo.ot

     Описания переводятся из кодировки utf-8 в cp866, при этом
используется специфика версии Питона 2.7.

     Текущая (2016,3,15) методика работы с пакетом 
yandmail (= Yandex Mail):

- Сохраняем списки писем за нужные даты; рекоменд. имена -
  in860315.htm..i1500315.htm, se100315.htm..se200315.htm;
  in/se - inbox/sent, затем "номер ящика" (= номер, 
  выводящийся в низу страницы в окружении "Pages Previous Next"),
  затем - дата сохранения ящика (в примере - 03 месяц, 15 число = 
  15 марта; т.к. по мере появления новых или удаления старых писем 
  для конкретного письма номер ящика меняется, дублирование даты 
  в имени облегчает контроль).
- Запускаем скрипт типа alles.sh вида
  for x in in*.htm se*.htm; do
   echo $x
   ./test7.py $x >/dev/null
  done
  - для каждого *.htm создаётся соотв-щий *.out .
- Переносим *.out в отдельный каталог (напр., 
  perepisk/yandmail/boxes/out).
- Если имелись ранее полученные *.out, реком. провер. перекрытие
  времён, за к-рые получены списки писем; для этого
  удобно по типу
  sokr1.py in030228.out 2016
  (2016 - "подсказываемый год") из *.out получить более обозримые 
  *.lst, и сравнивать уже их.
- Выборка писем к выбраннму пользователю осущ. по типу:
  - файл wydel.py копируем в каталог с файлами *.out;
  - в копии подстраиваем 
    imena=['Bob']
    # imena=['Родион']
    - задаём список фрагментов имён, при наличии хотя бы одного из к-рых 
    в полях From/To программа считает, что это нужный адресат;
  - поср-вом прог-мы spisqsci.py создаём спис. ящиков; 
    он создаётся под именем qsxiki_.py;
  - копир. туда же ym_wspomo.py и запускаем копию wydel.py;
    выборка переписки с указанным адресатом создаётся под 
    именем result.txt (реком. его переименовать, чтобы было ясно,
    к какому адресату он относится).
- Сравниваем полученную выборку с полученной ранее и вручную в редакторе
  объединяем их, удаляя повторы и сохраняя пометки '+' для сохранённых 
  писем.
- Сохранение писем:
  - откываем письмо в браузере, копируем по
    Ctrl+a, Ctrl+c, Ctrl+v; сохр. под любым именем;
  - реком. перенести входящие и исходящие файлы в разные каталоги,
    чтобы не запутаться с ot/to;
  - запускаем по типу:
    ym_ftime.py Bo to 2015 150222.txt ;
    'Bo' - 2-букв. идентификатор адресата (напр., 'Bo' ← 'Bob ...');
    'to' - 'ot' или 'to' - от него или ему;
    '2015' - год - на случай, когда в письме в поле даты он не указан;
    при этом дата меняется, но переименование не производится,
    вместо этого создаётся tempor.sh с командами переименования;
  - после изменения дат одного или неск. писем запускаем полученный
    tempor.sh; файлы получ. с именами типа 
    150222_1444Bo.to 
    150910_0841Bo.ot
    - дата и время, адресат, от него или ему.
- Далее вручную в списке писем (бывшем result.txt) помечаем,
  какие письма сохранены.

     Адрес для скачивания:
http://aravidze.narod.ru/u1/yandmail_0.3.zip .
     Адрес для обратной связи:
 a r a v i d z e @ y a n d e x . r u  .

     (Конец документации).