23

виктор стародуб

Embed Size (px)

Citation preview

Page 1: виктор стародуб
Page 2: виктор стародуб

IMAP в Почте Mail.ru

Page 3: виктор стародуб

Готовые реализации

Dovecot

UV IMAP

Courier IMAP

Cyrus IMAP

Page 4: виктор стародуб

История POP3 и IMAP

Page 5: виктор стародуб

История

POP POP2 POP3

IMAP IMAP2

’84 ’85 ’86 ‘88

Page 6: виктор стародуб

История

POP POP2 POP3 APOP UIDL SSL

IMAP IMAP2 IMAP4 IMAP4r1 IDLESSL

’84 ’85 ’86 ‘88 ’93 ’94 ’96 ’97

Page 7: виктор стародуб

История

POP POP2 POP3 APOP UIDL SSL STLS POP4(?)

IMAP IMAP2 IMAP4 IMAP4r1 IDLE STLS UIDPLUS XLISTSSL

’84 ’85 ’86 ‘88 ’93 ’94 ’96 ’97 ’99 ’03 ’05 ‘08

Page 8: виктор стародуб

История

POP POP2 POP3 APOP UIDL SSL STLS POP4(?)

IMAP IMAP2 IMAP4 IMAP4r1 IDLE STLS UIDPLUS XLISTSSL

’84 ’85 ’86 ‘88 ’93 ’94 ’96 ’97 ’99 ’03 ’05 ‘08

Page 9: виктор стародуб

IMAP-клиенты

Page 10: виктор стародуб

IMAP-клиенты

Мобильные Десктопные

iPhone 30% iPad 20%

Android и другие 30%

Thunderbird 10%

MacOS X Mail 3%

Outlook 3%

Другие desktop 4%

Page 11: виктор стародуб

Десктопные клиенты

флаги / uid-ы сообщений

список сообщений

тела всех сообщений

выбор папки

nop / idle

Page 12: виктор стародуб

поиск N последних сообщений

страница списка сообщений, сниппеты

выбор папки

nop / idle

Мобильные клиенты

текст отображаемого письма

картинки

Page 13: виктор стародуб

Архитектура

Page 14: виктор стародуб

Архитектура

клиентpop3-фронтенд

хранилище авторизация

imap-фронтенд

веб-фронтенд

Page 15: виктор стародуб

Хранилище

хранилище определяет архитектуру

хранилище уже написано

переиндексация – дорого

Page 16: виктор стародуб

Нагрузка

разнообразная нагрузка

длинные сессии, несколько сессийот пользователя

10000 одновременных соединений

Page 17: виктор стародуб

Нагрузка

epoll

короткие сессии с хранилищем

кэширование

Page 18: виктор стародуб

Проблемы и Хаки

Page 19: виктор стародуб

Работа с папками

удаление писем

эмуляция move

Page 20: виктор стародуб

Получение писем

получение с хранилища

хаки для android-клиентов

test-driven development

Page 21: виктор стародуб

Будущее

Page 22: виктор стародуб

Будущее

приведение к RFC / удаление всех хаков

полнотекстовый поиск

push-уведомления

расширения IMAP

Page 23: виктор стародуб

Виктор СтародубПрограммист, Почта Mail.ru

[email protected]

СПАСИБО!