Разбор письма на php

Wade

Новичок
Разбор письма на php

Доброго времени суток.
Сейчас занимаюсь разработкой почтового клиента для внутреннего интранет решения.
Столкнулся с проблемой разбора письма.
Сейчас иду по алгоритму: получаю письмо, дальше в зависимости от типа multipart разбираю, дальше текст закидываю в бд, файлы в файловую систему.
Вопрос:
1) Как заносят в бд текстовое содержимое, и соответственно, какую часть отображают (text/plain или text/html).
2) Хранят ли полностью письмо или только заносят в бд?
3) Каким образом получать только новые письма на сервере по pop3? Поле message-id обязятельное?

ПС вопросов много, может быть кто то вкратце расскажет о своем опыте проектирования и разработке подобной системы или укажет статью описывающую подобный процесс.
 

Фанат

oncle terrible
Команда форума
я бы хранил исходник тоже. на всякий лучай.
и все части тоже.
вообще все хранить. сохраннее будет

остальное имеет мало отношения к РНР.
проще в гугле смотреть. я вот уже не помню ответов на специфические поп3 вопросы
 

fixxxer

К.О.
Партнер клуба
1) из текстовых/хтмльных частей строится список alternatives, выбирается умолчальная best alternative (например, для браузера это html а для консоли plain), имеется возможность переключаться между alternatives.

2) лучше хранить полностью. бывает полезно посмотреть original text. а уж на этапе отладки полюбому

3) клиент сохраняет последний ему известный message id, да. насчет обязательности вот не уверен, лучше посмотри rfc-шки.
 

dimagolov

Новичок
Wade, имеет смысл хранить на сервере письма средствами MTU, например dovecot и читать их по imap. совсем недавно такое реализовал юзая стандартные ф-ии

в базе я храню только хеш message_id или конкатенации udate/subject, если нету message_id и статус обработки читателем и по этому хешу идентифицирую сообщения (их положение в ящике может меняться). при запросе сообщения или его части я вытягиваю его по imap-у и отдаю. параллельно к тем же сообщениям можно обращаться стандартным клиентом, типа Thunderbird.
 
Сверху